代码框架对微服务项目的支持,是通过基础组件、开发规范及开发工具来实现的。

框架支持微服务项目开发,但作为一款代码开发框架,有其职责边界。代码框架不涉及的微服务相关内容:

  • CICD
  • 服务治理
  • 监控告警
  • 具体技术方案。如服务分层、服务拆分、日志搜集、分布式锁、分布式缓存、分布式事务等。
  • 数据服务选型。如选择哪种消息队列服务,请根据具体业务场景抉择。

如下图中,绿色部分为微服务相关组件,其他部分为已经实现的基础组件、开发工具。框架的所有组件,均采用接口化设计,以保证很好的扩展性。

微服务与框架职责边界 - 图1

接口协议

微服务不限制服务间的通信协议,例如,大多数以HTTP为主,在Golang开发语言栈下,大多数以gRPC为主。

接口适配

无论上层采用何种通信协议,框架提供接口适配相关的组件和工具,屏蔽接口协议差异,使得进入框架前的各种协议被转换为框架内部的接口格式。针对不同的上层接口协议的适配,是采用工具(代码生成)的形式实现的,框架内部的业务接口、业务逻辑代码无需做任何改动。同时,由于上层接口协议被转换为了内部接口格式,因此框架能够针对不同的协议提供统一的接口交付文档。

服务组件

框架提供了微服务相关的常用的核心基础组件。服务组件在框架主库中采用接口化设计,以保证主库的轻量和解耦设计,具体的实现逻辑通过社区组件提供。

核心组件

框架的核心组件是最底层的项目组件,用于构建上层的服务组件或者业务组件。

数据服务

服务最底层往往是各种数据服务,如MySQL、MongoDB等数据存储或者Kafka,RocketMQ等消息队列。