概述
传统的架构从:单体结构、集群结构、SOA结构、微服务结构演变。随着业务越来越庞大,复杂度越来越高,通过微服务架构来拆分问题,降低单个问题的复杂度。于是有了微服务全家桶。
拆分的弊端就是:配置、运维管理、监控,为此全家桶也有对应的解决方案,来降低影响
微服务全家桶多个组件,分别来解决分布式结构的不同问题:
配置文件、监控、RPC调用、负载均衡、容错、网关、注册中心等等,在结合Docker和Jenkenis等工具,轻松管理大型复杂独立应用。
-
Eureka:java写的轻量级注册中心,各个独立的应用可以根据applicationName来找到彼此
-
Feign:微服务之间的调用
-
Ribbon:集群的负载均衡器、还有RPC的传输协议
-
熔断器:解决调用失败的解决方案
-
Actutor(Admin):监控每个节点的运行情况(配置、心跳、JVM情况、注册的Bean)
-
Zuul:网关,Zuul+Eureka解决应用和IP耦合的问题(Nginx),在对外暴露数据调用的时候非常有用
-
Config:集中管理配置文件
-
Sleuth:网络之间调用的监控工具
-
Docker、Jenkenis:额外的助力工具,方便运维和部署
特点描述
微服务vs传统开发
-
分工不同,以前我们可能是一个一个模块,现在可能是一人一个系统。
-
架构不同,服务的拆分是一个技术含量很高的问题,拆分是否合理对以后发展影响巨大。
-
部署方式不同,如果还像以前一样部署估计累死了,自动化运维不可不上。
-
容灾不同,好的微服务可以隔离故障避免服务整体down掉,坏的微服务设计仍然可以因为一个子服务出现问题导致连锁反应。
网友评论