架构设计实战--数据转换服务

今天言归正传,说点技术强相关的内容。

过去几年里我主导了很大一轮服务重构,其中有一些服务的设计比较不错,在这里分享一下。隐去一些业务相关的内容,但不会影响整个内部架构的实现。

本文要描述的服务,姑且称其为 数据转换服务,其承担的职责主要包括几个部分:

  1. 老版本客户端协议数据接收
  2. 新版本客户端协议数据接收
  3. 数据分为多种类型,每种类型有不同的业务处理逻辑(这里的类型可能有些歧义, 你可以理解为不同的pb结构)
  4. 不同数据类型有不同的数据计算逻辑
  5. 不同数据类型有不同的数据过滤校验
  6. 向后往多个下游服务进行数据发送

从功能上看,其对集群外部开放了多个协议的接口,对集群内部多个下游服务进行数据发送。这样的场景正合适六边形的服务架构。何为六边形服务架构?在《Microservices Patterns》书中有描述,简单概括就是其外部由多个协议适配器组成,核心为其关键的业务域逻辑。我们直接把书中的示例拿过来说明一下:

这样的架构设计逻辑迥异于常规的MVC设计。在MVC设计中,常常分为控制层/接口层,逻辑层/领域层,存储层/底层服务,这样的分层结构有一种显示的层层向下的递进关系,原则上不允许跨层调用,在有多个上下游关系的服务中,力所不逮。而六边形架构中不再有明显的分层结构,我们可以将MVC中的逻辑层/领域层视为其逻辑核心,其外分别包括多种协议适配器:

大概是这个样子,该服务设计上并没有持久状态,也没有和数据库的交互,这极大的简化了我们的设计。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值