3)在 application.yml 文件中配置 Eureka server 服务端口,服务名等信息:
server:port: 9200spring:application:name: lagou-cloud-eurekaeureka:# Eureka server 本身也是 eureka 的一个客户端,因为在集群下需要与其他 eureka server 进行数据的同步client:# 定义 eureka server url, 如果是集群情况下 defaultZone 设置为集群下的别的 Eureka Server 的地址,多个地址使用逗号隔开service-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka# 自己就是服务不需要注册自己register-with-eureka: false# 自己就是服务不需要从 Eureka Server 获取服务信息, 默认为 truefetch-registry: falseinstance:# 当前 eureka 实例的主机名hostname: localhost# 使用 ip 注册,否则会使用主机名注册了(此处考虑到对老版本的兼容,新版本经过实验都是 ip)prefer-ip-address: true# 自定义实例显示格式,加上版本号,便于多版本管理,注意是 ip-address,早期版本是 ipAddressinstance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}:@project.version@
4)编写启动类,声明当前服务为 Eureka 注册中心
package com.renda.eureka;?import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;?/** * @author Renda Zhang * @since 2020-11-01 16:36 */@SpringBootApplication@EnableEurekaServer // 表示当前项目为 Eureka Serverpublic class EurekaApplication {?public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}?}
5)访问 http://localhost:9200/,如果出现 Eureka 注册中心后台页面,则表明 Eureka Server 发布成功 。
6)商品微服务和页面静态化微服务注册到 Eureka 。
两个微服务的 POM 文件中都添加 Eureka Client 依赖:
<!-- Eureka client --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
两个微服务的 application.yml 都配置 Eureka 服务端信息:
eureka:client:service-url:defaultZone: http://localhost:9200/eureka/instance:# 使用 ip 注册,否则会使用主机名注册了(此处考虑到对老版本的兼容,新版本经过实验都是 ip)prefer-ip-address: true# 自定义实例显示格式,加上版本号,便于多版本管理,注意是 ip-address,早期版本是 ipAddressinstance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}:@project.version@
修改两个微服务的启动类,加上注解:
// 将当前项目作为 Eureka Client 注册到 Eureka Server, 只能在 Eureka 环境中使用@EnableEurekaClient
或者使用可以应用在所有服务注册中心环境的注解:
// 将当前项目表示为注册中心的客户端,向注册中心进行注册,可以在所有的服务注册中心环境下使用@EnableDiscoveryClient
7)刷新 Eureka 注册中心后台页面,发现新增了两个微服务信息 。
搭建 Eureka Server 高可用集群在互联网应用中,服务实例很少有单个的 。
如果 EurekaServer 只有一个实例,该实例挂掉,正好微服务消费者本地缓存列表中的服务实例也不可用,那么这个时候整个系统都受影响 。
在生产环境中,会配置 Eureka Server 集群实现高可用 。
Eureka Server 集群之中的节点通过点对点(P2P)通信的方式共享服务注册表 。
开启两台 Eureka Server 以搭建集群 。
修改个人电脑中 host 地址:
127.0.0.1 LagouCloudEurekaServerA127.0.0.1 LagouCloudEurekaServerB
将 lagou-cloud-eureka 复制一份为 lagou-cloud-eureka2
lagou-cloud-eureka 的 application.yml:
server:port: 9200spring:application:name: lagou-cloud-eurekaeureka:# Eureka server 本身也是 eureka 的一个客户端,因为在集群下需要与其他 eureka server 进行数据的同步client:# 定义 eureka server url, 如果是集群情况下 defaultZone 设置为集群下的别的 Eureka Server 的地址,多个地址使用逗号隔开service-url:defaultZone: http://LagouCloudEurekaServerB:9201/eureka# 表示是否向 Eureka 中心注册自己的信息,因为自己就是 Eureka Server 所以不进行注册, 默认为 trueregister-with-eureka: true# 是否查询 / 拉取 Eureka Server 服务注册列表,默认为 truefetch-registry: trueinstance:# 使用 ip 注册,否则会使用主机名注册了(此处考虑到对老版本的兼容,新版本经过实验都是 ip)prefer-ip-address: true# 自定义实例显示格式,加上版本号,便于多版本管理,注意是 ip-address,早期版本是 ipAddressinstance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}:@project.version@
推荐阅读
- 5分钟搭建公网https网页文件服务器,免费权威TLS证书
- 一个比 Nginx 功能更强大的 Web 服务器
- 2021寒假儿童关爱服务四送活动总结?2021寒假儿童关爱服务观后感
- 微型投影仪选购及保养技巧
- 一般公司或者团队是怎么进行代码开发并且部署到服务器上的?
- 微信拉黑后再拉回来对方有提示吗?
- 家用无线路由器DHCP服务器配置方法
- 500行代码,教你用python写个微信飞机大战
- 什么是微内核架构设计?
- 云计算核心技术Docker教程:docker-compose控制服务启动和关闭顺序