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