
前言
毕业后的第一份工作今天就正式结束了,学生时代结束后的第一份正式工作整体上还是交了一份良好的答卷,3年中不管是技术体系的建立,还是职业素养的形成都很感激我们架构师也就是我师父。同时也很感谢一直帮助我的部门经理和公司的小伙伴们~
最近一直在面试,准备把工作3年的JavaWeb技术栈相关的知识体系从Xmind里输出到博客中,一方面是做一次技术总结和梳理,另一方面希望能够帮助到有需要的人,当然了还有个重要的原因是博客已经荒芜好久需要好好打理一下😋。
这篇文章《微服务周边中间件和方案汇总》,属于目录结构总纲,整体列出了微服务这一分布式架构设计中各个技术方面(服务治理、消息中间件、分布式事务、分布式缓存、分布式存储等等)的可用中间件技术选型,后续文章会分别针对每一个技术方面的中间件的技术进行对比,同时也会针对不同的业务场景给出各个技术选型的组合建议。
因为个人水平有限,如果有理解错误的,希望网络中的小伙伴们帮忙指出哦~
这是一个系列文章的开头,希望自己能坚持下去👨💻~
微服务周边中间件和方案汇总
配置中心
- SpringCloud Config(Spring) Spring Cloud 生态组件,可以和Spring Cloud体系无缝整合。
- Apollo(CtripCorp) 携程开源的配置管理中心,具备规范的权限、流程治理等特性。
- Nacos(Alibaba) 阿里开源的配置中心,也可以做DNS和RPC的服务发现。
- Disconf(Baidu) 百度开源的配置管理中心,目前已经不维护了
注册中心
- Eureka(Netflix)
- Consul(HashiCorp)
- Nacos(Alibaba)
- CoreDNS(Linux Foundation)
- Zookeeper(Apache)
服务网关
- SpringCloud Gateway(Spring)
- Zuul1(Netflix)
- Zuul2(Netflix)
- Nginx+Lua nginx 性能虽强,但功能有限。我们一般只用来做负载均衡和反向代理。后面还是 - gateway 来实现做身份验证、鉴权、限流、接口访问日志等功能。
- Kong 基于OpenResty的 API 网关服务和网关服务管理层.
服务调用
- Feign(OpenFeign)
服务熔断
- Hystrix(Netflix)
- Sentinel(Alibaba)
链路监控
- SpringCloud Sleuth(Spring) + Zipkin(Twitter)
- SkyWalking(中国 吴晟、Apache)
- Pinpoint(韩国 Woonduk Kang)
客户端负载均衡
- Ribbon(Netflix)
消息中间件
- ActiveMQ
- RocketMQ(Alibaba、Apache)
- RabbitMQ(Vmware SpringSource、Pivotal)
- Kafka(Linkedin Jay Kreps 、Apache)
- Redis(Vmware Salvatore Sanfilippo、Pivotal)
分布式任务调度
- XXL-Job(DianpingCorp 徐雪里)
- Elastic-Job(DangDangCorp)
- Staturn(VipShopCorp)
- SchedulerX2.0(Alibaba)
分布式事务
- Seata(Alibaba)
- TX-LCN(CodingAPI 1991wangliang)
- JDTX(京东数科)
分布式缓存
- Redis(Vmware Salvatore Sanfilippo、Pivotal)
- Memcached(LiveJournal Brad Fitzpatrick)
- EhCache(Sourceforge) JVM级
分布式数据库中间件
- ShardingSphere(DangDangCorp、Apache)
- Mycat(Alibaba)
对象存储服务OSS
- FastDFS
- MinIO(MinioCorp AnandBabuPeriasamy)
- MongoDB GridFS
- 公有云OSS(AliYun、QCloud、HuaWeiYun、AmazonS3)
分布式ID
常见方案
- UUID
- 数据自增ID SEQUENCE_ID
- 数据库多主模式 不同步长
- 号段模式
- Redis、Zookeeper等借助中间存储做唯一ID方案
- 雪花算法SnowFlake(Twitter)
开源中间件
- uid-generator(Baidu)
- Leaf(MeiTuanCorp)
- Tinyid(DiDiCorp)
分布式日志归集
- ELK(Elastic)
- ElasticSearch 日志存储、搜索和分析
- Logstash 日志的采集、转换和传输
- Kibana 日志可视化
- Filebeat(Elastic) 轻量级日志采集器,采集、转发和汇总
- Flume(Cloudera) 日志的采集、转换和传输
- Kafka(Linkedin、Apache) 高吞吐量低延迟消息队列,用于日志中转的中间层。日志采集器将消息传输给Kafka、分析工具(Spark、Storm等)从Kafka消费日志消息
原创文章,作者:宁白久,如若转载,请注明出处:《微服务周边中间件和方案汇总》https://www.liangrenyixin.cn/article/p/8375045428708352
全部评论: 条