注意:我的项目引入的是jdk1.8.131,spring boot使用的是1.5.19.RELEASE
Eureka Server即是注册服务器,也是客户端,默认情况,也需要配置注册中心地区。
所以要添加配置
spring.application.name=spring-cloud-eureka-server
##服务器端口
server.port=9090
##管理端口安全失效
management.security.enabled=false
##Spring Cloud Eureka服务器作为注册中心
##通常情况下,不需要在注册到其他注册中心去
##同时,它也不需要获取客户端信息
###取消向注册中心注册
eureka.client.register-with-eureka=false
###取消向注册中心获取注册信息(服务、实例信息)
eureka.client.fetch-registry=false
客户端:Eureka Client
- 调整状态页面
配置:eureka.instance.statusPageUrlPath - 调整健康检查页面
配置:eureka.instance.healthCheckUrlPath - 调整主页
调整状态页面和健康检查页面
客户端
##客户端应用名称
spring.application.name=spring-cloud-eureka-client
##客户端端口
server.port=8080
##管理端口安全失效
management.security.enabled=false
##Spring Cloud Eureka客户端 注册到服务器
eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
##调整状态页面
eureka.instance.status-page-url-path=/status
##调整健康检查页面
eureka.instance.health-check-url-path=/health
然后创建一个跳转页面
package com.example.springcloudlesson4eurekaclient.web;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 状态控制器
*/
@RestController
public class StatusController {
@GetMapping("/status")
public String status() {
return "ok";
}
}
客户端:Eureka Client
- Eureka 客户端配置API
EurekaClientConfigBean - Eureka实例配置API
EurekaInstanceConfigBean
Spring Cloud Config与eureka整合
调整Spring Cloud Config Server作为Eureka客户端
1.引入Maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.激活Eureka客户端
package com.example.springcloudlesson4eurekaclient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class SpringCloudLesson4EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudLesson4EurekaClientApplication.class, args);
}
}
3.调整Spring Cloud Config Server配置
##配置服务器应用名称
spring.application.name= spring-cloud-config-server
##配置服务器端口
server.port=7070
##关闭管理端actuator的安全
##/env/health的端口完全开放
management.security.enabled=false
##配置服务器文件系统Git仓库
##${user.dir}减少平台文件系统的不一致
#spring.cloud.config.server.git.uri=${user.dir}/src/main/resources/configs
##配置远程github仓库
spring.cloud.config.server.git.uri=https://github.com/shuaiyev5/tmp
##配置强制拉取git内容
spring.cloud.config.server.git.force-pull=true
##Spring Cloud config server 注册到eureka服务器
eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
调整spring-cloud-eureka-client称为Config客户端
1.引入spring-cloud-starter-config-client Maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2.在eureka client下创建bootstrap.properties
spring.cloud.config.name=segmentfault
spring.cloud.config.profile=prod
spring.cloud.config.label=master
##配置Config服务器发现激活
spring.cloud.config.discovery.enabled=true
##配置Config服务器的应用名称(Service ID)
spring.cloud.config.discovery.serviceId=spring-cloud-config-server
检验效果
启动发现,spring-cloud-config-server服务无法找到,原因如下:
##注意:当前应用需要提起啊获取应用信息,那么将Eureka的配置信息提前至bootstrap.properties文件
##原因:bootstrap上下文是spring Boot 上下文的父上下文,那么它最先加载,因此需要最优先加载Eureka注册信息
调整后bootstrap.properties的配置
##注意:当前应用需要提起啊获取应用信息,那么将Eureka的配置信息提前至bootstrap.properties文件
##原因:bootstrap上下文是spring Boot 上下文的父上下文,那么它最先加载,因此需要最优先加载Eureka注册信息
eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
spring.cloud.config.name=segmentfault
spring.cloud.config.profile=prod
spring.cloud.config.label=master
##配置Config服务器发现激活
spring.cloud.config.discovery.enabled=true
##配置Config服务器的应用名称(Service ID)
spring.cloud.config.discovery.serviceId=spring-cloud-config-server
然后浏览器访问localhost:8080/env 出现服务器的git地址即为成功
eureka Client可以通过Eureka Server间接访问Config Server,这样的好处是不用绑死一个ip