最近想梳理一下公司的整个系统的设计,以及各个spring cloud组件的交互和协同工作过程和原理。也想自己从头构建一个新的微服务系统。于是,从头到尾,梳理了一遍。
常见微服务组件
- 注册和发现服务
Eureka: Eureka是Netflix开发的服务发现框架
Zookeep、etcd、Consul -
配置中心
spring cloud config、ctrip Apollo
ctrip Apollo: 携程框架部门研发的开源配置管理中心 -
微服务网关
spring zuul、spring cloud gateway、alibaba Diamond -
服务调用以及负载均衡
Ribbon、Feign -
服务降级和熔断
Hystrix: Hystrix 的关注点在于以 隔离 和 熔断 为主的容错机制
Sentinel: 信号量隔离(并发线程数限流) -
调用链路分析与监控
Spring Cloud Sleuth + Zipkin、PinPoint
spring cloud :分布式的服务链路跟踪解决方案,调用链监控工具的客户端,集成在各个微服务上,负责产生调用链监控数据。
Pinpoint :是一个完整的性能监控解决方案:有从探针、收集器、存储到 Web 界面等全套体系。 -
监控
Spring Cloud Sleuth + Zipkin、PinPoint 和配合,加上一些自研的基础报警。
grafana、Prometheus
(可以在网关层面来加入服务的错误调用日志) -
日志收集
elk套件、业务系统日志的标准化输出 -
其他
- 完整一点,还有发布系统的搭建,底层数据治理能力。
- 基于jenkins和gitlab的CI/CD系统
- 公共组件
以上这些组件,需要不断迭代和完善
(完)