springcloud微服务多节点高性能、高可用、高并发部署
?
1. 共有三個服務 discovery服務,domain服務,gateway服務。
discovery服務是用來注冊其他服務的,作為服務治理用。
domain服務是主業務服務。
gateway服務是所有服務的一個入口,用來做一些服務的判斷和過濾用。
?
2. 有三臺機器分別為192.168.1.1,192.168.1.2,192.168.1.3
3. 三臺服務器上分別部署各個服務。
4. domain服務的需要注冊到每個disscover服務上。
8002 是 discover服務的端口。
client:registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://192.168.1.1:8002/lcs-discover/eureka/,http://192.168.1.2:8002/lcs-discover/eureka/,http://192.168.1.3:8002/lcs-discover/eureka/
5. 前端訪問用nginx,配置如下:
這段在server外面
upstream gateway {
server 192.168.1.1:8001;
server 192.168.1.2:8001;
server 192.168.1.3:8001;
}
這段在server里面
location /lcs-gateway {
proxy_pass http://gateway;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}
6. 前端請求說明:
http://localhost:8090/lcs-gateway 7. 實現說明: 當前端請求到8090 端口下面的lcs-gateway的時候,gateway攔截住并做了一個轉發,轉發的時候負載到不同的服務器(輪詢機制)。 當一臺gateway接收到請求后,去找對應的服務發現eureka,所有的服務都注冊在discover上面了,discover會隨機找一個domain服務提供方法。當一個服務的domain掛掉后,discover會找其他的domain頂替,這個是discover的選舉原理。 當一臺服務器的gateway掛掉后,在nginx 請求轉發的時候做了一個連接超時的判斷,如果1s內不通,他會自動連接另外的服務器。 8. 問題匯總 1. 當把一個節點的服務kill掉,一定記得要給discover發消息通知。消息接口
http://localhost:8002/lcs-discover/eureka/apps/appID/instanceID delete 請求 可以通過http://localhost:8002/lcs-discover/eureka/apps 這個查詢當前discover 下面有哪些服務。 2. 發布說明 在高可用的系統部署中,發布很重要,因為發布的時候要考慮這個節點下面的服務是否正在使用。 所以有三種發布方案:灰度發布,輪詢發布,平滑發布,具體發布細節,后面實戰了補上。
?
轉載于:https://www.cnblogs.com/baoyi/p/springcloud_master_cluster.html
總結
以上是生活随笔為你收集整理的springcloud微服务多节点高性能、高可用、高并发部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信群运营之设计运营思路
- 下一篇: 使用内存回流的方法来实现将image的内