Spring Cloud服务发现/注册(二)

注意:我的项目引入的是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地址即为成功
Spring Cloud服务发现/注册(二)

eureka Client可以通过Eureka Server间接访问Config Server,这样的好处是不用绑死一个ip

上一篇:Power Designer (PD) 由物理数据模型PDM生成数据库脚本时带双引号的问题


下一篇:Shell公共函数库|学习笔记