pom.xml
中添加依赖<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.codesofun</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties
中添加配置#eureka默认端口号
server.port=8761
#实例名称,provider-service 是eureka底层服务,本身不具备任何业务功能,它是给注册中心提供服务的
eureka.instance.appname=provider-service
#主机名:域名
eureka.instance.hostname=localhost
#客户端默认连接的区域url
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
#是否向eureka中进行注册
eureka.client.register-with-eureka=false
#当前启动的微服务是否自动向注册中心获取其它微服务的注册地址
eureka.client.fetch-registry=false
@EnableEurekaServer
package com.codesofun.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer //开启eureka服务
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
pom.xml
中添加依赖<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.codesofun</groupId>
<artifactId>eureka-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties
中添加配置#服务端口号
server.port=8081
#(应用名称)微服务名称,唯一
spring.application.name=order-service
#eureka客户端服务注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
@EnableEurekaClient
package com.codesofun.eurekaclient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient //开启eureka客户端服务
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
Eureka Register Service(注册中心服务端)、Provider Service(服务提供者,客户端)、Consumer Service(服务消费者,客户端)
Register
Renew
Fetch Registries
Cancel
Eviction
备注:
Eureka自我保护机制:Eureka在运行期去统计心跳失败率在15分钟之内是否低于 85%,若低于,则会将这些实例保护起来,让这些实例不会被剔除。建议如果非网络波动问题,可关闭自我保护机制。只需注册中心服务端添加配置eureka.server.enable-self-preservation=false
跟单机Eureka Server
差不多,只是Eureka Server
端配置中eureka.client.service-url.defaultZone
注册地址需要分别指向另外的Eureka Server
注册地址(这里url中需要使用域名才可以)。这里启用不同端口的配置文件代表不同的Eureka Server
服务注册中心。如下:
application-8761.properties
server.port=8761
eureka.instance.appname=provider-service
eureka.instance.hostname=server1
#指向另一个eureka server注册地址
eureka.client.service-url.defaultZone=http://server2:8762/eureka/,http://server3:8763/eureka/
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false
application-8762.properties
server.port=8762
eureka.instance.appname=provider-service
eureka.instance.hostname=server2
#指向另一个eureka server注册地址
eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server3:8763/eureka/
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false
application-8763.properties
server.port=8763
eureka.instance.appname=provider-service
eureka.instance.hostname=server3
#指向另一个eureka server注册地址
eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server2:8762/eureka/
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false
Eureka Client
客户端(微服务)中,配置eureka.client.service-url.defaultZone
指向所有的Eureka Server
注册地址即可完成Eureka
高可用的配置
#服务端口号
server.port=8081
#(应用名称)微服务名称,唯一
spring.application.name=order-service
#eureka客户端服务注册中心地址,高可用,多个注册地址之间使用,
eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server2:8761/eureka/,http://server3:8763/eureka/
Actuator
监控组件
可配置端点:
# * 开启所有端点 shutdown端点-- POST请求
management.endpoints.web.exposure.include=health,info,env,beans,shutdown
#显示完整的应用健康数据
management.endpoint.health.show-details=always
#允许可以重启端点,慎用
management.endpoint.shutdown.enabled=true
详细代码见仓库:https://gitee.com/xmlvhy/springcloud-learn
参考链接:https://www.itlaoqi.com/
本文作者: AI码真香
本文标题: SpringCloud入门系列之Eureka注册中心
本文网址: https://www.xmlvhy.com/article/88.html
版权说明: 自由转载-非商用-非衍生-保持署名 署名-非商业性使用4.0 国际 (CC BY-NC 4.0)