概念
微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,
并与轻量级机制(通常是HTTP资源API)进行通信。
这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。
这些服务的集中管理最少,
可以使用不同的编程语言编写,
并使用不同的数据存储技术。
特点
1 独立部署,灵活扩展(组件以服务形式来提供)
2 强化终端及弱化通道:
微服务的应用致力松耦合和高内聚,它们更喜欢简单的REST 风格,而不是复杂的协议(如WS或者BPEL或者集中式框架)。
或者采用轻量级消息总线(如 RabbitMQ 等)来发布消息
3 资源的有效隔离:分散治理,分散数据管理
4 基础设施自动化(jenkins)
5 团队组织架构的调整
6 容错性设计:任务服务都可能因为供应商的不可靠而故障。微服务应为每个应用的服务及数据中心提供日常故障检测和恢复。
7 改进设计:由于设计会不断更改,微服务所提供的服务应该能够替换或者报废,而不是要长久的发展的
缺点
1微服务把项目拆分成多个独立工程,增加了开发和测试的复杂度。
2微服务架构需要保证不同服务之间的数据一致性,引入了分布式事务和异步补偿机制,为设计和开发带来一定的挑战。
微服务与面向服务架构SOA的区别
1 SOA架构是一种粗粒度、松耦合的服务架构,其更多的是强调异构系统之间的服务通信(webservice,系统之间的服务调用)。
2 微服务机构是强调 系统按业务边界做细粒度的拆分和部署。
3 都是架构思想。(和dubbo,springcloud框架,不是一个层面的概念)。
参考地址
https://yq.aliyun.com/articles/537073?spm=a2c4e.11163080.searchblog.9.2dd62ec1O1TcOv