上一篇我们将 Eureka Server 运行起来了,这一篇我们将之前的两个服务提供者注册到注册中心去。
一、微服务注册到注册中心配置
(我们就用 commodity 服务为例来进行说明,另外一个 order 服务自己去操作)
pom
我们需要在 pom 中引入 Eureka,但是这里我们引入的是 client,而不是 server !!!
<!-- Eureka Client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
application.yml
我们在 yml 中配置 eureka 的注册地址,到时候服务启动的时候,直接通过配置找到 Eureka 地址,然后注册到注册中心。
eureka:
instance:
appname: microservice-commodity # 客户端服务名
instance-id: microservice-commodity-provider:1000 # 客户端实例名称
ip-address: 127.0.0.1
prefer-ip-address: true # 显示IP
client:
service-url:
defaultZone: http://localhost:2000/eureka # 把服务注册到eureka注册中心
appname:这个是我们服务的名称,这个相同的服务名称要保证一致(到时候服务变成集群,我们是通过这个名称来识别的)
instance-id:这个是实例 id,这个 id 我们要保证不一致,因为实例相同的话,我们是没有办法区分。
这里的这个 ip-address 指的是当前服务(也就是我们的商品模块的服务器地址)所在的物理机 ip。
最后一步,我们在启动类上加上一个注解 @EnableEurekaClient
@EnableEurekaClient
@SpringBootApplication
public class CommodityProviderApplication {
public static void main(String[] args) {
SpringApplication.run(CommodityProviderApplication.class, args);
}
}
这样,我们一个服务就改造完成了。
二、启动商品服务
首先保证 Eureka Server 启动,然后我们启动商品模块。
接着我们去 Eureka 控制台可以看一下,很明显,我们这里多了一个东西,就是我们刚刚的商品模块服务
Application 就是我们配置的 eureka.instance.appname,这个一般就配置为我们的服务名称。
AMIs 是心跳机制。
Availability Zones:就是当前的实例数。我们这里只注册了一个商品服务,如果我们将商品服务弄成集群,我们以相同的实例名称注册到这个 Eureka 服务中后,那么我们这个实例数就会增加。
status 就是当前实例的状态,它下面有一个 UP,这个是值在线的实例数。接着后面的是我们服务的一个健康检查地址。我们可以点击一下。
这里可以看到是一个 404,这里 404 是因为我们没有引入健康检查,所以我们来引入 springboot 给我们带的健康检查。
三、引入健康检查
pom
<!-- actuator 健康检查 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
yml 配置文件
info:
artifactId: $project.artifactId$
author: 张三
createDt: 2021-09-23
这里的 info 信息,到时候会以 JSON 的格式显示在页面上。
父项目 pom 修改
<!-- 构建的时候 解析 src/main/resources 下的配置文件 其实就是application.yml 解析以$开头和结尾的信息 -->
<build>
<finalName>microservice</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
我们在父项目(microservice)中进行定义,这样省的一个一个在子项目中再去定义了。这个是为了再构建的时候扫描子项目配置文件,解析配置用的。
重新启动项目,刷新页面。
这里我们健康检查就成功引入了。
四、eureka client 配置说明
ip-address: 127.0.0.1
prefer-ip-address: true # 显示IP
我们来看这两个东西,这个 ip 其实配置的是我们健康检查的地址,还有是否显示健康检查的地址。
现在我们是配置了的,我们来看一下配置的样子是什么样的。
可以看到,浏览器左下角的地址是这样的,我们删除掉这两段配置,再重新启动页面看一下。
可以看到,就变成随机乱码了,其实这样的随机乱码还有。。
如果我们将 appname 和 instance-id 的配置也删除了,那么 appname 和 instance-id 也会变成乱码的样子。(自己下去可以试试)
这一讲就讲到这里,有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com
最近网站已经做好,并且已经上线,欢迎各位留言~~