一打包
项目每次启动都需要启动eureka server会很麻烦
我们把项目打成一个War包
D:\SpringCloud_Sell\eureka>mvn clean package
D:\SpringCloud_Sell\eureka>dir target
2020/03/04 09:54 48,871,388 eureka-0.0.1-SNAPSHOT.jar
D:\SpringCloud_Sell\eureka>
通过命令启动
D:\SpringCloud_Sell\eureka>java -jar target\eureka-0.0.1-SNAPSHOT.jar
在Mac和Linux系统中,eureka可以一直启动
nohup java -jar java -jar target\eureka-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
二创建client项目
新建eureka client项目
new->project->spring initializr->Custom(http://start.spring.io)
->Group(com.imooc) Artifact(client)->Spring Cloud Discovery->Eureka Discovery Client
->SpringBoot 2.2.5->
Project name: client
Project location: D:\SpringCloud_Sell\client
->完成
Maven projects need to be imported->Enable Auto-Import
如果修改了pom.xml文件
pom.xml->右键->Maven->Reimport 否则还是用以前的版本
修改配置文件,Eureka知道注册中心在哪里
src->main->resources->application.properties修改名字为application.yml
如果client没有连接到Server,可以查看是否有下面依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
重启client, 登录http://localhost:8761/ 查看是否有服务注册信息
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/ ->注册中心Service地址
instance:
hostname: clientName -->自定义地址自定义链接
spring:
application:
name: client ->显示名字
之后看到访问地址发生变化,自定义链接
http://lientname:8080/actuator/info
三修改Server application.yml 文件
当EurekaServer localhost:8761出现下面警告
原理:心跳维护,在测试环境中当低于一个比例的时候会有警告,宁肯信其有,
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT' \
需要在server端application.yml文件增加eureka.server.enable-self-preservation=false选项
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
register-with-eureka: false
server:
enable-self-preservation: false
spring:
application:
name: eureka
server:
port: 8761
只适用于开发环境,生产环境一定不要关闭
D:\SpringCloud_Sell\eureka>mvn clean package
D:\SpringCloud_Sell\eureka>java -jar target\eureka-0.0.1-SNAPSHOT.jar
四 Eureka client 代码
4.1ClientApplication.java
package com.imooc.client;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class ClientApplication {
public static void main(String[] args) {
SpringApplication.run(ClientApplication.class, args);
}
}
4.2 application.yml文件
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
hostname: clientName
spring:
application:
name: client
4.3 pom.xml文件增加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>