前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >客户端与服务器端数据一致性探讨

客户端与服务器端数据一致性探讨

作者头像
needrunning
发布2019-09-02 16:57:27
1.9K0
发布2019-09-02 16:57:27
举报
文章被收录于专栏:图南科技

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

本文从Apollo框架的客户端实现原理展开讨论。

上图简要描述了 Apollo 客户端的实现原理:

1.客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送 2.客户端会定时从 Apollo 配置中心服务端拉取应用的最新配置(防止推送机制失效导致配置不更新) 3.客户端从 Apollo 配置中心服务端获取到应用的最新配置后,会保存在内存中 客户端会把从服务端获取到的配置在本地文件系统缓存一份,在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 4.应用程序从 Apollo 客户端获取最新的配置、订阅配置更新通知。

推拉结合及本地文件辅助

从户端实现原理可以看出,配置中心即控制中心,作为配置中心客户端和服务器端一致性是强需求。为了实现这个目的,采用了推拉结合及本地文件辅助的方式。

这里边涉及的关键词有 服务器,客户端,通知,长连接,同步,广播。

之前在项目中多次遇到到这种客户端需要接收到实时推送的需求,需求的本质就是要把服务器端数据及时更新到客户端,是一个数据发现和同步的过程。

本文中把这种需求定义为推送服务需求,从实现的便利性来说,都是采用第三方推送服务,实际上是推服务,然后把推送成功率全部压在这个服务的成功率上。

众所周知的原因,客户端推送到达率存在一定的变数,关联因素比较多。最终这个需求的业务方满意度会大打折扣。

从客户端实现原理图中可以得到一些启示,如果想提高这个推送功能的可用性,需要从连接方式入手,采用推拉结合的方式。

推方式依赖第三方服务,拉服务借助客户端自助定时结合策略,原理类似于消息补偿。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图南科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 推拉结合及本地文件辅助
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档