Skip to content

微服务定义

Java Chassis定义了一组基础的概念,这些概念会用于微服务注册发现、服务治理等多种场景。专题文章微服务实例间多环境隔离介绍了一些常见应用场景。

Java Chassis最核心的几个概念如下。

  • 环境名称:用于表示部署环境,不同环境的微服务之间不能进行服务发现。对于不同的注册中心和配置中心,会以对应的概念表示环境。比如Nacos使用 namespace 来表示环境。
  • 应用名称:用于描述一组可以相互访问的微服务,不同应用名称之间是逻辑隔离的,不能进行服务发现。对于不同的注册中心和配置中心,会以对应的概念表示应用。比如Nacos使用 group 来表示应用。
  • 微服务名称:用于标识一个微服务。可以通过微服务名称查询需要访问的目标微服务。
  • 微服务版本:表示微服务的版本。当存在微服务属性变化、接口变化的场景,建议修改版本号。
  • 微服务描述:简单的微服务描述信息。
  • 微服务属性:用于描述微服务的扩展信息。

开发一个微服务,需要在 application.yaml 文件中配置微服务的基本信息。

servicecomb:
  service:
    application: helloTest
    name: helloServer 
    version: 0.0.1 
    properties: 
      key1: value1
      key2: value2
    description: This is a description about the microservice

配置项参考

配置项 默认值 是否必选 含义
servicecomb.service.environment - 环境名称,比如 development, production 等
servicecomb.service.application default 应用名称
servicecomb.service.name defaultMicroservice 微服务名称, 应确保应用内部唯一。微服务名支持数字、大小写字母和"-"、"_"、"."三个特殊字符,但是不能以特殊字符作为首尾字符,命名规范为:^[a-zA-Z0-9]+$|^[a-zA-Z0-9][a-zA-Z0-9_-.]*[a-zA-Z0-9]$。
servicecomb.service.version 1.0.0.0 微服务版本
servicecomb.service.description - 微服务描述
servicecomb.service.properties - 微服务属性

说明:

  • 微服务属性会随服务一同注册到服务中心。如果存在变更,建议同时修改微服务版本号。
  • 虽然微服务名称可以使用 . 字符,但是不推荐在命名中使用 . 。这是由于yaml格式的配置文件将 . 符号用于分割配置项名称, 如果微服务名称包含了 . 可能会导致一些支持微服务、契约级别的配置无法正确被识别。