分布式系统案例课
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
11809 人已学习
新⼈⾸单¥59
课程目录
已完结/共 66 讲
第一章 课程介绍 (2讲)
时长 09:20
时长 04:42
第二章 如何设计一个分布式计数服务 - 系统设计面试案例 (7讲)
第五章 如何设计一个高并发无状态的会话缓存服务 - 携程SessionServer案例 (5讲)
第十章 课程回顾&结课测试 (1讲)
分布式系统案例课
登录|注册
留言
7
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 10 | PMQ 2.0项目背景
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 需求收集和总体架构设计
04 | 存储设计
05 | 计数服务设计(上)
06 | 计数服务设计(下)
07 | 查询服务设计
08 | 技术栈选型
09 | 进一步考量和总结
10 | PMQ 2.0项目背景
11 | PMQ 2.0的设计解析(上)
12 | PMQ 2.0的设计解析(中)
13 | PMQ 2.0的设计解析(下)
14 | PMQ 3.0的演进
15 | Kafka的动态重平衡是如何工作的?(上)
16 | Kafka的动态重平衡是如何工作的?(下)
17 | 消息队列设计和治理最佳实践
18 | 第四章目录和大纲
19 | 微服务的四大技术难题是什么?
20 | 如何解决微服务的数据一致性分发问题?
21 | 如何解决微服务的数据聚合Join问题?
22 | 如何解决微服务的分布式事务问题?(上)
23 | 如何解决微服务的分布式事务问题?(下)
24 | 阿里分布式事务中间件Seata解析
25 | Uber微服务编排引擎Cadence解析
26 | 如何理解Uber Cadence的架构设计?
27 | 如何实现遗留系统的解耦拆分?
28 | 拍拍贷系统拆分项目案例
29 | CQRS/CDC技术在Netflix的实践
30 | 第四章总结
31 | SessionServer项目背景
32 | 总体架构设计
33 | 如何设计一个高性能基于内存的LRU Cache?
34 | 如何设计一个高性能大容量持久化的ConcurrentHashmap?
35 | 设计评估和总结
36 | SaaS项目healthchecks.io的背景和架构(上)
37 | SaaS项目healthchecks.io的背景和架构(下)
38 | 如何设计一个轻量级的基于DB的延迟任务队列?
39 | 如何设计一把轻量级的锁?
40 | 如何设计一个分布式限流系统?
41 | 如何设计一个分布式TopK系统实现实时防爬虫?
42 | 第七章目标和大纲
43 | 为什么说ServiceMesh是微服务的未来(上)
44 | 为什么说ServiceMesh是微服务的未来(下)
45 | 解析Envoy Proxy(上)
46 | 解析Envoy Proxy(下)
47 | Envoy在Lyft的实践
48 | 解析Istio
49 | K8s Ingress、Istio Gateway和API Gateway该如何选择?(上)
50 | K8s Ingress、Istio Gateway和API Gateway该如何选择?(下)
51 | Spring Cloud、K8s和Istio该如何集成?
52 | 第八章目标和大纲
53 | 拍拍贷案例:大型网站架构是如何演进的?
54 | 最小可用架构:Minimum Viable Architecture(上)
55 | 最小可用架构:Minimum Viable Architecture(下)
56 | 如何构建基于OAuth2/JWT的微服务架构?(上)
57 | 如何构建基于OAuth2/JWT的微服务架构?(下)
58 | 拍拍贷案例:如何实现数据中心机房的迁移?
59 | 携程/Netflix案例:如何实现同城双活和异地多活?
60 | 第九章大纲
61 | 学习开源项目的6个层次和8种方法(上)
62 | 学习开源项目的6个层次和8种方法(中)
63 | 学习开源项目的6个层次和8种方法(下)
64 | 百万年薪架构师是如何炼成的?
65 | 解读一份大厂的研发岗职级体系
66 | 结课测试&结束语
登录 后留言

全部留言(7)

  • 最新
  • 精选
