路由拆分就是把一个路由的流量按比例, 权重分发到不同的后端服务. 原理和带权重的负载均衡相同. 如果你使用过阿里云的SLB, 应该很熟悉了.
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 为例子
下载需要的代码
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
, 再次执行如下的构建命令以创建一个新的部署:
mvn fabric8:deploy -Popenshift
这样, Openshift 中会同时存在两个名称不同的部署, 分别代表应用程序的两个不同版本.
路由拆分配置
路由信息页面
然后用不同的浏览器打开这个路由, 你就会看到不同的输出. 当然, hello-microservice-blue
这个部署, 你得修改一点输出代码, 以示区分.
因为路由有 Session Affinity(会话亲和, 会话粘滞), 所以要用不同的浏览器才能看到效果. 这样就是实现了应用的蓝绿部署, 灰度发布, A/B测试, 等等等等类似的
先试点, 再推广
这个机制. 把有可能的影响范围降低到最小.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。