背景

有这样一个系统,客户端(设备或本地系统)与平台之间建立着有状态的连接(如TCP长连接),连接上有实时业务,偶然断开就会导致业务中断,影响用户使用。

但系统需要建设“蓝绿”发布机制,客户端需要在“蓝绿”这2个环境之间做切换,如何保障切换时不影响业务呢?

方案设计

方案一

平台在“蓝绿”切换时,发送对应环境的服务器地址给客户端,客户端采用新地址重连平台。

优点: 简单。
缺点: 切换操作触发重连,会中断业务。只能选择凌晨这些业务量少的点做切换,但还是不能百分百保证不影响业务。当然如果切换很快,可以采用客户端重发机制,来降低中断的影响。

方案二

客户端与平台“蓝绿”环境分别建立一条连接,平台下发指令给客户端启用哪个连接,而不启用的连接只发心跳保活。

优点: 实现相对简单,切换不会影响业务。
缺点: 平台和客户端需要维护两条连接,造成资源浪费。

方案三

平台的通讯层解析客户端上报数据后,根据配置分发给业务系统“蓝绿”环境。

优点: 平滑切换,客户端完全无感。
缺点: 平台的通讯层不能做“蓝绿”环境,需要保持通讯层稳定,少变化。

写在最后

出于实现简单原因,目前我们系统采用的“方案一”。

如果大家有其他更好的方案,望不吝赐教。

客户端与平台存在有状态连接的系统蓝绿发布方案设计相关推荐

  1. Libra-Platform微服务平台之全链路蓝绿灰度发布

    1.Libra-Platform 微服务平台 Libra-Platform微服务平台.基于SpringCloud(2020.0.x) + SpringCloudAlibaba(2021.x) + Sp ...

  2. 自己动手写H3C校园网登录客户端(Linux平台版)

    自己动手写H3C校园网登录客户端(Linux平台版) By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.csdn.net/MDL13412) 周一晚上的时候,和实验室的ZL同学提 ...

  3. 使用O2OA二次开发搭建企业办公平台(五)平台部署篇:连接O2云使用APP

    本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...

  4. 服务端大量处于TIME_WAIT和CLOSE_WAIT状态连接的原因

    服务端大量处于TIME_WAIT和CLOSE_WAIT状态连接的原因 1.服务端大量处于TIME_WAIT状态的连接原因? 1.HTTP没有使用长连接 2.HTTP长连接超时 3.HTTP长连接的请求 ...

  5. 服务端大量处于 time_wait和close_wait 状态连接的原因

    本片好文转自 Java灵风 https://www.toutiao.com/article/7176629612062327355/?app=news_article&timestamp=16 ...

  6. nginx到tomcat有大量CLOSE_WAIT状态连接

    nginx到tomcat有大量CLOSE_WAIT状态连接 原因总结: 资源未及时释放 数据库连接未及时释放,数据库连接池满后新的请求阻塞:https://blog.csdn.net/yu616568 ...

  7. 阿里巴巴的五大平台野心,让“连接”论成为过去式

    阿里巴巴的五大平台野心,让"连接"论成为过去式 最近两年,因为腾讯的力挺,"连接"这个词汇成为了互联网上的最热门战略用语,无处不再谈连接,很多专业机构都陷入到了 ...

  8. 登陆用友服务器超时未响应,用友T3软件10.8plus1普及版服务器提示“客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录”?-用友T3...

    文章摘要:用友T3软件10.8plus1普及版服务器提示"客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录"?10.8plus1普及版服务器提示"客 ...

  9. Hadoop HBase概念学习系列之HBase里的客户端和HBase集群建立连接(详细)(十四)...

    需要遵循以下步骤: 1.客户端和Zookeeper集群建立连接.在这之前客户端需要获得一些信息(可以从HBase配置文件中读取或是直接指定).客户端从Zookeeper集群中读取-ROOT-表的位置信 ...

最新文章

  1. 【舒工强烈推荐】命令添加Git远程仓库
  2. java redis多主多备_java 集成Redis 一主多从
  3. 关于mysql服务器3306端口不能远程连接的解决
  4. (二)Mac系统Nginx的安装
  5. 01-subgradients_notes
  6. 递归思想完成n皇后问题
  7. 第一个mybatis项目(IDEA+MAVEN+Junit)
  8. 可能存在无限递归_Python之递归函数
  9. 10分钟就能搭建远程开发环境?你早点怎么不出现(#`n´)!
  10. Nginx 安装配置
  11. FILEUTILS 介绍
  12. Java虚拟机之HotSpot虚拟机
  13. JAVA开源B2C系统
  14. php 做 往安居客发布房源,安居客发布房源操作方法
  15. 编译原理-第一章:引论
  16. java集合框架之集合工具类Arrays类
  17. 微信游戏,微信小说系统域名防封是如何做到的
  18. C#测试调用PaddleSharp模块识别图片文字
  19. mysql统计每半小时内的数据(查寻某段时间内的数据)
  20. BUCT数据结构——图

热门文章

  1. android 11.0 12.0设置app为默认浏览器
  2. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。
  3. LeetCode231打家劫社Ⅱ(动态规划)
  4. linux系统 系统推荐 deepin国产系统 最好用的国产linux系统 Windows系统的优秀替代品 deepin系统安装 系统安装 deepin
  5. python求特征值以及特征向量,并且输出最小特征值对应的特征向量
  6. FICO 财务替代创建
  7. ios获取麦克风音频输入数据(PCM)计算DBSPL后与真实值差距很大
  8. python函数中的变量取出来_在Python中从函数调用中提取变量
  9. 富途证券面试整理--前端
  10. 问题 F: 寻找预言家