微服務啟動的時候,會自動向服務注冊中心報告自己的ip和端口。但是服務是在docker容器內運行的,注冊的ip就成了172開頭的docker內部ip, 這個地址是無法被其它機器訪問的。這種情況是不是必須手動將服務注冊的地址改成宿主機的地址和端口呢,有其它好方案沒----- update -----docker 1.12版本以后engine有了swarm模式,經測試使用swarm的overlay網絡可解決跨主機通訊問題,這種方案是否合適呢
2 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
docker swarm 提供的overlay network可以提供跨主機的容器內網絡通訊,本機內容器可以在啟動時指定network來組成內部網絡,然后可以在swarm主機上用host模式部署nginx,使用etcd,consul等動態注冊服務和更新nginx的反向代理配置來達到動態服務發現的目的。
不過overlay目前是所有跨主機通訊方式中性能損耗最大的,達到60%。網上有人做過測試,你可以找來看看。因此就目前來說,生產環境還是要考慮kubernetes或者mesos
- 2 回答
- 0 關注
- 1204 瀏覽
添加回答
舉報
0/150
提交
取消