注意springboot以及springcloud版本,可能有莫名其妙的错误,这里使用的是springboot-2.6.13,springcloud-2021.0.5
一,Eureka-Server搭建:
1.创建项目:引入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.启动类添加 @EnableEurekaServer 注解
3. yml 编写配置信息
server:port: 6000 #服务端口
spring:application:name: eurekaserver #eureka服务名称
eureka:client:service-url: #eureka地址信息defaultZone: http://localhost:10086/eureka/registerWithEureka: false #不向Eureka注册服务。此服务为注册中心,不需要自注册,设置为 falsefetchRegistry: false #不检索服务
4.访问配置的地址,就可以看到服务端页面,此时还没有服务实例注册进来
二. Eureka-client 搭建,服务注册
1.选择项目某模块或项目,把服务实例注册进Eureka-server
首先导入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
2.编写yml配置文件,配置地址信息,主要是红色方框中的两部分
3. 配置完毕后启动项目,然后Eureka-server的管理界面就多除了 demoservice这个服务
4.其他需要注册的模块或项目服务都按此步骤两步操作就可以了。
三. 同一服务启动多个实例
1.IDEA中选择服务,右击
选择copy configuration,相当于同一服务同一代码拷贝一份,启动两次,但有端口冲突,需要修改端口配置
然后修改实例名称,配置端口,最后apply
就会发现idea下多出了这个服务,然后直接启动
在返回eureka-server服务端界面,就会发现demoservice服务有了两个实例
四. 服务发现
在RestTemplate的bean声明上加上@LoadBalanced 注解,表示负载均衡
RestTemplate的调用方式改变,访问的url路径改为服务名称,也就是这个