分布式中间件实践之路

分布式中间件实践之路

应书澜 · 研发专家/面试官

1899人已买
详情
目录(14)

如果你不清楚什么是中间件,那你也应该听说过 Redis、Kafka、ZooKeeper、Etcd、RabbitMQ、Nginx 之一,它们都是常用的中间件,可实现缓存、消息队列、锁以及负载均衡等。

随着互联网的飞速发展,高吞吐、高并发、低延迟和负载均衡已成为普遍需求,为此,作为枢纽的中间件也从“集中式”发展为“分布式”——如基于 Redis 的分布式缓存、基于 Kafka 的分布式消息队列、基于 ZooKeeper 的分布式锁等等。随着“云时代”的到来,作为通用软件的中间件再次华丽转身,阿里云、腾讯云、华为云都竞相推出了“云中间件服务”——如 TencentDB for Redis、消息队列 CMQ、云数据库 Redis 等等,几乎应有尽有。

可以说,作为一名 IT 行业的研发人员,从普通研发工程师到架构师的成长之路上,分布式中间件是绕不过去的。

专栏特色

  • 来自实践,服务实践

    本专栏是我从事中间件研发的经验总结,来自实践,服务于实践。主要包括分布式缓存分布式锁分布式消息队列三大部分内容,涉及 Redis、Etcd、Kafka、RocketMQ 等众多主流开源软件的使用方案。不仅提供关键源代码供读者快速实践,而且阐明其中原理并给出踩坑案例和调优分析,致力于授读者以渔。

  • 理论加持,事半功倍

    官方推出的 Redis Cluster 号称最大可支持 1000 个实例的集群,为什么不可以再多一点,比如 2000 个呢?为什么 BAT 都没有采用 Redis Cluster?在实践中,理论加持常常可以达到事半功倍的效果,因此本专栏并不局限于方案的简单实现,而是在介绍方案的同时,对其背后的原理进行了深入浅出的论述。

  • 方案对比,注重迁移

    没有一种方案可以打遍全场,在中间件选型和方案设计的时候,需结合性能需求、开发成本、可扩展性、可维护性等进行综合评估。本专栏介绍了三大中间件:缓存、锁、消息队列,并对每一种中间件的主流实现方案进行了对比分析,以便读者举一反三,迁移应用。

专栏结构

本专栏从分布式系统切入,首先介绍了集中式系统到分布式系统的演进,并对分布式系统的特性和常见问题进行了阐述。而后进入正题,依次介绍了三大分布式中间件:分布式缓存、分布式锁以及分布式消息队列。

第一部分(2):基础篇

优秀的理论可以指导实践,为了使读者更好的理解分布式系统和中间件,本部分内容以简练的笔触介绍了集中式系统到分布式系统的演进,并对分布式系统的特性和相关理论进行了阐述。最后,从应用场景出发,引出了三大分布式中间件。

第二部分(3-7):分布式缓存

分布式缓存是应用范围最为广泛的中间件之一,因此最先介绍它。本部分内容首先对当前主流的分布式缓存方案进行了解读;随后浓墨重彩的阐述了 Redis-Cluster 的集群原理和基于 Redis 的分布式缓存实现,并列举了实际应用中 Redis 的典型异常、根因分析及解决方案;最后,结合源码分析了 Redis-Cluster 主节点故障场景下的调优策略。

第三部分(8-11):分布式锁

在分布式系统中,为保障不同进程争夺共享资源的安全性,需要分布式锁协助。实现分布式锁的方案很多,本部分内容首先对比分析当前主流的分布式锁方案,之后详细解读了基于 Redis 的分布式锁实现和基于 Etcd 的分布式锁实现;特别是 Etcd,作为后起之秀,在很多方面优于 ZooKeeper,但目前在网上几乎找不到完整的方案,鉴于此,本部分对其进行了详细解读。

第四部分(12-14):分布式消息队列

消息队列是分布式应用间交换信息的重要组件,可以解决应用解耦、异步消息、流量削锋等问题,是实现高性能、高可用、可伸缩和最终一致性架构中不可或缺的一环。本部分内容首先对当前主流的分布式消息队列方案进行了解读,之后深入浅出的阐述了基于 Kafka 的分布式消息队列实现和基于 RocketMQ 的分布式消息队列实现。

作者介绍

应书澜,毕业于 C9 高校,硕士学历,曾在 IEEE ITS、VSD 等顶级刊物发表论文,在各大网站撰写博客百余篇。擅长嵌入式 & 物联网、预测算法、分布式中间件等相关技术。曾在华为、阿里巴巴,上海电气,浙能集团等公司重要项目中担任技术负责人或核心研发成员,现专注于中间件技术。

适宜人群

  • 有 Java 基础、对中间件和分布式系统感兴趣的在校学生;
  • 中间件、分布式系统初学者;
  • 希望提高软件架构设计能力的软件开发工程师;
  • 寻找分布式中间件参考资料的工程师。

订阅须知

  • 本专栏为图文内容课程,共计 14 篇。
  • 本专栏为虚拟产品,一经付费概不退款,敬请谅解。
  • 本专栏也可在 gitbook.cn 上购买和阅读。
  • 本专栏可在 GitChat 服务号、App 及网页端 gitbook.cn 上购买,一端购买,多端阅读。

订阅福利

  • 订购本课程可获得专属海报(在 GitChat 服务号领取),分享专属海报每成功邀请一位好友购买,即可获得 25% 的返现奖励,多邀多得,上不封顶,立即提现。
  • 提现流程:请在 GitChat 服务号中点击“我-我的邀请-提现”进行提现。

购买须知

  • 本课程内容版权归北京码字科技发展有限公司独家所有,未经授权,不得转载。
  • 本课程为虚拟产品,一经付费概不退款,敬请谅解。
  • 添加 GitChat 助教俏俏(微信 ID: gitchat2025),加入免费技术交流群。
× 订阅 Java 精选频道
¥ 元/月
订阅即可免费阅读所有精选内容