飞翔
不是很懂 kafka没有采取隔离机制 所以会被慢消费者给堵塞住 老师能不能详细解释一下 这里隔离机制是要隔离啥 要采取什么隔离机制?

作者回复: 这个不是kafka本身的问题,原来的PMQ 1.0有一个基于Kafka的方案,之前的架构师在Kafka上面包装了一个分发器(Dispatcher),相当于把Kafka的拉模式又搞成了推模式,目的是想简化消息接收方。但是原来的推模式没有设计好隔离机制,在推消息的过程中,如果某个接收方慢,就会把分发器整个给堵住了,然后其它的消息接收方会受影响收不到消息。 如果采用分发器+推消息方式,要做好隔离机制还是比较难的,需要在分发器上做多线程隔离。

2020-06-25
2
6
龙彦极客
小公司结合阿里云k8s,做微服务电商系统,只要使用消息队列的功能,但是消息可靠性要强,应该用哪个消息队列?RocketMQ?RabbitMQ?能不能讲一讲RocketMQ和RabbitMQ怎么选型?而且想结合阿里云k8s去做的话。

作者回复: 个人认为RocketMQ和RabbitMQ能力上基本等价。但是RocketMQ更面向互联网型大流量高性能消息应用,而RabbitMQ更面向传统企业级消息应用,RocketMQ功能更丰富,但是性能和扩展型不如RocketMQ。公司如果刚开始业务不大,可以从RabbitMQ开始,更容易上手,文档资料更多。到达一定体量,可以再考虑升级到RocketMQ。 虽然这两个MQ都可以部署到K8s环境,但是对于MQ这种有状态服务,其重要性和DB相当,建议独立于K8s单独部署/监控和运维。

2021-01-19
2
SnoWalker
RMQ代码质量一般不知道有没有具体的案例或者细节分析呢? 我也完整的读过,并且也贡献过几个pr,感觉RMQ比Kafka的理解性以及代码整洁度更好。 所以想听听波波老师的看法,比较好奇您对它代码的哪些部分不满意

作者回复: 你好,我看的RMQ代码还比较早,在2016年底左右,那个时候它还不是Apache孵化项目。RMQ这几年在Apache下应该有不少改进了,所以现在RMQ的代码质量可能已经大大改进了。

2020-06-26
4
2
托尼斯威特
波波老师您对云服务商的消息队列怎么看? 阿里云提供各种MQ, AWS也有SNS+SQS. 技术选型中要不要考虑是用云服务商的服务还是自己去运维?

作者回复: 看情况。我个人建议如果有条件的话,尽量用云服务,这个长期是确实。除非某些业务场景(比如金融严格要求合规的场景),或者本来就是自建数据中心,也有一定的研发运维能力,才考虑自己运维。

2020-07-13
1
蒙奇D路飞
老师开发PMQ的初衷是什么呢?架构设计过程中一般不主张重复造轮子

作者回复: 对,能不要造轮子就尽量不要造轮子,解决业务问题优先。但是PMQ这个轮子当时必须得造,具体看我视频中的三点说明。

2020-07-06
1
WangBo
特别能理解波波老师当时面临的情况,因为底层技术不重视、技术债、历史技术栈选择、团队组织架构汇报关系等原因,同一件事在公司内可能会有多个类似解决方案,造成底层技术基础设施薄弱、技术选型需站队、故障频发、信息割裂。 好的架构师可以填坑并力挽狂澜! 我所在的公司在过去数年前也是经历了急速发展,业务过快发展带来的技术基础设施虚胖,好在经过近两年的沉淀和升级,很多基础设施已经趋于完善。MQ我们选择的RocketMQ,并做了内部二次封装。

作者回复: 嗯,到一定规模量级,选择开源是捷径,但定制封装也少不了,且需要一定的源码级把控。

2020-07-06
1
尘飞扬
有个疑问,在为什么不用Kafka时,提到了基于文件存储,把业务数据放在文件存储不放心。PMQ采用了基于数据库的存储。数据库底层不还是文件存储吗?所以在存储这点上,没什么本质区别啊
2022-06-08
收起评论