微服务系统设计规范

一、目的

系统设计规范是为了定义清楚系统架构设计及架构设计评审过程中需要统一遵循的基础规范,防止重复出现以往的架构设计问题,减少因架构设计不合理的原因造成的架构调整。

二、系统设计规范要求

系统(微服务)设计,需遵循下列设计原则:

1、单一职责原则

每一个服务或者是模块应该只有一个职责,功能要内聚。

2、基础数据统一维护原则

基础数据禁止多处维护,以基础服务提供查询接口的形式访问基础数据,如果对性能考虑需要做数据冗余,前提是对该冗余数据只读,并对时效性及重要度要求不高,然后通过异步消息的形式同步该冗余数据。

基础数据定义:用户信息、客户信息、商户(包含代理商、分销商)信息等。

3、系统拆分原则

非必要情况下,尽量不做系统拆分,拆分必然会造成结构更复杂,维护、管理、部署更繁琐,而且需要依赖微服务组件。

需要做系统拆分的几种情况:

  • 主次功能拆分,核心功能及非核心功能尽量拆分,防止非核心功能影响核心功能。
  • 业务结构拆分,对应业务架构设计,针对不同用户群体或入口,对内业务和对外业务。
  • 公共服务拆分,公共功能和数据,需要拆分成公共基础服务。
  • 信息安全拆分,核心算法或核心敏感数据需要拆分,统一管理统一维护,方便控制入口及访问权限。

PS:敏感数据定义:身份证、银行卡、手机号、公司信息相关数据等。

  • 解耦拆分:单体程序最大的问题在于系统错综复杂,牵一发而动全身,也许一个小的改动

就造成很多功能没办法正常工作,极大的降低了软件的交付速度,因为每次改动都需要大量的

回归测试确保每个模块都能正确工作,因为我们不清楚改动会影响到什么,所以需要做大量重

复工作,增加了测试成本。这时候就需要对系统进行拆分,理清各个功能间的关系并解耦。

  • 性能需求拆分,在当前架构对性能有影响或者不满足性能需求时,要架构调整,进行拆分。

4、服务间调用原则

  • 服务之间调用避免环形依赖和双向依赖。这样会使服务紧密地耦合在一起。同时互相也会调用导致结构更复杂,影响将来的架构调整。
  • 服务间调用最好是查询接口,系统间的修改尽量用异步事件或者消息来实现,如果实在有实时性要求,可以调用实时接口,但禁止互相调用。
  • 需要考虑服务间调用时异常情况的补偿或回退机制,以达到数据最终一致性。

5、服务间数据访问原则

服务间数据访问,只能通过接口,禁止跨库访问和同义词访问。

6、分层设计原则

A、下层服务不能调用上层服务,如果有下层服务需要访问上层服务的需求,可以考虑调整架构。(如果无法解决,只能调用,需要拉上研发leader/架构师讨论方案)

B、同层级的服务之间禁止调用,如果有调用需求,可以考虑调整架构。(如果无法解决,只能调用,需要拉上研发leader/架构师讨论方案)

7、不做超前设计原则

在需求不明确的情况下,不做超前设计,架构设计始终是结合业务需求而设计的,需求不明确的情况下,超前设计可能会造成返工。

三、系统设计要求

  • 不进行评审或未达成一致意见时不允许进行代码的开发。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微服务架构技术规范 v2旨在定义和规范微服务架构的开发和实施过程中的最佳实践。以下是对该规范的回答: 微服务架构是一种将应用程序拆分成更小、更独立的服务的软件设计方法。它将整个应用程序划分为一组松耦合的服务,每个服务都独立运行和部署。微服务架构的目标是提高应用程序的可扩展性、灵活性和可维护性。 在微服务架构技术规范 v2中,有几个关键方面需要注意。首先是服务设计和拆分原则。规范建议根据业务功能和数据聚合程度来划分服务,避免服务之间的强耦合。此外,规范还提供了服务接口设计的准则,包括接口粒度、数据传输格式和错误处理等方面。 其次是服务的通信规范。规范推荐使用轻量级的通信协议,如REST或消息队列,以实现服务之间的通信。此外,规范还指导采用异步通信机制来提高系统的可伸缩性和性能。 规范 v2还强调了服务的部署和扩展策略。根据规范,服务应该以容器化的方式进行部署,如Docker。此外,规范还建议使用自动化的部署工具和容器编排平台,如Kubernetes,来实现服务的弹性扩展和管理。 最后,规范 v2还包含了其他方面的准则和最佳实践,如服务的监控和日志记录、安全性和权限控制、测试和质量保证等。 总体而言,微服务架构技术规范 v2为开发和实施微服务架构的项目提供了一套明确的指导原则和规范。遵循这些规范有助于确保微服务架构的一致性、可维护性和灵活性,提高开发团队的效率和系统的质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jacker tang

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值