分布式中间件
redis, rabbitMQ, rocketMQ
分布式解决方案
分布式事务
seate lcn tcc
分布式锁
redis zookeeper
分布式定时任务调度
quartz, elastic job, xxl_job
配置中心
config,nacos, apollo
实时生效
安全性
apm 应用程序性能监控
Zipkin pinpoint skywalking
日志告警 系统监控
elatic stack, beats, prometheus + grafan
rpc Remote Procedure Call
rpc 远程过程调用协议, 简单说就是调用远程方法, 像调用本地方法一样方便,无需关心被调用的方法部署在哪里
rpc 用到了动态代理,序列化和反序列化,NIO 通信
dubbo 阿里出的一套 rpc 框架
dubbo / spring cloud
dubbo 只是一个 RPC 框架,spring cloud 是一套微服务解决方案
Dubbo 底层使用 Netty 这样的 NIO 框架,基于 TCP 协议传输,spring cloud 采用的是 http 协议的 rest api 风格
-------------------------------------------------------
注册中心
-------------------------------------------------------
eureka zookeeper
-----------------------------------
eureka 是基于 AP, zookeeper 是基于 CP
eureka 的设计者认为, 在集群出现分区的时候, 注册中心提供可用的和未及时更新的数据, 好过拿不到数据好, 应用实例的注册信息在集群内部节点间并不是强一致的, 就需要客户端支持负载均衡与失败重试, ribbon 可以提供这个功能
eureka 跟 zuul, ribbon 整合的比较好,都是 netflix 公司出的
-----------------------------------
eureka nacos
-----------------------------------
nacos 有控制台页面,服务下线更方便,eureka 没有控制台页面,要发请求下线
eureka 不支持项目隔离,nacos 有 namespace,group id
eureka 集群,客户端直接配多个连接节点,nacos 需要配虚拟 ip
-------------------------------------------------------
应用网关 Zuul / gateway
不同点
gateway 性能比 zuul 高一些,zuul 每个请求一个线程,请求完才释放
zuul 只支持同步,gateway 支持异步
gateway 扩展性更好
相同点
底层都是 servlet
都是 web 网关,处理 http 请求
-------------------------------------------------------
hystrix sentinel
hystrix 里面的线程池隔离,会造成线程上下文切换的开销,性能不是很好
sentinel 是通过并发线程数和服务响应时间来做流控和熔断降级,没有线程上下文切换的开销,也不需要预留线程池资源,
性能会好一些
sentinel 的控制台比 hystrix 的更好用更方便
-------------------------------------------------------
数据同步
数据库方面的,可以用 SqlLoader. GoldenGate 等相关工具同步数据
大数据方面的,可以用 ETL、Hadoop 等相关技术同步数据
如果是定时调度发起的,可以考虑用 SpringBatch, Quartz, Elastic-Job 等分布式任务中间件发起同步数据
如果是异步的场景,可以用 mq 来实现监听并且同步增量数据
大批量的数据情况下,尽可能地考虑用 mq、线程池、多线程、数据批量操作等相关技术手段提升性能
这篇博客总结了微服务中的关键技术和组件,包括分布式中间件如redis、rabbitMQ和rocketMQ,分布式事务解决方案如seate、lcn和tcc,以及分布式锁的实现。此外,还探讨了分布式定时任务调度工具如quartz、elastic job和xxl_job,配置中心如config、nacos和apollo,以及实时生效的重要性。文章还讨论了安全性,提到了apm、Zipkin、pinpoint和skywalking在应用程序性能监控中的作用,以及日志告警和系统监控。在rpc方面,介绍了dubbo和spring cloud的异同,以及它们与Netty、TCP协议和HTTP协议的关系。最后,文章对比了注册中心eureka和zookeeper,以及应用网关Zuul和gateway,同时还讨论了流量控制和熔断的hystrix和sentinel,以及数据同步的不同方案。
168万+

被折叠的 条评论
为什么被折叠?



