由于 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. golang使用ssl自签证书通信

    证书是自签名生成的,另外lets encrypt证书免费发放,而且众多大厂都已经开始支持了,不过这只是个例子,无所谓验证有效和权威性了 服务器端 package main import ( " ...

  2. HDU2717-Catch That Cow (BFS入门)

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2717 Catch That Cow Time Limit: 5000/2000 MS (Java/O ...

  3. 模拟主库创建数据文件,dg备库空间不足时问题处理

    本篇文档测试目的: 模拟实际环境中,主库对表空间添加数据文件,备库空间不足,最终导致MRP进程自动断开,处理方式. 1.问题环境模拟 1)正常情况下的dg 主库创建数据文件,备库接受日志,自动创建表空 ...

  4. libnsq编译、使用记录

    官方介绍libnsq是nsq的c库,尼玛还真是c库,如果用g++编译还真编译不过.这篇文章就是说一下怎么在c++中使用libnsq. 为什么用g++编译不过libnsq呢,因为其头文件中默认全是c函数 ...

  5. Oracle导入导出表

    使用PL SQL Developer进行操作 一.导出 工具<<导出表<<sql插入<<选择用户和要导出的表,勾选创建表,选择输出文件(格式最好为.sql),点击导 ...

  6. personal的制作

    <style>  .personal{   float: right;   height: 40px;   line-height: 40px;   width: 200px;  }  . ...

  7. SQLI DUMB SERIES-1

    less-1 (1) 可以看到提示输入ID,而且less-1题目也有提到GET,因此试试以下操作: http: 结果: http: 结果: 现在可知,“ ' ”并没有被过滤,因此可以进行以下操作: h ...

  8. SpringMVC整合Thymeleaf

    Thymeleaf的介绍 进行JavaWeb开发时主要用到的是JSP,传统的JSP需要在页面中加入大量的JSTL标签,这些标签只能运行在服务器中,前端开发人员维护这些页面比较困难,页面加载速度也比较慢 ...

  9. dp 优化 F2. Pictures with Kittens (hard version)

    dp的优化可能是自己的弱项吧 F1中n*n*n的复杂度强行过去了 F2就无能为力了: 状态转移 dp[ i ] [ j ] 第一个i存的是位置 1-n;    j是放入数字的个数 然后F1就暴力过去了 ...

  10. python列表复习

    列表的切片 >>> name = list()>>> name.extend(range(100))>>> name[0, 1, 2, 3, 4, ...