环境:
所在机器 | 模块 | 服务名 | 端口号 | 说明 |
192.168.103.98 | eureka98 | EUREKA-SERVICE | 8000 | 服务注册中 |
zuul | ZUUL-SERVICE | 8080 | 网关 | |
systemapi | SYSTEM-SERVICE | 7004 | 提供dept业务接口,同时作为为客户端调用userapi等模块的user业务接口 | |
userapi | USER-SERVICE | 7001 | 提供user业务接口,同时与userapi01,userapi02模块配合使用,进行负在均衡 | |
192.168.103.99 | eureka99 | EUREKA-SERVICE | 8001 | 服务注册中心 |
userpai01 | USER-SERVICE | 7002 | 提供user业务接口,同时与userapi,userapi02模块配合使用,进行负在均衡 | |
userai02 | USER-SERVICE | 7003 | 提供user业务接口,同时与userapi,userapi01模块配合使用,进行负在均衡 |
集群配置:
eureka98的application.yml配置:
server:
port: 8000 #端口号
spring:
application:
name: eureka-service #服务名称,注册中心的serverId
eureka:
server:
peer-node-connect-timeout-ms: 300
instance:
hostname: eureka98
client:
fetch-registry: false #不获取服务中心的服务
register-with-eureka: true #不注册自己到注册中心去
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka,http://192.168.103.99:8001/eureka
eureka99的application.yml配置:
server:
port: 8001 #端口号
spring:
application:
name: eureka-service #服务名称,注册中心的serverId
eureka:
server:
peer-node-connect-timeout-ms: 300
instance:
hostname: eureka99
client:
fetch-registry: false #不获取服务中心的服务
register-with-eureka: true #不注册自己到注册中心去
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka,http://192.168.103.98:8000/eureka
userapi的application.yml配置:
server:
port: 7001
servlet:
context-path: /userapi
spring:
application:
name: user-service
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://192.168.103.98:8000/eureka,http://192.168.103.99:8001/eureka
userapi01:
server:
port: 7002
servlet:
context-path: /userapi
spring:
application:
name: user-service
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://192.168.103.98:8000/eureka,http://192.168.103.99:8001/eureka
userapi02的application.yml配置:
server:
port: 7003
servlet:
context-path: /userapi
spring:
application:
name: user-service
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://192.168.103.98:8000/eureka,http://192.168.103.99:8001/eureka
systemapi的application.yml配置:
server:
port: 7003
servlet:
context-path: /userapi
spring:
application:
name: user-service
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://192.168.103.98:8000/eureka,http://192.168.103.99:8001/eureka
feign:
client:
config:
default:
connectTimeout: 5000
readTimeout: 5000
loggerLevel: basic
okhttp:
enabled: true
hystrix:
enabled: true
zuul的application.yml配置:
server:
port: 8080
spring:
application:
name: zuul-service
eureka:
instance:
prefer-ip-address: true
client:
fetch-registry: true
register-with-eureka: true
service-url:
defaultZone: http://192.168.103.98:8000/eureka,http://192.168.103.99:8001/eureka
zuul:
routes:
user-service-rout:
path: /userapi/**
service-id: user-service
stripPrefix: false
system-service-rout:
path: /systemapi/**
service-id: system-service
stripPrefix: false
user-service: #负载均衡配置
ribbon:
listOfServers: 192.168.103.98:7000, 192.168.103.99:7001,192.168.103.99:7002
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule
测试结果:
依次启动eureka98,eureka99,zuul,userapi,userapi01,userapi02,userapi03, systemapi模块
访问服务注册中心eureka:
直接访问userapi模块
- 访问userapi01:http://192.168.103.99:7002/userapi/getUserInfo
- 访问userapi02:http://192.168.103.99:7003/userapi/getUserInfo
路由访问userapi模块
- 路由访问userapi:http://192.168.103.98:8080/userapi/getUserInfo
- 刷新路由访问userapi:http://192.168.103.98:8080/userapi/getUserInfo
- 刷新路由访问userapi:http://192.168.103.98:8080/userapi/getUserInfo