架构设计-保持架构简洁性

开发当中要尽量避免,一些无限制的服务拆分,导致服务数量的庞大.架构要保持一个度,其中人力,服务边界,性能等等都要考虑到,本文记录一次,冗余架构拆分带来的性能损耗.

架构模式介绍

一个调度服务(C++)负责下发请求到对应的下游服务,获取对应的结果.由于下游服务是一个业务的整体,就加了一个网关的模块是基于PHP写的.

请求
请求
分发
分发
分发
调度服务C++
业务服务网关PHP
其它服务
业务服务1
业务服务2
业务服务3

问题分析

1.首先网关这么重要的业务不应该那一些性能较低的语言去构建,应考虑性能高的语言编写,否则转发效率低下
2.网关的服务以模块功能较少,其中由于我们的场景是内网请求不涉及权限的校验,流量控制(在调度服务控制)等.只是做了协议转换,模块的定位不清晰,与调度服务边界不清晰.
3.问题定位的难度会有增加,请求链越长对问题定位越不利.

解决方案

将网关模块的功能放入调度模块.从架构上看,这块的功能本身就可以放入到调度服务,反而使服务边界更加清晰.

优化后的架构

请求
分发
分发
分发
调度服务C++
其它服务
业务服务1
业务服务2
业务服务3

收益

1.性能提升,显而易见C++重写了PHP网关的功能,而且减少了一层网络调度.
2.稳定性的提升,之前网关服务不稳定会直接影响到对应的业务处理.
3.问题的定位,当一次请求的服务越长,就增加了定位问题的难度.就会有很多的不确定性.

总结

架构设计不是微服务化拆分的越细越好,更是权衡的结果.保持架构的简洁性是很必要的,减少业务流程调用步长.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值