1. 程式人生 > >springcloud 實現反向代理和負載均衡

springcloud 實現反向代理和負載均衡

springcloud 實現反向代理和負載均衡

 

1. 搭建註冊中心,路由服務zuul,兩個服務端

        參考我的上一篇部落格 springcloud專案搭建

        注意兩個服務端服務名稱要相同,埠不能相同配置如下

        service1的配置檔案

 
  1. #服務名稱

  2. spring.application.name=compute-service1 //注意該配置的值

  3. #埠號

  4. server.port=2222

  5. eureka.instance.hostname=127.0.0.1

  6. eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.hostname}:${server.port}

  7. #是在註冊中心url中不顯示ip地址字首

  8. eureka.instance.prefer-ip-address=false

  9. #註冊中心

  10. eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

  11. spring.cloud.config.discovery.enabled=true

  12. #註冊中心的服務id

  13. spring.cloud.config.discovery.serviceId=compute-server

    service2的配置檔案  

 
  1. #服務名稱

  2. spring.application.name=compute-service1//該配置的值跟上面service1的值相同

  3. #埠號

  4. server.port=2223//埠號跟上面埠不同

  5. eureka.instance.hostname=127.0.0.1

  6. eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.hostname}:${server.port}

  7. #是在註冊中心url中不顯示ip地址字首

  8. eureka.instance.prefer-ip-address=false

  9. #註冊中心

  10. eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

  11. spring.cloud.config.discovery.enabled=true

  12. #註冊中心的服務id

  13. spring.cloud.config.discovery.serviceId=compute-server

路由伺服器zuul配置檔案

 
  1. eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

  2. server.port=3333

  3. spring.application.name=service-zuul

  4. #表示只要訪問以/api-a/開頭的多層目錄都可以路由到 id為compute-service1的服務上

  5. zuul.routes.compute-service1=/api-a/**

 

2. 執行專案檢視結果

compute-service1相同,埠不同,如下圖

啟動路由伺服器,訪問會出現輪詢式的訪問服務端

springcloud的負載均衡策略預設是輪詢規則

專案原始碼地址 springcloud負載均衡