Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
Eureka包含两个组件:Eureka Server和Eureka Client。
我们创建一个SpringBoot项目,这里我命名其为eureka
我们只需要添加eureka-server配置依赖就可以了
项目创建成功后,我们只需要添加一行语句@EnableEurekaServer
来启动我们的eureka项目
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
我们在配置文件application.properties
添加一下配置
# 当前项目服务的名字
spring.application.name=eureka
# 服务端口号
server.port=1111
# Eureka-server有两个角色,第一个是注册中心,第二个是服务中心
# register-with-eureka=false表示当前项目不要注册到在注册中心中注册
eureka.client.register-with-eureka=false
# 不需要在Eureka-server获取注册信息
eureka.client.fetch-registry=false
配置完成后,我们直接跑Eureka项目
访问127.0.0.1:1111
Eureka窗口界面配置如下
当注册中心扛不住高并发的时候,这时候 要用集群来扛;
Eureka集群和elasticsearch集群,hadoop集群一个意思,就是启功多个Eureka实例,多个Eureka实例之间,相互注册,相互同步数据。
开启eureka-server注意点
踩坑之一:在Windows系统开启eureka-server,路径:C:\Windows\System32\drivers\etc\hosts
127.0.0.1 eurekaA eurekaB
我们用两个eureka注册中心,搭建eureka集群
我们只需要在resources目录下,添加两个配置文件,分背是application-a.properties和application-b.properties
application-a.properties
spring.application.name=eureka
server.port=1111
eureka.instance.hostname=eurekaA
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defeaultZone=http://eurekaB:1112/eureka
application-b.properties
spring.application.name=eureka
server.port=1112
eureka.instance.hostname=eurekaB
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defeaultZone=http://eurekaA:1111/eureka
我们对当前Eureka项目进行打包
我们在命令行通过Java -jar 运行jar,并指定 --spring.profiles.active
java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=a
java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=b
我们访问127.0.0.1:1111和127.0.0.1:1112,EurekaA和EurekaB成功相互注册