极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:19
登录|注册

业务中台的8个设计原则(上)

讲述:丁婵大小:2.44M时长:05:19
业务中台是一个充满生命力的个体,它承载业务逻辑、沉淀业务数据、产生业务价值,并随着业务不断发展进化。近日,公众号技术琐话从《中台战略:中台建设与数字商业》一书中梳理出业务中台的 8 个设计原则,以供开发者参考。

第一、服务松耦合原则

这包括面向接口实现、异步事件解耦、服务提供者位置解耦、版本松耦合 4 个方面。
1、面向接口实现
这是服务松耦合的基本要求,即每一个服务都按接口的定义进行实现。服务的消费方不需要依赖某个特定的服务实现,避免服务提供方的内部变更影响到消费方。另外,在服务提供方切换到其他系统时,不影响服务消费方的正常运行。
2、异步事件解耦
服务间的事件通信采用异步消息队列来实现。由于有消息队列这个中介,因此生产者和消费者不必在同一时间都保持实时处理能力,而且消费生产者也不需要马上等到回复。
3、服务提供者位置解耦
服务消费者不需要直接了解服务提供者的具体位置信息,例如 IP 地址、端口。典型解决方法是服务注册中心,服务提供者启动时将自己注册到服务注册中心,服务消费者通过服务注册中心查找具体服务提供者来访问。同时,服务注册中心可以提供负载均衡及 fail-over 的能力。
4、版本松耦合
消费端不需要依赖服务契约的某个特定版本来工作,这就要求服务契约在升级时尽可能提供向下兼容性。

第二、服务依赖原则

在该原则下,包含以下 4 个方面。
1、有价值的领域模型
以价值为导向,确保业务中心的服务都与企业的商业理想保持一致,相关联;保持简捷为美的特性,业务逻辑和流程避免复杂化;做到领域洞察,紧贴业务的核心目的,从业务原则指导业务逻辑的设计。
2、服务间最小依赖
高内聚与低耦合自不必多说,此外还需要注意两个方面,一方面是能力与接口,业务流程和业务逻辑的操作都作为中心服务实现,而提供给外部调用的接口数据模型都会转化为服务。另一方面是识别通用性,识别出每个通用能力的可扩展的类型,从设计上支持它不断扩展,并在接口定义上满足其不断升级的需求。
3、能力实体具有层次性
首先是能力与接口,分离接口实体与能力实体。其次是接口实体与限定元素,将接口实体核心元素与接口操作的限定元素分离。最后要注意接口实体的层次结构,建设接口实体和上下文限定元素的层次结构。
4、延迟对技术组件的依赖
在捆绑依赖方面,避免在无关的组件技术之间引入新的依赖。在延迟绑定方面,使用点时捆绑依赖关系。

第三、服务设计原则

在服务设计原则下,需要注意一下 7 个方面。
1、优化远程调用
服务间的远程调用分为同步调用和异步调用两种模式。应当分析服务调用场景,选择较优的调用模式。
2、去掉冗余数据
尽量去掉接口实体中客户端不需要的冗余字段,既能减少网络开销,又能避免给前端解析带去复杂性。
3、设计粗粒度的服务接口
服务接口若能与前端一个用例或一个业务场景相对应(粒度较粗)则既能减少远程调用次数,又能降低学习成本。
4、识别并设计通用的服务接口
由于中心服务不限定应用范围,因此一般要支持不同的应用。但不同应用在功能丰富性上有很大差异,这就决定了服务接口需要尽可能保证广泛兼容性。譬如,服务接口的参数和返回值必须是被广泛支持的较简单的数据类型。
5、隔离服务内部的变化
避免服务内部的领域模型直接传导给客户端。如未能提供合理的隔离措施,则当服务进行内部重构时,势必导致客户端频繁变化。
6、服务接口先行
详细规定服务与客户端双方对接的内容与形式等,对双方形成强有力的约束和保障。
7、服务接口向下兼容
由于应用的广泛性,在服务公开发布之后就要保证相当的稳定性,不能随便重构,即使升级也要尽可能考虑向下兼容性。
以上是业务中台遵循的前 3 个设计原则,受篇幅所限,其余 5 个设计原则在下文呈现,欢迎持续关注。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 旭东(Frank)
    微服务通用原则
收起评论
大纲
固定大纲
第一、服务松耦合原则
第二、服务依赖原则
第三、服务设计原则
显示
设置
留言
1
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部