📌 术语定义

为了低成本管理大规模的系统,Shoulder 将应用进行数字化规范,相关定义如下:

应用(application 能独立完成某个基础功能的软件)
基础设施应用

如数据库、消息中间件、注册中心、搜索引擎等提供基础能力或技术的中间件。

基础应用(base application)

提供系统设计的基本的能力,如认证、授权、用户管理等。通常更注重技术设计,一系列的基础应用紧密相连提供了一个可供上层应用复用的平台,基础应用决定了一个系统的基础架构。

业务应用

功能贴近用户 / 某一特定场景 / 业务,针对性更强。通常依赖于基础应用,设计上更注重交互。

应用管理标识
应用标识(appId)

不论哪类应用,都应有一个唯一标识,便于数字化管理,举例:用户中心应用的标识可以为 user

服务组(groupId/serviceId)

一组或单个可以独立运行并可以统一为其他软件提供信息的进程,通常在服务器器侧部署的一个应用程序(可以为其他软件提供能力和功能的 应用 ),举例:用户中心应用中包含有 认证、授权、登录、用户信息管理几块服务,且每个模块可以独立部署,那其中认证模块就是用户中心的一个服务组。

应用实例(instanceId)

一个服务组合可以集群部署到多台机器,单个机器的服务进程就称为应用实例,假设有5个认证服务进程组成集群,那每个进程都可以设置一个编号,或者说实例标志 instanceId,如 012…​

🔗 规范约束

应用标识

  • 每个应用必须包含应用标识

  • 包含字母、数字、中划线,体现应用的能力、定位。通常采用应用英文名称缩写,如用户权限管理系统 upm

  • 系统内唯一,生命周期内不可变化

  • 支持翻译成中文和英文

强烈建议应用标识全局唯一,该标识作为基础设计,实践里可将该值可用于监控、模块解耦、编码简化等系统设计中。

扩展功能举例-HTTP调用:

  • 场景:A希望调用 user 服务的 /api/v1/user 接口

  • 传统方式:需要在A代码中确认好 user 服务的 IP、端口,如(127.0.0.1:8080),在对目标接口发起调用(http://127.0.0.1:8080/api/v1/user

  • Shoulder 中:可配合注册中心和增强的HTTP模块,代码使用 http:user/api/v1/user 即可,让代码可读性、可维护性更强!

版本号

  • 所有软件都应该包含版本号,可用于确认软件进程对应的具体代码以及成果物,以便维护和排查。