LogStash+MySQL+Elasticsearch 实现数据增量导入(双写一致)
- 原有系统中,如果使用了缓存应用,全文搜索服务等额外数据存储,则在代码实现中,要保证双写一致,即写数据库的同时,把数据的变量同步到其他存储中
- 如果使用 LogStash,则可以实现数据的增量导入。
- 思路:写数据到数据库,LogStash 监听数据库中数据的变化,把增量数据读取,并保存到 ES 中
1.环境准备
1.1 上传数据库驱动
- LogStash 本身不提供数据库驱动,需要使用者提供数据库的驱动包,且 LogStash 中的数据库 JDBC 插件就是 Java 开发的。需要上传数据库驱动到 LogStash 所在主机
- Logstash5.x & 6.3.*以下版本,上传驱动不需要固定位置,任意位置即可
- Logstash6.8.4 版本的上传位置固定是:$LogStash_HOME/logstash_core/lib/jars/
1.2 准备数据库表格
CREATE TABLE `tb_item` (
`id` bigint(20) NOT NULL COMMENT '商品 id,同时也是商品编号',
`title` varchar(100) NOT NULL COMMENT '商品标题',
`sell_point` varchar(500) DEFAULT NULL COMMENT '商品卖点',
`price` bigint(20) NOT NULL COMMENT '商品价格,单位为:分',
`num` int</