Eureka概述
eureka是干什么的
作用:微服务中,负责服务(组件)的注册与发现,是一个“大管家”

由来:由SpringCloud基于Netflix Eureka做了二次封装
Eureka组成:
由Eureka Server 注册中心和 Eureka Client 服务注册 这两个主键组成Eureka server端
参考链接
如何创建eureka server端
1. IDEA下,new project>>Spring Intializr>>Cloud Discovery>>勾选Eureka Server

2. 启动类使用@EnableEurekaServer注解: @SpringBootApplication @EnableEurekaServer public class EurekaserverApplication { public static void main(String[] args) { SpringApplication.run(EurekaserverApplication.class, args); } } 3.application.yml配置文件配置相关信息: #server: # port: 8761 eureka: client: service-url: defaultZone: http://localhost:8761/eureka register-with-eureka: false #instance: #hostname: 192.168.1.102 #server: #enable-self-preservation: false spring: application: name: eurekaserver1 management: server: servlet: context-path: /
Eureka client端
如何创建eureka client端
1. IDEA下,new project>>Spring Intializr>>Cloud Discovery>>勾选Eureka Discovery(略微不同)
2. 方式创建的client端可能没有引入web组件,需要手动添加,否则启动失败 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 3. 启动类使用@EnableEurekaClient注解: @SpringBootApplication @EnableEurekaClient public class EurekaclientApplication { public static void main(String[] args) { SpringApplication.run(EurekaclientApplication.class, args); } } 4. application.yml配置文件配置相关信息: eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ #instance: #hostname: www.baidu.com spring: application: name: eurekaclient01 server: port: 8763启动失败,解决参考链接
server和client端都配置正确后,访问8761端口会看到client的Instances已经被注册到server端
Eureka实现高可用集群
什么是高可用
高可用:即“高可用性”(High Availability),通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
如何实现高可用集群
1. 先进行多个服务端相互注册,如eurekaserver1和eurekaserver2相互注册 2. 再进行client对多个服务端同时注册 这样可以有效防止服务端的不稳定因素导致整个应用挂掉。
1. 先进行多个服务端相互注册(代码演示)
模拟两个server端:
IDEA中启动两个server端的服务(实例)即可(再复制一份服务启动配置即可,并设置不同端口)

eurekaserver1在eurekaserver2进行注册:
eurekaserver1的yml文件配置信息
eureka: client: service-url: defaultZone: http://eureka2:8762/eureka register-with-eureka: false #instance: #hostname: 192.168.1.102 #server: #enable-self-preservation: false spring: application: name: eurekaserver1 management: server: servlet: context-path: /
eurekaserver2在eurekaserver1进行注册:
eurekaserver2的yml文件配置信息
eureka: client: service-url: defaultZone: http://eureka1:8761/eureka register-with-eureka: false #instance: #hostname: 192.168.1.102 #server: #enable-self-preservation: false spring: application: name: eurekaserver2 management: server: servlet: context-path: /
client端对多个server端进行同时注册(这里演示的是两个)
配置两个server的service-url,并用逗号分隔即可
service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka2:8762/eureka/
效果
- 效果

注释:
- 说明
eurekaserver1的端口为:8761 ip为:eureka1 application name为:eurekaserver1 ----------------------------------- eurekaserver2的端口为:8762 ip为:eureka2 application name为:eurekaserver2 其中,ip为:eureka1和eureka2是在电脑的host文件中做的伪域名: 127.0.0.1 eureka1 127.0.0.1 eureka2
提别提醒:
很重要的信息
如果defaultZone: http://eureka1:8761/eureka中都填127.0.0.1或者localhost,则server端相互注册会失败!! 版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.BUILD-SNAPSHOT</spring-cloud.version> </properties>多个server端互相注册失败,参考链接
代码
代码链接
https://git.coding.net/uxaw/springCloud.git