首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于较少变动的数据的思考

在业务开发过程中,我们经常遇到一份较少变动的数据,与其他业务系统分享的场景,比如我们常用的省市区地址数据。地址系统来维护这些数据,那在交易链路上的其他系统需要用到这个省市区的地址数据,我们如何将这些地址数据分享出去呢?

首先我们想到的方法就是地址系统提供标准接口给业务系统调用。这样带来地址数据的统一外,同时也会给地址系统带来压力,后面随着调用的增大,地址数据系统这块可能会成为性能瓶颈。

方案二,提过MQ将地址数据下发到各个业务系统。这样各个需要用的省市区等地址数据的业务系统就可以从地址数据系统接收地址数据。这样带来的好处就是每次用到的地址数据直接查询本地就好,不用通过接口去查询,这样提搞业务系统接口的响应速度。但是同样也会带来一个问题:数据的时效性。如果地址数据发生改变,在各个业务系统都会有一定的滞后性(地址系统数据更新,会把改变的数据通过MQ发送到各个业务系统)。不过对于省市区这种基本上不会变动的地址数据,改变的可能性极小。

方案三,地址系统将数据存于数据库后,同样的将数据同步存到redis中(永久的),所有要用到的地址数据的业务系统,可以用读取redis中的数据。同时地址数据提供一个查询接口,如果redis中数据为空的话就提过接口来查询地址数据。这种方案,对于用到业务系统不多的场景,其实可以考虑。

目前对于以上三种方案,对于方案三,还有一个思考就是:业务系统启动后就从redis中将地址数据存到内存中,后面用到地址数据的时候直接从内存中读取,这样速度回更快一些。如果redis中也没有数据,那就通过查询数据接口去查询数据,然后缓存到redis中,同时缓存到内存中。

以上是我关于较少变动的数据的思考,如果您有更好的方式,欢迎留言讨论。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190115G1FV7G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券