1.5 微服务开发原则

在实际工作中进行微服务开发时,除了遵循1.4节介绍的设计原则和拆分原则,还要遵循以下开发原则和开发规范。

1.5.1 微服务命名

微服务名称(Service Name)采用三段式的命名规则,中间使用短横线(-)分隔,即xxxx-xxxx-xxxx形式。一级服务名为组织名称,如baidu;二级服务名为应用或项目的名称,如tieba;三级服务名为功能模块的名称,如auth。整体使用英文拼写,单词间不要使用空格和下画线(_),全部使用小写字母。如果微服务仅供组织内部使用,可以将应用或项目名称作为一级服务名。

正确的示例如下:

baidu-tieba-auth(仅举例说明)

eos-order-cancel

org-open-platform-proxy

错误的示例如下:

org-open-platform proxy [错误说明:空格]

org_open_platform-proxy [错误说明:下画线]

org-open-PLATFORM-proxy [错误说明:大写]

1.5.2 项目依赖配置

使用Maven进行项目管理,在项目的pom.xml文件中添加以下父依赖,用于实现微服务基础框架构建、健康检查、路由追踪等。在pom.xml文件中,按照以下规则命名groupId和artifactId。

1.groupId

定义当前Maven项目隶属的实际项目或应用,与包命名规范类似,按照“组织.项目/应用”的格式进行命名,如<groupId>com.unicom.eos</groupId>。

2.artifactId

使用service-name定义artifactId,如<artifactId>eos-open-platform-proxy</artifactId>。

1.5.3 配置文件

配置文件一般使用*.yml或*.properties格式。

1.本地配置

bootstrap.yml配置文件用来配置服务本身的属性,如微服务名称、端口,以及需要连接的配置服务器等。

2.远程配置

命名如{service-name}.yml的配置文件放在微服务平台的Git仓库(公共GitHub或私有GitLab)中,用来配置业务逻辑中用到的配置信息。

3.版本配置

微服务开发会配置多个环境版本,一般包括开发(dev)、测试(test)、灰度(grey)和生产(prod)4个环境,运行环境配置文件如表1-1所示。

表1-1 运行环境配置文件

img

不同运行环境的配置文件,在微服务启动时可以动态传入,参数为“--spring.profiles.active=test”,其中,test表示使用测试环境的配置文件。

1.5.4 代码命名

变量采用驼峰式命名法,接口统一使用RESTful通信风格,URL统一使用小写字母,方法命名采用小驼峰格式。