由于 Eureka 注册中心只是在内存中保存服务注册实例,并且没有将服务注册实例进行同步,因此我们需要对服务提供和消费进行调整,需要指定服务提供和消费的注册、服务发现的具体Eureka 注册中心配置,由于配置了Eureka 注册中心高可用,因此也必须配置多个 Eureka 注册中心。

服务提供配置

在之前的服务提供项目中进行改造,我们需要调整 src/main/resources 目录中的 application.yml 配置文件,调整后配置如下:

#配置应用名称

spring:

application:

name:helloworld-provider

#服务端口

server:

#设置eureka服务注册中心的地址,如果多个以逗号分割

eureka:

client:

service-url:

#defaultZone表示默认的区域的eureka服务地址,多个使用逗号分割

defaultZone:http://eurekaserver01:9000/eureka/,http://eurekaserver02:9000/eureka/

在 defaultZone 属性中,配置了Eureka 注册中心的多个地址,这表示服务提供者需要向多个 Eureka 注册中心进行注册,为了更好的测试一个服务部署多个位置,我们调整一下 REST 服务代码,如下:

@RestController

public class HelloWorldController{

@Value("${server.port}")

private int port;

@RequestMapping(method=RequestMethod.GET,name="speak")

public String speak(@RequestParam(value="body",required=false)Stringbody){

if(body==null||body.equals("")){

return"helloworldport:"+port;

}

return"speak"+body+"port:"+port;

}

}

服务消费配置

在之前的服务提供项目中进行改造,我们需要调整 src/main/resources 目录中的 application.yml 配置文件,调整后配置如下:

#配置应用名称

spring:

application:

name:service-invoker

#配置服务端口

server:

#eureka基本配置

eureka:

instance:

#配置应用名称,优先级低于spring.applicaton.name

appname:service-invoker

client:

#配置服务注册中心地址

service-url:

defaultZone:http://eurekaserver01:9000/eureka/,http://eurekaserver02:9000/eureka/

在 defaultZone 属性中,配置了Eureka 注册中心的多个地址,这表示服务消费需要向多个 Eureka 注册中心进行注册和发现服务

测试验证

  • 启动多个服务

    我们在一台机器使用不同端口号来启动多个服务验证,启动多个终端,执行示例如下:

    $> java -jar service-provider-1.0.jar --server.port=8086

    $> java -jar service-provider-1.0.jar --server.port=8080

  • 启动服务消费

    直接启动消费项目,并访问 http://localhost:8088/speak ,能够看到具体返回了访问的服务端口号,多刷新几次可以看到分别访问了 8086 和 8080 端口,表示 Eureka 客户端在请求服务时,通过 Eureka 注册中心发现服务并且使用使用了负载均衡调用

查看注册中心

访问地址 http://192.168.2.214:9000http://192.168.2.215:9000 可以看到,DS Replicas 中有另一台Eureka 注册中心,在 instance currently registered with Eureka 中显示了注册的所有服务,其中可以看到 HELLOWORLD-PROVIDER 服务有2个有效的服务

Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费的更多相关文章

  1. Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建

    高可用集群 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己 ...

  2. Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建

    基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...

  3. Spring Cloud(Dalston.SR5)--Eureka 服务提供者

    要使微服务应用向注册中心发布自己,首先需要在 pom.xml 配置文件中增加对 spring-boot-starter-eureka 的依赖,然后在主类中增加 @EnableDiscoveryClie ...

  4. Spring Cloud(Dalston.SR5)--Eureka 服务消费

    服务被注册.发布到 Eureka 服务器后,需要有程序去发现他,并且进行调用,称为服务消费,一个服务可能会部署多个实例,调用过程可能涉及负载均衡.服务器查找等问题,这些问题 Netflix 项目已经帮 ...

  5. Eureka注册中心高可用及常用配置项

    一.前言 前面已经简单的介绍了 Eureka 注册中心的使用以及查看.下面将继续进行 Eureka 的说明以及应用. 二.Eureka 的高可用搭建 在实际生产项目中,为了保证服务的可用性,连续性,一 ...

  6. Eureka注册中心高可用集群配置

    Eureka高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 我们再新建两个module  microservice-eureka-server-2002  microservic ...

  7. springCloud 之 Eureka注册中心高可用配置

    springCloud的eureka高可用配置方案思路是:几个服务中心之间相互注册,比如两个注册中心,A注册到B上,B注册到A上,如果是三个注册中心则是:A注册到BC上,B注册到AC上,C注册到AB上 ...

  8. Spring Cloud Eureka 注册中心高可用机制

    一.Eureka 正常工作流程 Service 服务作为 Eureka Client 客户端需要在启动的时候就要向 Eureka Server 注册中心进行注册,并获取最新的服务列表数据. Eurek ...

  9. Spring Cloud(Dalston.SR5)--Eureka 常用配置

    配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eu ...

随机推荐

  1. VSFTP服务配置

    FTP连接及传输模式控制连接:TCP 21 ,用于发送FTP命令信息数据连接:TCP 20 ,用于上传.下载数据数据连接的建立类型:主动模式.被动模式 主动模式:服务器主动发起数据连接·首先由客户端向 ...

  2. random_select

    package sorttest;   //expected and worst running time is O(n),asuming that the elements are distinct ...

  3. swift3.0 存取json数据到沙盒

    do { //将json保存到本地 let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPr ...

  4. builtroot 添加git 下载方式

    1.buildroot/Config.in 配置default git server eg:config xxxx_GIT_SITE string "git site" defau ...

  5. Ubuntu16.04阿里云源

    16.04源 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://m ...

  6. 操作cookie篇

    1.设置cookie setcookie(key,value); 2.设置cookie有效期(默认值0,浏览器关闭失效,PHP_INT_MAX最大值,永久不失效,time()-1,删除cookie) ...

  7. sudo with no password

    /********************************************************************************* * sudo with no pa ...

  8. AI之路,第二篇:python数学知识2

    第二篇:python数学知识2 线性代数 导入相应的模块: >>> import numpy as np     (数值处理模块)>>> import scipy ...

  9. 田螺便利店——联想笔记本进入不了BIOS的解决方法

    当计算机遇到问题时,很多情况下需要进入BIOS进行解决.但很多新出的联想笔记本电脑在开机时,无论怎么疯狂的按F2,Fn+F2,F12或者Del,都无法进入BIOS,十分气人.       这种现象出现 ...

  10. IE8的兼容问题

    1: rgba失效的问题: 在添加rgba的类名内加上:filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f00000 ...