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

简介: Eureka Server即是注册服务器,也是客户端,默认情况,也需要配置注册中心地区。所以要添加配置 spring.application.name=spring-cloud-eureka-server ##服务器端口 server.

注意:我的项目引入的是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地址即为成功
b1

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

目录
相关文章
|
3月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
3月前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
220 0
|
4月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
112 3
|
2月前
|
XML 缓存 Java
spring源码剖析-spring-beans(内部核心组件,BeanDefinition的注册,BeanWapper创建)
spring源码剖析-spring-beans(内部核心组件,BeanDefinition的注册,BeanWapper创建)
49 10
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
14834 26
|
4月前
|
负载均衡 Java Spring
Spring cloud gateway 如何在路由时进行负载均衡
Spring cloud gateway 如何在路由时进行负载均衡
458 15
|
4月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
99 3
|
4月前
|
消息中间件 Java 开发者
Spring Cloud微服务框架:构建高可用、分布式系统的现代架构
Spring Cloud是一个开源的微服务框架,旨在帮助开发者快速构建在分布式系统环境中运行的服务。它提供了一系列工具,用于在分布式系统中配置、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等领域的支持。
175 5
|
4月前
|
Java API 开发工具
Spring Boot与Spring Cloud Config的集成
Spring Boot与Spring Cloud Config的集成