微服务和传统架构的思考

一、单体架构

    耦合率高,开发维护困难 扩展困难 容错率低,并发能力差

二、分布式架构

    对服务进行抽取,提高代码复用性和系统并发能力 但服务增多,维护较困难(服务地址,服务依赖,服务监控等)

三、微服务

1、优点

    单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。 面向服务:面向服务是说每个服务都要对外暴露服务接口API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供Rest的接口即可。 自治:自治是说服务间互相独立,互不干扰 团队独立:每个服务都是一个独立的开发团队,人数不能过多。 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动段开发不同接口 数据库分离:每个服务都使用自己的数据源 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护

2、需思考的问题

    服务管理 如何自动注册和发现 如何实现状态监管 如何实现动态路由 服务如何实现负载均衡 服务如何解决容灾问题 服务如何实现统一配置

3、对策

    Eureka:注册中心 Zuul:服务网关 Ribbon:负载均衡 Feign:服务调用 Hystix:熔断器
经验分享 程序员 微信小程序 职场和发展