公司的商品系统在研究如何进行“主数据推送”,就是把商品相关的数据信息推送给其它系统,
大概分析下,这有必要吗?
-----------------------------------------
推送方式: 消息,MQ
推送内容: 商品信息
接收方: 需要调用商品信息的它系统
好处:
1 商品系统的数据在其它系统有了一份冗余,其它系统在查询商品数据时,可以查自己,降低了商品系统的压力,冗余也许可以提升它系统对商品的查询性能。
-- 这个地方,当查不到的时候,不应该再查商品(是否补救),否则主数据推送的意义不大,主数据的推送是全量的
不足之处
1 需要开发,商品系统需要开发“主数据推送”功能
2 它系统需要知道一些商品的业务,对商品系统推送过来的主数据需要设计存储和查询方案
3 数据不一致怎么办?
-- 1 不要担心不一致,因为是用消息推送的,我们认为数据是全量的
2 真的不一致了,有坑,再说!!
总结:
1 太麻烦,双发都得写代码,不可能每一个依赖商品的系统都去做商品信息的存储
2 它系统收到推送到主数据之后,是否就可以从自己的冗余数据中命中商品呢,商品的量是很大,商品系统自身都是分库分表的结构,如果无法从缓存中命中,或者概率很低,不如直接查商品系统
3 系统做了垂直切分后,垂直应用变的越来越多,应用之间交互不可避免,我们需要的是将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求,跟主数据推送比,做好服务化,将各个服务的性能优化到极致,看起来是更好的选择
带给我们的思考
1 商品不适合主数据推送,其它系统,比如省市区列表或许适合在依赖它的系统做主数据推送,查本地
这些数据结构简单,数据量小。
2 主数据推送,关键是识别什么是”主数据“
3 数据量太大不好管理