因前面提到Netflix相关组件已逐步被SpringCloud剔除,Eureka作为其中的注册中心,在此关注功能性即可,本章节不深入阐述其底层原理。后续章节替换为Nacos后,针对Nacos再做细节讨论。
1.Eureka工程搭建启动
- 新建module,名称:eureka-server
- 引入pom依赖,如maven未刷新需手动刷新拉取
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
- 新建启动类:EurekaApplication
package cn.itcast.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * Eureka启动类 * * @author * @date 2022-12-22 16:20 */ public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); System.out.println("Eureka服务启动成功"); } }
- 新建配置文件:application.yml
server port 10086 # 服务端口 spring application name eurekaserver # eureka的服务名称 eureka client serviceUrl# eureka的地址信息 defaultZone http //127.0.0.1 10086/eureka register-with-eurekafalse fetch-registryfalse
- 工程启动并访问:http://127.0.0.1:10086/
至此,eureka已完成创建、部署、访问。至此工程目录结构如下
2.user-service接入并启动
2.1 引入pom依赖
<!--eureka--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2.2 更新配置文件
以下配置文件注意缩进,其中application为spring下二级路径,主要为了区分多个注册在eureka上的服务
application name userservice eureka client service-url#eureka服务路径 defaultZone http //127.0.0.1 10086/eureka/
2.3 启动并查看Eureka信息
这样 我们就完成了user服务的添加,order也是一样的道理,把yml中的服务名name:替换成orderservice就行了
4.常见问题及解决方案
- Eureka启动报错但页面访问正常
确保Eureka信息配置中增加:register-with-eureka: false、fetch-registry: false,以避免因Eureka自身注册自身带来的启动异常
- 应用启动正常,访问Eureka发现注册失败
- 确保应用引入依赖:spring-cloud-starter-netflix-eureka-server
- 确保优先启动Eureka,而后启动user-service、order-service
- 如遇其他未知问题,为避免浪费时间可直接使用此工程导入