高并发设计系列-分布式篇

简介: 高并发设计系列-分布式篇

天下之事常成于困约,而败于奢靡。——陆游


1 十万qps要做服务拆分吗



qps不是衡量服务化拆分的关键因素,其实有很多的因素让我们不得不做服务拆分,比如一体化架构带来的研发效率降低和研发成本提升,而且系统越来越臃肿,部署成本越来越高,在资源出现扩展性的时候力不从心等等因素让我们必须且立刻做出选择,微服务正式诞生。


2 微服务架构如何改造



  1. 找出依赖和被依赖的模块
  2. 被依赖模块形成微服务对外提供服务
  3. 将依赖服务分为核心和非核心功能模块
  4. 核心与非核心服务可以通过队列通信
  5. 服务之间也可以通过RPC通信
  6. 增加链路监控
  7. 增加服务治理(服务网格service mesh)


3 高并发RPC服务之间通信



  1. 选择一个高性能网络IO模型(epoll)
  2. 调试网络接口参数
  3. 采用protobuf或者thrift序列化协议 比json和xml高效,而且后者也提供rpc框架,前者需要配合grpc实现。


4 分布式服务注册与发现



  1. 注册中心可以帮助我们在动态扩容或者故障恢复以及服务优雅关闭问题方面提供动态地变更RPC服务的节点信息
  2. 心跳机制探测服务存活
  3. 保护服务过度摘除


5 负载均衡提供横向扩展



  1. nginx动态或者静态策略+nginx_upstream_check_module对后端服务定期探测存活
  2. lvs 大流量可以考虑引入


6 API网关



代替web层做一些协议转换、安全策略、认证、限流、熔断,降级等功能。使用多路I/O复用模型和线程池技术来提升网关性能,使用责任链模式来提升网关的扩展性。API网关中的线程池可以针对不同的接口或者服务做隔离和保护,这样可以提升网关的可用性。


7 引入服务网格



业界已有的Istio就很优秀,大家直接拿来用,Istio 采用一种一致的方式来保护、连接和监控微服务,降低了管理微服务部署的复杂性。


8 关注公众号



微信公众号:堆栈future

相关文章
|
6月前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
6月前
|
消息中间件 NoSQL Java
Java高级开发:高并发+分布式+高性能+Spring全家桶+性能优化
Java高架构师、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师之路
|
6月前
|
消息中间件 Java 应用服务中间件
聊聊分布式高并发应用中的高可用性
聊聊分布式高并发应用中的高可用性
71 0
|
22天前
|
NoSQL Java Redis
京东双十一高并发场景下的分布式锁性能优化
【10月更文挑战第20天】在电商领域,尤其是像京东双十一这样的大促活动,系统需要处理极高的并发请求。这些请求往往涉及库存的查询和更新,如果处理不当,很容易出现库存超卖、数据不一致等问题。
40 1
|
5月前
|
消息中间件 数据挖掘 程序员
【建议收藏】高并发下的分布式事务:如何选择最优方案?
本文介绍了分布式事务的三种常见解决方案。在分布式系统中,事务处理变得复杂,需确保ACID特性。TCC(Try-Confirm-Cancel)方案适用于严格资金要求的场景,如银行转账,通过预留、确认和取消步骤确保一致性。可靠消息最终一致性方案适合一致性要求较低的场景,如电商积分处理,通过消息中间件实现最终一致性。最大努力通知方案则用于允许不一致的场景,如数据分析,通过重复通知尽可能达成一致性。选择合适的方案取决于具体应用场景。
149 5
|
1月前
|
NoSQL Java Redis
Redlock分布式锁高并发下有什么问题
Redlock分布式锁在高并发场景下可能面临的问题主要包括:网络延迟、时钟偏移、单点故障、宕机重启问题、脑裂问题以及效率低等。接下来,我将使用Java代码示例来说明其中一些问题。
79 12
|
1月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
55 4
|
1月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
53 3
|
4月前
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
|
4月前
|
消息中间件 缓存 监控
如何设计一个秒杀系统,(高并发高可用分布式集群)
【7月更文挑战第4天】设计一个高并发、高可用的分布式秒杀系统是一个非常具有挑战性的任务,需要从架构、数据库、缓存、并发控制、降级限流等多个维度进行考虑。
124 1

热门文章

最新文章