一、 微服务介绍
1 一系列微小的服务共同组成
2 跑在自己的进程里
3 每个服务为独立的业务开发
4 独立部署
5 分布式管理
二、分布式定义
旨在支持应用程序和服务的开发,可以利用物理架构,由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。
三、架构的演进
详细请参考 微服务演进史
四、微服务优点
1、服务组件化(比如支付功能,独立出来)和去中心化(你需要什么组件,你就去调用什么组件)。
2、分散服务治理和分散数据管理
分散服务治理: 支付和订单对安全要求比较高,花费更多的精力(如70% ~80%,这是系统的核心); 商品浏览安全低,图片可以让用户下载
分散数据管理: 商品可以用一个库,订单可以用一个库,相互独立
3、强调业务单一性,弱化业务耦合度
4、容错设计和资源合理分配
容错设计: 单个服务出了问题,对业务没有影响。进行熔断,降级,限流等处理
资源合理分配: 单体引用,比如有10个模块,只有订单占用CPU和内存比较多,其它服务几乎不需要。微服务可以把订单独立出来,分配更好的机器(更好的CUP和内存)
五、微服务的缺点
1、对人员技能素质要求较高。
比如对于单体应用,微服务多了服务间的调用。
2、过多的约定俗成对团队协调性要求较高
比如有个字典数据,服务A和服务B都需要。解决方法: 可以统一有单个服务维护,其它服务需要要就调用它。 例外一种方法就是服务A和服务B就约定好这个字典数据,固定写在自己的服务里。
3、微服务拆分粒度决定了扩展难度和维护难度
服务拆分可能拆出几十甚至上百个服务,扩展和维护难度肯定变大
4、回归冒烟等测试可以用灾难来形容
比如订单服务改了下,所有影响的服务都要改下。把所有的服务都回归测试一遍。
六、简单的微服务架构
七、Spring Cloud是什么
1、Spring Cloud是一个开发工具集,含了多个子项目
1)、Spring Boot使用
2)、对Netflix开源组件的进一步封装
2. Spring Cloud简化了分布式开发
八、微服务的基本术语
服务提供者: 业务实现者,封装业务接口同时提供业务实现逻辑
服务消费者: 业务调用者,调用服务提供者对外暴露的接口
负载均衡: 同一个服务的多个服务提供者分摊请求处理
注册中心: 提供公共的地方让服务提供者和消费者相互发现
服务治理: 服务拆分以后各种问题和解决方案的集合。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!