+
95
-

mysql数据如何同步到Elasticsearch?

mysql数据如何同步到Elasticsearch?


网友回复

+
15
-

大家应该都在各种电商网站检索过商品,那么检索商品一般都是通过什么实现呢?搜索引擎Elasticsearch。

那么问题来了,商品上架,数据一般写入到MySQL的数据库中,那么用于检索的数据又是怎么同步到Elasticsearch的呢?

1.同步双写

这是能想到的最直接的方式,在写入MySQL,直接也同步往ES里写一份数据。 对于这种方式:

优点:实现简单

缺点: 业务耦合,商品的管理中耦合大量数据同步代码 影响性能,写入两个存储,响应时间变长 不便扩展:搜索可能有一些个性化需求,需要对数据进行聚合,这种方式不便实现

2.异步双写

我们也很容易想到异步双写的办法,上架商品的时候,先把商品数据丢进MQ,为了解耦合,我们一般会拆分一个搜索服务,由搜索服务去订阅商品变动的消息,来完成同步。 前面说的,一些数据需要聚合处理成类似宽表的结构怎么办呢?例如商品库的商品品类、spu、sku表是分开的,但是查询是跨维度的,在ES里再聚...

点击查看剩余70%

我知道答案,我要回答