一. 简介
1.elasticsearch (es)
Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模实时数据。
它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。
Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最 高效的全功能开源搜索引擎框架。
Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。
当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了全文搜索功能,还可以进行以下工作:
分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
实时分析的分布式搜索引擎。
可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
常用的搜索中间件还有solr ,solr也是使用Lucene作为内部引擎,但是当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。随着数据量的增加solr的搜索效率就逐渐下降,es没有什么变化,如果要求实时搜索的话建议使用es,但对单纯已有索引库进行搜索的话solr会跟快,所以es还是solr需要根据自己的业务进行选择。
2.canal
阿里开源的一个中间件,主要是用来同步数据库数据,简单的说就是将canal伪装成一个数据库的从节点,通过订阅的方式获取住数据库节点的binlog,解析binlog进行后续的业务操作,现在主要支持mysql。
这里用到canal的原因是我们不需要在正常的业务中进行索引库的同步,数据库一旦有所变动,我们会通过canal得到变动的信息,解析变动的信息来同步索引库,实现了业务无感知与索引库实时同步(由于canal是根据binlog去拉取数据库的操作日志的,所以做不到绝对的实时).
3.mq
Mq在这里就不多做介绍了,哪为什么会在这里有mq呢?主要是提出一种思想,每一个插件中间件都有自己特有的作用,我们要做的就是在这么多的插件中找到一种最符合我们业务要求的插件组合,例如:canal + mq 当数据库数据发生变化时我们可能要根据这个变化进行多个业务的操作,就可以canal监控到发送mq消息进行其他业务。
4.kibina
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。
Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘。安装Kibana非常快,你可以在几分钟之内安装和开始探索你的Elasticsearch索引数据,不需要写任何代码,没有其他基础软件依赖。
二. 搭建
1.地址
canal :https://github.com/alibaba/canal/releases/
Elasticsearch : https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
2.canal(单数据源监控)
1)下载
wget https://github.com/alibaba/canal/releases/download/canal-1.1.1-preview-1/canal.deployer-1.1.1-SNAPSHOT.tar.gz
2)
解压:
tar -zxvf canal.deployer-1.1.1-SNAPSHOT.tar.gz
编辑配置文件
vi /conf/example/instance.properties
启动
./bin/startup.sh
日志:
tail -f logs/example/example.log
停止
./bin/stop.sh
3)验证
下载java代码到本机
https://github.com/alibaba/canal/archive/canal-1.1.1-preview-1.zip
解压后导入idea
搜索 ‘SimpleCanalClientTest.java’
修改ip地址端口默认是11111,canal 在conf/canal.properties中修改
启动main
修改数据库查看日志
3.canal(多数据源监控)
1).cp -R conf/example conf/example1
将example1下的数据源修改一下
2).vi conf/canal.properties
3)启动
./bin/startup.sh
4.es
1)下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
2)解压
tar -zxvf elasticsearch-6.4.0.tar.gz
cd elasticsearch-6.4.0/
vi config/elasticsearch.yml
修改ip与prot
启动
./bin/elasticsearch (直接启动)
./bin/elasticsearch -d (后台启动)
验证
http://10.8.131.77:9200/
这种查看不直观——我们有界面啊 - (head 没有解决)
5.Kibina
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz
tar -zxvf kibana-6.4.0-linux-x86_64.tar.gz
Cd kibana-6.4.0-linux-x86_64
vi config/kibana.yml
启动
./bin/kibina & (后台启动)
访问
http://10.8.131.77:5601
三. 代码
https://gitee.com/houyong-feng/es_demo.git