分布式系统案例课
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
11809 人已学习
新⼈⾸单¥59
课程目录
已完结/共 66 讲
第一章 课程介绍 (2讲)
时长 09:20
时长 04:42
第二章 如何设计一个分布式计数服务 - 系统设计面试案例 (7讲)
第五章 如何设计一个高并发无状态的会话缓存服务 - 携程SessionServer案例 (5讲)
第十章 课程回顾&结课测试 (1讲)
分布式系统案例课
登录|注册
留言
15
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 21 | 如何解决微服务的数据聚合Join问题?
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 | 结课测试&结束语
登录 后留言

全部留言(15)

  • 最新
  • 精选
tt
CQRS就是服务层的读写分离,简单粗暴有效的总结。波波老师把github当成软件开发行业的“专业文献数据库”,能不能简单地分享一下经验呀?

作者回复: 没有什么特别的经验,就是闲着没事喜欢在github上逛,看形形色色的项目。当你技术和项目经验积累的一定程度,就会有技术产品感觉(就像业务的PM一样),喜欢看各种技术项目,尤其是github上开源项目。 另外,github是技术人员学习成长的修炼场所,值得好好加以利用。

2020-07-15
8
龙彦极客
听了之后有思路,也比较清晰,不知道波波老师,有没有计划出一门实战课,针对某个业务领域,比如电商方面的实战案例带着我们开发一下微服务?

作者回复: 正在开发一个电商应用,目前后端已经开发完毕,正在开发前端。后面考虑陆续推出一个系列的课程(共三门): 1. Spring电商应用实战 ~ 前后分离应用 2. SpringCloud电商微服务实战 ~ 微服务应用+Spring Cloud 3. K8s电商微服务实战 ~ 微服务应用+K8s 通过这个端到端的电商案例,包括从单体到微服务的拆分,带大家把现代企业开发主流技术spring + 微服务+ K8s等都撸一边,尽请关注。

2021-01-19
4
游弋云端
购物网站的千人千面技术是否是通过BFF技术搞定的?

作者回复: BFF主要搞定数据聚合join的问题。千人千面后台需要大数据+推荐引擎等技术的支持。所以BFF和千人千面两者并不直接相关。

2020-07-10
2
stg609
对微服务化后的报表功能,老师怎么看? 一个报表涉及的表往往很多,查询条件也很复杂,数据量又大。以前单体,所有数据在一个库中,sql join 下就可以获取。现在拆分成多个服务后,使用bff方式几乎是不可行的,因为涉及的数据量和服务过多,延时和内存占用会很高。但是用CQRS又不能做到实时一致性

作者回复: 强一致/实时可用/分布式(CAP),三者不可兼得,只能取其二。企业到达一定体量,通常做法是选分布式+异步最终一致(BASE)。 所以还是要考虑CDC/消息等技术,想办法把分布式的数据转移到集中的大数据平台,再单独进行加工处理,获取业务所需要的视图,这个是业界常见做法。

2021-01-13
1
向博士后进军
老师,BFF和cqrs都需要我们自己实现吗,有没有框架,或是具体实现要注意哪些事情呢

作者回复: BFF就是聚合裁剪的事情,一般Java可以做,nodejs也可以做,技术上Graphql这种新技术比较适合做BFF,有兴趣可以尝试,但不用框架手写聚合代码更灵活也没有问题。 cqrs更多是一种应用层读写分离的理念,具体实现手段主要依赖消息队列,事务性发件箱或者变更数据捕获(CDC)。 消息系统有很多成熟的产品(kafka, rocketmq等),变更数据捕获可以考虑阿里canal。其它也有一些专门的cqrs框架(例如AxonFramework),但是门槛较高也不是主流。

2020-10-21
1
明月朔风
感觉以前踩过的好多坑,在这得到了总结😀

作者回复: ⛽️

2020-07-14
1
边际革命
涨了不少知识

作者回复: ⛽️

2020-07-12
1
小鱼儿吐泡泡
cqrs 假设当前已经满足一个业务场景 生成业务查询数据(a、b,c); 假设需求有变更 需要数据d,数据d来自另一张表 那我们的的cqrs查询怎么更新呢? 需要写一个脚本刷新查询记录吗?

作者回复: 这个要看具体应用场景,一般需要对现有的查询数据做一次全量更新,支持有d的查询,之后再利用cqrs进行增量更新,同样也支持有d的查询。

2020-11-02
亚林
现在接手的老项目join满天飞,这节课正当时

作者回复: ⛽️

2020-07-29
汉斯·冯·拉特
cqrs,波波老师讲后,明白了,之前一直听说,但不懂

作者回复: ⛽️

2020-07-10
收起评论