Biz-SIP业务中台服务规划实操

Biz-SIP金融级业务中台(http://bizsip.bizmda.com))是一套基于领域驱动设计(DDD)架构,能快速构建金融级云原生架构的服务整合中间件,整合了在金融场景里锤炼出来的最佳实践。

Biz-SIP业务中台涉及三类服务:

  • App服务:负责服务的整合和编排,对Source层接入的服务,进行服务编排,并通过Sink模块接入要编排的服务。
  • Source服务:负责聚合服务的接入,包括通讯协议适配和消息格式转换,并统一接入App层的App服务。
  • Sink服务:统一被App服务所调用,实现业务逻辑的处理,或接入外部第三方服务,包括和外部服务对接时的通讯协议适配和消息格式转换。
    在这里插入图片描述

以上三类服务在规划时,涉及到二大类问题:

  • 服务垂直功能划分:主要涉及服务功能在垂直层面的功能划分,Source、App、Sink层服务应各司其职,有明确的功能划分边界。
  • 服务水平拆分划分:主要涉及Source、App、Sink层服务的拆分问题,服务粒度太大或太小都是不合适的。

一、服务的垂直功能划分

  1. 外部应用和渠道对本系统的调用,应在Source服务中实现。
  2. 系统接入的个性化处理,包括通讯适配、消息转换、安全验证,应在Source服务中实现。
  3. App服务应集中实现主要业务逻辑。
  4. App服务能实现公共的服务消息检验。
  5. 分布式事务是由App层的延迟服务来实现的。
  6. 对数据库的更新服务,原则上应在sink服务来实现(只有非高频的数据库更新服务,才可以放在Source服务和App服务中实现,但不推荐)。
  7. 数据库的查询服务,可以在Source、App、Sink服务中进行使用,但应做好未来数据库连接切换到只读备库的准备。
  8. 调用外部系统的服务,应在Sink服务中实现。
  9. 对数据库的更新服务,原则上不应该在有调用外部系统的Sink服务中使用,如果在调用外部系统的sink服务中需要做数据库更新操作,建议把这块功能拆分成另一个Sink服务,由App服务来组装为妥。

二、服务的水平功能划分

  • Source服务,应以外部应用接入和渠道接入点来划分,每个Source服务对应一个外部应用接入(渠道接入);
  • App服务,服务粒度和服务接口尽量和软件设计文档中的业务流程设计相一致,需要参考业务人员和产品经理的意见;
  • Sink服务,包括连接第三方应用的、执行纯交易逻辑的二类sink服务:
    1. 【服务拆分】调用第三方应用的Sink服务,每个Sink服务对应一个外部应用的调用,而且调用每三方应用的sink服务,原则上不要再进行数据库的更新操作;
    2. 【服务拆分】执行纯交易逻辑的Sink服务,拆分时可以以数据库的拆分为参照,一个Sink服务一般建议只连接一个业务数据库,如果一个Sink服务连接二个以上的业务数据库,就建议要拆分成多个Sink服务;如果sink服务未来可能会连接二个以上的业务数据库,也建议提前进行拆分;
    3. 【服务拆分】执行纯交易逻辑的Sink服务,除了满足上面数据库拆分规则外,其它需要参考DDD架构中领域服务的划分,参考DDD架构中对微服务拆分的原则和方法。
    4. 【接口拆分】执行纯交易逻辑处理的Sink服务,在拆分时,应避免拆分过细,导致频繁的服务调用而影响执行效率;同时也应避免拆分过粗,导致业务逻辑呈现在Sink层而不是App层,同时也影响未来新业务的扩展。
    5. 【接口拆分】执行纯交易逻辑处理的Sink服务,应尽量避免在App层拆分成2个sink服务接口,建议放在1个Sink服务接口中统一做事务完整性处理。
    6. 【服务拆分】可以做异步处理的Sink服务,尽量封装成RabbitMQ异步调用的Sink服务,异步Sink服务和传统的同步Sink服务肯定是要分开的;

Biz-SIP网站:http://bizsip.bizmda.com
Gitee源代码:https://gitee.com/szhengye/biz-sip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值