更新时间:2024-10-18 GMT+08:00
分享

使用服务注册

微服务引擎的服务中心提供了服务注册的功能。服务注册是指微服务启动的时候,将基本信息,比如所属应用、微服务名称、微服务版本、监听的地址信息等注册到服务中心。

微服务运行的过程中,也通过服务中心查询其他微服务的基本信息。不同的微服务开发框架注册的信息会有差异,比如Java Chassis还会注册服务契约等信息。不同微服务开发框架注册的基本信息、注册和发现其他微服务的流程是相同的。

本章节重点介绍不同的微服务开发框架如何使用服务中心和配置自己的注册信息,同时也会介绍微服务和注册中心之间交互有关的配置项。微服务注册成功后,可以在微服务引擎使用微服务目录、微服务实例列表、微服务依赖关系等功能。

Spring Cloud

Spring Cloud使用服务注册,需要在项目中增加如下依赖:

<dependency> 
  <groupId>com.huaweicloud</groupId>  
  <artifactId>spring-cloud-starter-huawei-servicecomb-discovery</artifactId> 
</dependency>

如果项目已经直接或者间接包含这个依赖,则无需添加。Spring Cloud包含如表1所示配置项,这些配置项的值影响在服务中心注册的基本信息,以及微服务和服务中心之间的交互,比如心跳等。和服务注册有关的信息,需要在“bootstrap.yml”配置。

表1 Spring Cloud常用配置项

配置项

含义

缺省值

备注

spring.cloud.servicecomb.discovery.appName

所属应用

default

-

spring.cloud.servicecomb.discovery.serviceName

微服务名称

-

如果没有,使用spring.application.name。

spring.cloud.servicecomb.discovery.version

微服务版本

-

-

server.env

环境

-

取值为环境ID。如production,development等。

spring.cloud.servicecomb.discovery.enabled

是否启用服务注册发现

true

-

spring.cloud.servicecomb.discovery.address

注册中心地址

-

集群地址使用“,”分隔。

spring.cloud.servicecomb.discovery.watch

是否开启watch模式

false

微服务引擎专业版需要设置为false。

spring.cloud.servicecomb.discovery.healthCheckInterval

发送心跳的时间间隔(秒)

15

可配置的取值范围:≥ 1且≤600。

spring.cloud.servicecomb.discovery.datacenter.name

数据中心名称

-

-

spring.cloud.servicecomb.discovery.datacenter.region

数据中心区域

-

-

spring.cloud.servicecomb.discovery.datacenter.availableZone

数据中心可用区

-

-

spring.cloud.servicecomb.discovery.allowCrossApp

是否支持跨应用调用

false

服务端配置,表示允许不同应用下的客户端发现自己。

Java Chassis

Java Chassis使用服务注册,需要在项目中增加如下依赖:
<dependency>
  <groupId>org.apache.servicecomb</groupId>
  <artifactId>registry-service-center</artifactId>
</dependency>

如果项目已经直接或者间接包含这个依赖,则无需添加。Java Chassis包含如表2所示配置项。这些配置项的值影响在服务中心注册的基本信息,以及微服务和服务中心之间的交互,比如心跳等。

表2 Java Chassis常用配置项

配置项

含义

缺省值

备注

servicecomb.service.application

所属应用

default

-

servicecomb.service.name

微服务名称

defaultMicroservice

-

servicecomb.service.version

微服务版本

1.0.0.0

-

servicecomb.service.environment

环境

-

取值为环境ID。如production,development等。

servicecomb.service.registry.address

注册中心地址

http://127.0.0.1:30100

集群地址使用“,”分隔。

servicecomb.service.registry.instance.watch

是否开启watch模式

true

-

servicecomb.service.registry.instance.healthCheck.interval

发送心跳的时间间隔(秒)

30

-

servicecomb.service.registry.instance.healthCheck.times

允许的心跳失败次数。当连续第times+1次心跳仍然失败时则实例被服务中心下线。即interval * (times + 1)决定了实例被自动注销的时间。如果服务中心等待这么长的时间没有收取到心跳,会注销实例

3

-

servicecomb.datacenter.name

数据中心名称

-

-

servicecomb.datacenter.region

数据中心区域

-

-

servicecomb.datacenter.availableZone

数据中心可用区

-

-

Java Chassis注册的实例地址信息、监听地址,和配置项servicecomb.service.publishAddress指定的发布地址有关。服务监听地址的配置项是servicecomb.rest.address和servicecomb.highway.address,分别对应rest传输方式和highway传输方式的监听地址。注册的地址信息和监听地址、发布地址的关系如表3所示。

表3 注册的实例地址生效规则

监听地址

发布地址

注册的实例地址

127.0.0.1

-

127.0.0.1

0.0.0.0

-

指定选取一张网卡的IP地址作为发布地址。不会选择通配符地址、回环地址或广播地址

具体IP地址

-

与监听地址一致

*

具体IP地址

与发布地址一致

*

"{网卡名}"

指定网卡名对应的IP,注意需要加上引号和括号

相关文档