最近一段时间,微服务的概念很火,可能是跟Docker技术的快速发展和壮大有一定的关系,同时借助于Uber、Netflix、Groupon等公司的实践、宣传和推广,使得MSA渐渐地成为企业或者架构师讨论的热门话题。那么,微服务到底是什么呢?谈谈我的比较片面的看法。

  • 微服务不是什么?

微服务不是SOA;

微服务不是一种设计模式;

微服务不是最佳实践;

微服务不是解决大型业务架构的救命稻草;

微服务不适合初创团队或者企业来使用;

  • 微服务是什么?

微服务是一种架构理论;

微服务由很多具有高内聚、低耦合的服务组成;

微服务之间的通信应该是轻量级的,推荐使用傻瓜式的MQ组件而不是大而全的ESB;

微服务是一种按照业务功能来划分团队的协作模式,通常需要高质量的全栈人才作为支撑;

  • 微服务解决的痛点问题有哪些?

应用服务的可扩展能力是重中之重;

高效的发布机制和尽量短的发布周期;

  • 实现微服务架构的前置条件有哪些?

一个大型的项目或者应用;

严格的自动化部署和监控机制;

有效的容器平台:Docker或者其他;

系统服务之间的微服务是非共享的;

  • 实现微服务的切入点是什么?

大型系统的发布周期过于缓慢,导致不能满足业务变化的需要,可采用微服务来替换需要高频发布的组件;

针对大型老系统的升级和迁移,为了减少风险,可采用微服务来逐步分离和部署;

针对于大型应用系统的性能问题,可以采用微服务分离出性能要求高的组件,进行独立部署和使用。

参考资料:

  1. don't take micro-services off-road
  2. microservices

微服务(Micro Service Architecture)浅析的更多相关文章

  1. 浅谈服务治理、微服务与Service Mesh(三) Service Mesh与Serverless

    作为本系列文章的第三篇(前两篇<浅谈服务治理.微服务与Service Mesh(一)Dubbo的前世今生>,<浅谈服务治理.微服务与Service Mesh(二) Spring Cl ...

  2. 微服务 Micro services

    微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模组化的方式组合出复杂的大型应用程序, ...

  3. 微服务之Service Fabric 系列 (一):概览、环境安装

    参考 微软官方文档  service fabric 百家号   大话微服务架构之微服务框架微软ServiceFabric正式开源 一.概述 1.概念 Azure Service Fabric 是一款分 ...

  4. 【Azure 微服务】Service Fabric中微服务在升级时,遇见Warning - System.Collections.Generic.KeyNotFoundException 服务无法正常运行

    问题描述 使用.Net Framework 4.5.2为架构的Service Fabric微服务应用,在升级后发布到Azure Fabric中,服务无法运行.通过Service Fabric Expl ...

  5. 【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)

    问题描述 因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricCluster ...

  6. golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

    micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.s ...

  7. 关于微服务、SOA、以及API的理解

    现在微服务.SOA.RESTful API设计等在各大公司很流行.微服务(micro services)这个概念不是新概念,很多公司已经在实践了,例如亚马逊.Google.FaceBook,Aliba ...

  8. 微服务架构 技能图谱skill-map

    # 微服务架构 技能图谱 ## 理论基础### 概念#### 多微合适 - 非代码函数 - 非重写时间 - 适合团队最重要 - 独立业务属性 - 全功能团队 #### 进程隔离 - 服务运行在独立的进 ...

  9. 微服务框架---搭建 go-micro环境

    1.安装micro 需要使用GO1.11以上版本 #linux 下 export GO111MODULE=on export GOPROXY=https://goproxy.io # windows下 ...

随机推荐

  1. JDBC行级锁

    行级锁又称为悲观锁 for update 如下(必须要等这个for updaste事务执行完毕以后,剩下的sql语句才可以去执行)

  2. Web开发秘方(WEB DEVELOPMENT RECIPES)[47.5MB] PDF扫描版

    不借助插件怎样在移动设备上实现动画效果?怎样快速搭建HTML电子邮箱?怎样制作跨PC和移动设备显示的应用界面?怎样利用最新的JavaScript框架提高应用的响应速度?怎样有效利用CoffeeScri ...

  3. 符合条件中用where 1=1影响效率以及having和where的区别

    想当初我自己想出来用where 1=1的时候还高兴了一小会,毕竟把代码简化了许多.今天看到的书里面说会影响性能.摘要如下: 低效的“WHERE 1=1” 网上有不少人提出过类似的问题:“看到有人写了W ...

  4. Unity3D 接口使用

    C#怎么实现多继承? 说起多继承,首先大家可以想想这个问题:你知道在C#中怎么实现多继承吗? 主流的答案无非2种. 答案一:用接口啊,一个类可以继承自多个接口的.答案二:C#不支持多继承,C++才支持 ...

  5. 动态绑数据(Repeater控件HeaderTemplate和ItemTemplate)

    前几天,Insus.NET有写了<动态绑数据(GridView控件Header和ItemTemplate)>http://www.cnblogs.com/insus/p/3303192.h ...

  6. 本地机器和windows2003远程桌面之间复制粘贴文件

    打开远程桌面连接-->选项-->本地资源-->磁盘驱动器 前面打勾然后再连接就可以了.

  7. KMP算法不同写法之间区别

    网上之所以有这么多版本的KMP算法,是因为有的人写的是最大长度串版本的,有的人写的是next数组版本的(具体区别看下面博文),有的人写的是next优化版的,有的人写的是未优化的,不同人写的循环方法不同 ...

  8. Berkeley DB 使用经验总结

    作者:陈磊 NoSQL是现在互联网Web2.0时代备受关注的技术之一,被用来存储大量的非关系型的数据.Berkeley DB作为一款优秀的Key/Value存储引擎自然也在讨论之列.最近使用BDB来发 ...

  9. jdk 1.6.0_39 下载

    Java SE Development Kit 6u39 Product / File Description File Size Download password Linux x86 65.42 ...

  10. linux中断和异常睡眠问题

    中断和异常: 中断只代表异步中断,异常代表同步中断,这样系统调用是异常处理,不是中断处理. 这里异常处理是可以休眠block的,因为异常处理所需的数据是存储在异常栈中,而每个进程都有一个异常栈,所以异 ...