Spring Cloud Eureka 组件:服务的注册与发现
Spring Cloud Eureka 组件:服务的注册与发现
为什么需要服务注册?
假如 A 服务调用 B 服务,在正常情况下,我们会在 java 代码中写一个 Get 或者 Post 请求,但这个时候我们请求的 url 固定写死的,假如 URL 为http:127.0.0.1:8888/api/user
那么如果 B 服务做了负载均衡或者动了端口,我们就需要更改代码中写死的 URL,后续还要做重复打包上线这些无用功
现在我们使用 Eureka 后,把所有的服务放在一个池子里面,当 B 服务注册在池子里面,并且给定一个服务名称 B-Service,那么无论 B 服务是更改端口,或是做负载均衡,A 服务是根据 B 服务的名字 B-Service 进行请求的
因此我们需要服务注册,同时 A 能拉取服务列表,也就说明在服务注册后,其他服务可以发现此服务,就是服务发现。
注册服务的一方是服务提供者,而调用其他服务的接口的则是服务消费者,两者是相对的。
同时,一个服务可以是服务提供者,又可以是服务消费者,关键是以谁为参照物。例如 A 服务调用 B 服务,B 服务又去调用了 C 服务接口,那么 B 服务相对于 A 来说就是服务提供者,相对于 C 服务来说就是服务消费者。
新建一个 Eureka Server 服务端
创建一个 Spring Boot 项目

点击下一步,搜索依赖eureka 然后选择 eureka-server

点击 Finish
使用全文搜索 SpringBootApplication,然后在其上增加一行注解 @EnableEurekaServer
代码如下:
1 | |
配置文件 application.properties
1 | |
启动此应用,然后在浏览器访问http://localhost:9001即可看到项目的 web 窗口显示

eureka 实现高可用
修改电脑的hosts文件
1 | |
增加
1 | |
然后application.properties配置文件的内容如下:
1 | |
application-sh.properties配置文件如下
1 | |
启动完成默认的 eureka 之后,修改启动配置项如下

启动完成以后,可以在 eureka 控制面板看到如下内容

源代码在下面地址: