Eureka单节点及高可用(详细配置)
来源:互联网 发布:绘画小区平面图软件 编辑:程序博客网 时间:2024/05/22 13:53
一:构建单节点Eureka服务注册中心
1.创建Eureka server
1)创建part-1-eureka项目,修改pom.xml文件
3)修改application.properties,设置应用名称为part-1-eureka
4)修改application.yml,设置Eureka信息
配置application.yml文件
3.Java通过注册中心调用sms服务
<parent><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-parent</artifactId><version>Dalston.SR1</version><relativePath /></parent><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
依赖以上parent 、dependencies主要是想使用其版本的Eureka
以下才是最主要的需要依赖的
<dependencies><!-- spring-boot-starter-web web项目,集成容器tomcat --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- spring-boot-starter-actuator 管理工具/web 查看堆栈,动态刷新配置 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- cloud eureka组件 注册中心 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies>
注意:web项目主要是提供对外服务的,actuator主要是提供项目监控的。真正提供Eureka服务的是eureka-server
2)在Application上添加@EnableEurekaServer
@SpringBootApplication@EnableEurekaServerpublic class EurekaApp {public static void main(String[] args) {new SpringApplicationBuilder(EurekaApp.class).web(true).run(args);}}
3)修改application.properties,设置应用名称为part-1-eureka
spring.application.name=part-1-eureka设置port为1001
server.port=1001
4)修改application.yml,设置Eureka信息
eureka: client: fetch-registry: false # 是否拉取信息 register-with-eureka: false # 是否注册到eurekaserver service-url: defaultZone: http://eureka1:1001/eureka/ server: wait-time-in-ms-when-sync-empty: 0 enable-self-preservation: true # false 关闭自我保护,不管如何都要剔除心跳检测异常的服务 instance: hostname: eureka1
注意:需要设置host文件中eureka1对应的IP地址;不需要将自己注册到eurekaserver
5)启动EurekaApp,启动成功后访问http://eureka1:1001, 页面访问成功即启动Eurekaserver成功
2.创建Eureka client
6)创建应用part-1-sms-interface
配置pom.xml,需添加eureka client依赖,可以选择将eureka-server项目part-1-eureka 的maven依赖eureka-server换成以下依赖即可
<!-- cloud eureka组件 客户端 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency>
配置application.yml文件
eureka: client: registerWithEureka: true fetchRegistry: true # eureka server地址 serviceUrl: defaultZone: http://eureka1:1001/eureka/ instance: # 心跳间隔 leaseRenewalIntervalInSeconds: 30 instance-id: ${spring.application.name}:${server.port}
注意:defaultZone需要跟server保持一致
7)在Application上添加@EnableEurekaClient
@SpringBootApplication@EnableEurekaClientpublic class SmsInterfaceApp {public static void main(String[] args) {new SpringApplicationBuilder(SmsInterfaceApp.class).web(true).run(args);}}
注意:此时为client
8)启动SmsInterfaceApp,启动成功后,查看http://eureka1:1001/ 即发现sms应用注册到Eureka中
9)创建一个新的项目,并注册到Eurekaserver中,步骤同上
10)在Controller中注入DiscoveryClient对象,并展示其instance,代码如下
@RestController@RequestMapping("/web")public class TestController {@AutowiredDiscoveryClient discoveryClient; // spring cloud 提供的客户端工具@RequestMapping(value="/test", method = RequestMethod.GET)public String test() throws IOException{// 调用服务器之前,通过eureka client 查询服务的实例信息// 也就是说去看 部署了哪些机器,以及IP 端口等信息List<ServiceInstance> instances = discoveryClient.getInstances("part-1-sms-interface");ServiceInstance serviceInstance = instances.get(0);// 获取的IP 端口 信息String host = serviceInstance.getHost();int port = serviceInstance.getPort();String result = new RestTemplate().getForObject("http://" + host + ":" + port +"/sms/test", String.class);return result;}}
注意:通过discoveryClient.getInstances方法,获取服务名对应的host和port信息,然后通过restTemplate来远程调用该应用
* 需要先在sms应用中添加一个/sms/test对外服务
二:构建高可用Eureka server
Eureka server的服务治理中,每个节点既是服务提供方,也是服务消费方,注册中心也而不例外
Eureka的高可用实际就是将自己作为服务向其他注册中心注册自己,这样就形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用效果
1)创建part-1-eureka-ha项目,基本过程同part-1-eureka的创建
2)修改part-1-eureka的application.yml文件
eureka: client: # 是否注册到eurekaserver registerWithEureka: true # 是否拉取信息 fetchRegistry: false # eureka server地址 serviceUrl: defaultZone: http://eureka2:1002/eureka/ server: waitTimeInMsWhenSyncEmpty: 0 # false 关闭自我保护,不管如何都要剔除心跳检测异常的服务 enableSelfPreservation: true instance: hostname: eureka1
注意:不同点有两处:registerWithEureka 修改为true ;defaultZone修改为eureka2 也就是part-1-eureka-ha所在的服务器地址
3)修改part-1-eureka-ha的application.yml文件
同样修改这两处,defaultZone修改为eureka1,也就是part-1-eureka所在的服务器地址
eureka: client: fetch-registry: false # 是否拉取信息 register-with-eureka: true # 是否注册到eurekaserver service-url: defaultZone: http://eureka1:1001/eureka/ server: wait-time-in-ms-when-sync-empty: 0 enable-self-preservation: true # false 关闭自我保护,不管如何都要剔除心跳检测异常的服务 instance: hostname: eureka2
4)修改两个项目的Spring.application.name为相同值,笔者定义为part-1-eureka
5)启动两个server项目
在console可看到注册成功信息
Registered instance PART-1-EUREKA/eureka1:part-1-eureka:1001 with status UP (replication=false)DiscoveryClient_PART-1-EUREKA/eureka1:part-1-eureka:1002 - registration status: 204Registered instance PART-1-EUREKA/eureka1:part-1-eureka:1002 with status UP (replication=true)
即可发现status 存在两个状态为UP的服务,在GeneralInfo中也可以看到available-replicas看到eureka2的服务
6)注册项目到HA注册中心
只需要修改sms项目的application.yml中 defaultZone为 http://eureka1:1001/eureka/,http://eureka2:1002/eureka即可
阅读全文
1 0
- Eureka单节点及高可用(详细配置)
- eureka集群高可用配置
- Eureka的高可用(Eureka集群)
- 【SpringCloud】(十):高可用 Eureka
- Eureka的高可用
- 搭建Eureka高可用
- Eureka 高可用
- eureka server注册中心高可用及安全认证
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- 8.配置服务器实现高可用(config+eureka)
- 9.配置服务器实现高可用(cofig+eureka)
- Spring Cloud---注册中心Eureka的高可用配置
- Eureka Server的高可用
- 高可用eureka server搭建
- Eureka Server的高可用
- SpringCloud---单节点Eureka Server
- DRUID- Historical节点数据高可用配置
- MMM mysql高可用配置详细配置
- 数字图像处理 | 一些成像方式
- python操作redis
- python学习总结---python注释方法
- Tubor C 直线裁剪算法 Cohen-Sutherland算法 (可运行代码)
- Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
- Eureka单节点及高可用(详细配置)
- 通过Function Score Query优化Elasticsearch搜索结果(综合排序)
- 实习总结三:文件迁移
- 个人订阅号认证步骤,个人公众号如何认证看这里巧妙绕过腾讯规则2天搞定认证
- 项目和中的前端页面
- 【Java】2.垃圾回收机制 读书笔记
- 通威太阳能打造全球最大太阳能电池“智慧工厂”
- HTTP状态码
- python 操作redis