常用组件介绍
1.1 MySQL服务
MySQL是我们的主数据库,所有的操作都会写入到MySQL数据库,这个是我们的主要的数据库,因为MySQL不适合于全文检索,所以我们需要将数据同步的ES中,通过ES来进行全文检索
1.2 Canal
canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。
canal的工作原理就是把自己伪装成MySQL slave,模拟MySQL slave的交互协议向MySQL Mater发送 dump协议,MySQL mater收到canal发送过来的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地,比如MySQL,Kafka,Elastic Search等等。
1.3 RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)
使用RabbitMQ来进行消息的削峰填谷,因为全国的房产数据的操作会很频繁,数据量很大的情况下我们需要使用MQ来进行缓冲数据,这样可以进行大量数据的快速同步
1.4 Logstash
Logstash是具有实时流水线能力的开源的数据收集引擎
Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出,它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。
我们需要使用logstash对RabbitMQ过来的数据进行解析以及清晰,并将清洗过的数据放进ES中
1.5 ElasticSearch
Elasticsearch 是一个分布式的开源搜索和分析引擎,在 Apache Lucene 的基础上开发而成。
我们使用ElasticSearch存储logstash清洗完成的数据,通过ES可以对数据进行全文检索,Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据,可以在极短的时间内存储、搜索和分析大量的数据
1.6 kibana
针对es的ES的开源分析可视化工具,与存储在ES的数据进行交互
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的,你可以用kibana搜索、查看存放在Elasticsearch中的数据,Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。