1服务端构建
1首先构建一个eureka server的maven项目:
2然后导入maven坐标
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
3在启动类中添加注解
4配置文件
server:
port: 10086
spring:
application:
name: eurekaserver
# Eureka 配置
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka/
5启动如下:
这里eureka-server端配置启动完成。下面开始写微服务
2客户端构建
1构建一个springboot项目
2引入client端依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
3启动类上添加注解
4配置文件
# Eureka 配置
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka/
5启动,eureka-server会自动将client服务纳入管理。
3实现负载均衡
1配置类中添加一个Bean
2调用其他微服务时不要使用绝对地址,使用被eureka管理的微服务名称来代替
更改负载均衡规则可以通过两种方式实现
1.配置类中添加bean
这里实现随机规则
2.配置文件方式
#自定userservice服务的负载均衡规则
userservice: #需要实现规则的服务名
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
ribbon负载均衡默认采用的时懒加载方式,这种方式在服务第一次被访问时才加载,这里可以通过修改配置文件的方式将他改为饿汉式
ribbon:
eager-load:
enabled: true #开启饿汉式加载
clients: [userservice] #自定具体服务