微服务设计规范总结

一、微服务设计原则

  1. 高内聚低耦合、职责单一:每个微服务模块职责单一独立,负责各自业务功能。微服务之间尽量减少调用,做到高内聚低耦合。
  2. 前后端分离:将前端和后端代码进行分离,包括开发分离,部署分离,代码存放分离。前端负责页面展示,后端负责业务数据处理。前端通过HTTP协议或者其他协议进行交互。
  3. 围绕业务拆分:微服务应该围绕业务进行拆分,每个微服务聚焦于一个特定的业务功能,在技术选型上比较灵活,不局限于某个固定的技术栈。
  4. 日志与监控:随着微服务系统不断升级演进,微服务数量剧增,系统出现故障的几率也在增大,需要考虑日志与监控的设计开发,提升系统可维护性。
  5. 先横向拆分再纵向拆分:先按照业务进行横向拆分,再把每个业务的不同模块或组件进行纵向拆分,实现服务分层。

二、命名规范

服务名唯一,在一个微服务系统中应用名不能重名。微服务按功能类别分为4大模块:

微服务

一个功能模块做成一个普通微服务,对系统业务功能的实现的微服务属于这一类。

interface

对外提供接口,比如f1-interface-model是model的接口,其它微服务引入f1-interface-model就可以访问model中的功能。

starter

用自动装配的方式在微服务启动时加载一些公共组件,比如f1-starter-data, 其他微服务引入f1-starter-data之后,就可以使用GenericDao的springbean操作数据库数据。

util

经常用到的一些工具类库,比如f1-util。

 

 

 

 

 

 

 

2.1、服务命名

服务命名规范

模块

规则

示例

前端服务

[项目名]-[模块名]- [web]

 

f1-model-web

微服务

[项目名]-[模块名]- [business]

 

f1-model-business

interface

 

[项目名]-interface-[模块名]

 

f1-interface-model

starter

[项目名]-starter-[模块名]

f1-starter-model

util

 

[项目名]-util

 

f1-util

 

 

 

 

 

 

 

 

 

下面以信息总览为例,按照前后端分离的原则,前端服务命名为项目名-模块名-web,后端微服务命名为项目名-模块名-business。

微服务命名示例

微服务名称

项目名-informationOverview-web

项目名-informationOverview-business

项目名-interface-informationOverview

项目名-starter-informationOverview

项目名-util

 

 

 

 

 

 

2.2、参数命名

参数指的是微服务中自定义的配置参数,以键值的形式进行定义。

 配置参数定义规范:

分类

规范

示例

取法

平台参数

 

platform.config.[参数名]

platform.config.messageSwitch

平台的消息开关

Platform.getPlatform().getString(参数名)

项目参数

[项目名].[模块名].[参数名]

Aproject.product.maxCount

A项目的产品模块的最大数量

微服务常用功能开发——微服务自定义配置参数

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值