Spring Cloud Eureka
基于Netflix Eureka做了二次封装
两个组件组成:
Eureka Server 注册中心
Eureka Client 服务注册
入门注册中心(Eureka Server)
1、下载Eureka快速开发模板代码
2、填坑开始!
直接启动,启动类上要添加@EnableEurekaServer,不然访问会报404.
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
3、服务本身也需要注册
yml中没有配置(我习惯用yml,可以直接将application改为yml),系统启动后,一直报错,这个是Eureka服务需要去找注册
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
# register-with-eureka: false
spring:
application:
name: eureka
server:
port: 8761
现在就不会报错了!可以看到官方UI上的注册发现有本身,且服务名也是我们自己命名的。
这里的service-url是一个Map对象!!!需要注意,进去原码可以看清楚
public static final String DEFAULT_URL = "http://localhost:8761/eureka/";
public static final String DEFAULT_ZONE = "defaultZone";
private Map serviceUrl = new HashMap();
public void setServiceUrl(Map serviceUrl) {
this.serviceUrl = serviceUrl;
}
想要优化一点,就是将服务本身假移除,让它不出现在注册列表中,我们可以加一个配置
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
register-with-eureka: false
spring:
application:
name: eureka
server:
port: 8761
这样就是会注册服务成功啦!
注意!!!
Eureka是基于心跳机制的,可以看到它每隔一段时间就会检测一次,所以可能一开始启动服务的时候是没有服务的,可能要等下一次心跳检测就会将服务注册上去。
如果本文对你有所帮助,欢迎关注技术公众号