Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费
由于 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:9000 和 http://192.168.2.215:9000 可以看到,DS Replicas 中有另一台Eureka 注册中心,在 instance currently registered with Eureka 中显示了注册的所有服务,其中可以看到 HELLOWORLD-PROVIDER 服务有2个有效的服务

Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费的更多相关文章
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建
高可用集群 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己 ...
- Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建
基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...
- Spring Cloud(Dalston.SR5)--Eureka 服务提供者
要使微服务应用向注册中心发布自己,首先需要在 pom.xml 配置文件中增加对 spring-boot-starter-eureka 的依赖,然后在主类中增加 @EnableDiscoveryClie ...
- Spring Cloud(Dalston.SR5)--Eureka 服务消费
服务被注册.发布到 Eureka 服务器后,需要有程序去发现他,并且进行调用,称为服务消费,一个服务可能会部署多个实例,调用过程可能涉及负载均衡.服务器查找等问题,这些问题 Netflix 项目已经帮 ...
- Eureka注册中心高可用及常用配置项
一.前言 前面已经简单的介绍了 Eureka 注册中心的使用以及查看.下面将继续进行 Eureka 的说明以及应用. 二.Eureka 的高可用搭建 在实际生产项目中,为了保证服务的可用性,连续性,一 ...
- Eureka注册中心高可用集群配置
Eureka高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 我们再新建两个module microservice-eureka-server-2002 microservic ...
- springCloud 之 Eureka注册中心高可用配置
springCloud的eureka高可用配置方案思路是:几个服务中心之间相互注册,比如两个注册中心,A注册到B上,B注册到A上,如果是三个注册中心则是:A注册到BC上,B注册到AC上,C注册到AB上 ...
- Spring Cloud Eureka 注册中心高可用机制
一.Eureka 正常工作流程 Service 服务作为 Eureka Client 客户端需要在启动的时候就要向 Eureka Server 注册中心进行注册,并获取最新的服务列表数据. Eurek ...
- Spring Cloud(Dalston.SR5)--Eureka 常用配置
配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eu ...
随机推荐
- VSFTP服务配置
FTP连接及传输模式控制连接:TCP 21 ,用于发送FTP命令信息数据连接:TCP 20 ,用于上传.下载数据数据连接的建立类型:主动模式.被动模式 主动模式:服务器主动发起数据连接·首先由客户端向 ...
- random_select
package sorttest; //expected and worst running time is O(n),asuming that the elements are distinct ...
- swift3.0 存取json数据到沙盒
do { //将json保存到本地 let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPr ...
- builtroot 添加git 下载方式
1.buildroot/Config.in 配置default git server eg:config xxxx_GIT_SITE string "git site" defau ...
- Ubuntu16.04阿里云源
16.04源 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://m ...
- 操作cookie篇
1.设置cookie setcookie(key,value); 2.设置cookie有效期(默认值0,浏览器关闭失效,PHP_INT_MAX最大值,永久不失效,time()-1,删除cookie) ...
- sudo with no password
/********************************************************************************* * sudo with no pa ...
- AI之路,第二篇:python数学知识2
第二篇:python数学知识2 线性代数 导入相应的模块: >>> import numpy as np (数值处理模块)>>> import scipy ...
- 田螺便利店——联想笔记本进入不了BIOS的解决方法
当计算机遇到问题时,很多情况下需要进入BIOS进行解决.但很多新出的联想笔记本电脑在开机时,无论怎么疯狂的按F2,Fn+F2,F12或者Del,都无法进入BIOS,十分气人. 这种现象出现 ...
- IE8的兼容问题
1: rgba失效的问题: 在添加rgba的类名内加上:filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f00000 ...