微服务和传统架构的思考
一、单体架构
-
耦合率高,开发维护困难 扩展困难 容错率低,并发能力差
二、分布式架构
-
对服务进行抽取,提高代码复用性和系统并发能力 但服务增多,维护较困难(服务地址,服务依赖,服务监控等)
三、微服务
1、优点
-
单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。 面向服务:面向服务是说每个服务都要对外暴露服务接口API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供Rest的接口即可。 自治:自治是说服务间互相独立,互不干扰 团队独立:每个服务都是一个独立的开发团队,人数不能过多。 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动段开发不同接口 数据库分离:每个服务都使用自己的数据源 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护
2、需思考的问题
-
服务管理 如何自动注册和发现 如何实现状态监管 如何实现动态路由 服务如何实现负载均衡 服务如何解决容灾问题 服务如何实现统一配置
3、对策
-
Eureka:注册中心 Zuul:服务网关 Ribbon:负载均衡 Feign:服务调用 Hystix:熔断器
下一篇:
什么是分布式微服务架构?-开课吧