【DDD】学习笔记-限界上下文之间的分布式通信

当一个软件系统发展为微服务架构风格的分布式系统时,限界上下文之间的协作就可能会从进程内通信变为跨进程通信。利用防腐层,固然可以减少因为通信方式的变化对协作机制带来的影响;然而,若是全然无视这种变化,又未免有些掩耳盗铃了。无论采用何种编程模式与框架来封装分布式通信,都只能做到让跨进程的通信方式变得更加透明,却不可抹去分布式通信固有的不可靠性、传输延迟性等诸多问题,选择的 I/O 模型也会影响到计算机资源特别是 CPU、进程和线程资源的使用,从而影响服务端的响应能力。分布式通信传输的数据也有别于进程内通信,选择不同的序列化框架、不同的通信机制,对远程服务接口的定义也提出了不同的要求。

分布式通信的设计因素

一旦决定采用分布式通信,通常需要考虑如下三个因素:

  • 通信协议:用于数据或对象的传输
  • 数据协议:为满足不同节点之间的统一通信,需确定统一的数据协议
  • 接口定义:接口要满足一致性与稳定性,它的定义受到通信框架的影响
通信协议

为了保障分布式通信的可靠性,在传输层需要采用 TCP 协议,它能够可靠地把数据在不同的地址空间上搬运。在传输层之上的应用层,往往选择 HTTP 协议,如 REST 架构风格的框架,又或者采用二进制协议的 HTTP/2,如 Google 的 RPC 框架 gRPC。

可靠传输还要建立在网络传输的低延迟基础上,如果服务端如果无法在更短时间内处理完请求,又或者处理并发请求的能力较弱,就会导致服务器资源被阻塞,影响数据的传输。数据传输的能力取决于操作系统的 I/O 模型,因为分布式节

  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农丁丁

你的认可是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值