路由拆分就是把一個路由的流量按比例, 權重分發到不一樣的後端服務. 原理和帶權重的負載均衡相同. 若是你使用過阿里雲的SLB, 應該很熟悉了.java
while true; do curl http://hello-microservice-blue-reactive-microservices.192.168.99.100.nip.io 2>&1; echo ''; sleep 1; done;
咱們以一個Vertx 的Hello Microservice 爲例子react
下載須要的代碼git
https://github.com/redhat-developer/reactive-microservices-in-java.git cd openshift/hello-microservice-openshift mvn fabric8:deploy -Popenshift
部署完成後, 修改 pom.xml
中的 <artifactId>
爲 hello-microservice-blue
, 再次執行以下的構建命令以建立一個新的部署:github
mvn fabric8:deploy -Popenshift
這樣, Openshift 中會同時存在兩個名稱不一樣的部署, 分別表明應用程序的兩個不一樣版本. 後端
路由拆分配置瀏覽器
路由信息頁面負載均衡
而後用不一樣的瀏覽器打開這個路由, 你就會看到不一樣的輸出. 固然, hello-microservice-blue
這個部署, 你得修改一點輸出代碼, 以示區分.curl
由於路由有 Session Affinity(會話親和, 會話粘滯), 因此要用不一樣的瀏覽器才能看到效果. 這樣就是實現了應用的藍綠部署, 灰度發佈, A/B測試, 等等等等相似的
先試點, 再推廣
這個機制. 把有可能的影響範圍下降到最小.測試