微服务架构核心 20 讲
杨波
拍拍贷框架研发部总监,资深架构师,微服务技术专家
48677 人已学习
新⼈⾸单¥29
微服务架构核心 20 讲
登录|注册
留言
19
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 07 | 如何给出一个清晰简洁的服务分层方式?
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 | 微服务 API 服务网关(一)原理
11 | 微服务 API 服务网关(二)开源网关 Zuul
12 | 跟 Netflix 学习微服务路由发现体系
13 | 集中式配置中心的作用和原理是什么?
14 | 微服务通讯方式 RPC vs REST
15 | 微服务框架需要考虑哪些治理环节?
16 | 微服务监控系统分层和监控架构
17 | 微服务的调用链监控该如何选型?
18 | 微服务的容错限流是如何工作的?
19 | Docker 容器部署技术 & 持续交付流水线
20 | 容器集群调度和基于容器的发布体系&结课测试
本节摘要

登录 后留言

全部留言(19)

  • 最新
  • 精选
LMD
置顶
关于《微服务架构核心20讲》课程讲义(PDF 文件),学员可复制下面链接到浏览器下载获取。 http://t.cn/RQs9iTw
2018-01-26
5
王盛武
波波老师,这节的架构图好像没有提到Zuul层; Zuul网关层和聚合/边界访问,是垂直依赖关系? 还是两者融合在一个代码工程里面呢?

作者回复: 图示为了简化,突出和业务相关的聚合和基础服务层,没有提网关层zuul。zuul一般只处理和业务无关的跨横切面(cross-cutting)逻辑,建议BFF单独一层,关注分离和职责单一原则,当然特殊情况(业务和团队规模很小)zuul上也可以承担BFF职责。

2019-01-04
3
杨晶
请问杨老师,对于领域核心服务。 比如订单基础服务。我这边设计成2层应用。一个订单领域服务,一个订单核心服务。核心服务只是对db和redis的数据原子操作。领域服务是对各种核心服务的业务封装。比如下订单的操作,由聚合服务组装,订单领域,库存领域,用户领域等等。每层领域都至少分为2层,不能横向调用,不能跨db操作。这样的设计会不会过度? 如果这样设计了,tcc事务操作是在聚合服务做,还是领域服务做? 领域服务应该是不能互相调用是吗?只能向下调用自己的核心服务。 微服务体系设计成聚合,领悟,核心这样如何?

作者回复: 你好,我是在参考Netflix微服务架构的基础上,推荐了一个简化的两层分层模型,下层是基础服务(也称原子服务,领域服务或者公共服务),上层是聚合服务(也称适配服务,BFF),聚合服务可以认为是下层的基础服务和外部的端用户体验(无线,桌面,H5,第三方开放平台等)之间的一个适配层,主要是用来适配端用户体验的,让体验和基础服务不强耦合,可以相互独立变化。这个模型比较简单易于理解,但是不是一个严格的规范,每家公司具体的分层和叫法可能都不太一样,大家不必拘泥纠结。基础服务层中如果有聚合服务也是有场景OK的,有些情况下可能没有聚合服务层,基础服务直接对外暴露,也是有场景OK的,大家要根据具体业务场景、团队和业务规模灵活应用。如果你使用TCC做分布式事务,一般是在基础服务层做,当有也可能有场景需要在聚合层做,也需要灵活应变。一般上层调用下层服务OK,同一层服务间相互调用OK,但是避免下层调用上层。

2018-05-18
2
3
Cm
有个问题请教,对于apigateway的性能有讲究么,比如zuul单机能达到多少,我们用golang做项目,正在参考gateway这个框架golang写的,作者说笔记本上做到3万的QPS不知道关于网关的性能有啥标准没?

作者回复: 都可以,统一webapi简单,一套框架搞定。内部用RPC也OK,但对外要多用一套框架转成REST/HTTP。

2018-01-28
3
是我
聚合服务起承上启下的作用吗

作者回复: 可以这样认为,更多是适配器,适配不同体验设备

2018-11-23
2
ray
能否请杨老师举个场景事例,来讲解一下聚合层跟基础服务层的划分。

作者回复: 对于一个电商网站,基础服务有商品,分类,购物车,用户等。对于无线app,可以有专门的无线聚合服务,对基础服务进行聚合裁剪,再暴露给无线app,方便无线app使用。对h5app,或第三方接入,也可有专门的聚合服务。

2018-09-27
2
meijing0114
现在公司基本上也是分为API层和SOA服务层。API主要为app、web站点提供逻辑组合服务,间或有一些缓存来提高自己的处理性能,语言为PHP和Java两种。SOA服务层主要是基础的服务,如用户、作家、阅读等等。两者之间使用二进制协议进行沟通。

作者回复: 恩,标准的聚合层+基础服务层

2018-06-15
2
技术修行者
我们目前的服务层次划分为两层:基础服务和业务服务。基础服务提供一些各个领域都可能会用到的服务,例如数据访问、认证授权、消息队列、缓存等;业务服务会根据各个领域不同的需求,调用不同的基础服务,来为前台应用提供服务。 基础服务部署在单独的集群中,通过网关对上层应用提供服务。

作者回复: 你们的划分方式类似技术支持服务+业务服务,也是一种常见划分方式。

2020-01-28
1
王盛武
web bff是使用zuul可以吗?最佳实践是pc 移动 第三方部署独立的zuul还是共用一个project代码?

作者回复: zuul一般只处理和业务无关的跨横切面(cross-cutting)逻辑,建议BFF单独一层,当然特殊情况(业务和团队规模很小)zuul上也可以承担BFF职责。PC/mobile/3rd party zuul是共享还是独立,也是看业务和团队规模,小的时候可以共用,大的时候如果团队间有摩擦影响效率了,就要分开,这个就是微服务的分而治之的思想。

2019-01-04
1
RocWay
业务前台、中台、技术中台是不是也可以看做是一种服务分层?业务前台对应聚合层,其他对应基础服务

作者回复: 可以是一种逻辑分层方式

2018-11-06
1
收起评论