【技术实现步骤摘要】
分布式实时搜索系统及方法
[0001]本专利技术涉及分布式数据收集分析处理
,具体地说是一种分布式实时搜索系统及方法。
技术介绍
[0002]一个系统最重要的是数据,数据是保存在数据库里。但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、Redis等等。拿ES举例,由于Mysql对全文检索或模糊查询支持的能力不强,需要将数据发送到搜索引擎(如ES)上,由搜索引擎来提供专业的服务。在实践中常用的方式具体有:
[0003]①
、同步双写:将数据写到Mysql的同时也将数据写到ES;
[0004]②
、异步双写:引入MQ异步将数据写入ES;
[0005]同步双写和异步双写这两种方案存在硬编码,业务耦合性强,也就是有任何对Mysql进行增删改查的地方要么植入ES代码,要么替换为MQ代码,代码的侵入性太强,双写存在数据丢失的风险,本来Mysql的性能不是很高,再加一个ES,系统的性能必然会下降,系统中增加了MQ的代码,也增加了复杂度。如果实时性要求不高的话也可以采用定时器来处理:数据库的相关表中增加一个字段为timestamp的字段,任何crud操作都会导致该字段的时间发生变化,加一个定时器程序,让该程序按一定的时间周期扫描指定的表,把该时间段内发生变化的数据提取出来,逐条写入到ES中。这样虽然解决了上面两种方案的问题但是时效性较差,定时器工作周期不可能设置到秒级,对数据库的轮询也有一定压力。
[0006]分布式系统中会对一些业务数 ...
【技术保护点】
【技术特征摘要】
1.一种分布式实时搜索系统,其特征在于,该系统包括服务注册端、服务端、消息端及客户端;其中,服务注册端用于实现集群统一管理;服务端用于监听收集数据变动信息;消息端用于推送数据信息到客户端;客户端用于统一消费对接业务处理。2.根据权利要求1所述的分布式实时搜索系统,其特征在于,所述服务注册端通过canal
‑
server和canal
‑
adapter采用多节点部署的方式提高可用性,使用ZooKeeper进行集群管理。3.根据权利要求2所述的分布式实时搜索系统,其特征在于,canal
‑
server的安装具体如下:直接下载安装包或者下载源码自己打包,将下载好的文件移动到自定义的安装路径,修改配置文件vi/opt/app/canal/canal_server/conf/canal.prop erties,配置多个destination,并在conf下创建对应的目录,在对应的目录下边编写配置文件instance.properties,进入到路径bin下边,运行./start up.sh即可启动。4.根据权利要求2或3所述的分布式实时搜索系统,其特征在于,canal
‑
server配置说明具体如下:canal.instance.master.journal.name+canal.instance.master.posit ion:精确指定一个binlog位点,进行启动;canal.instance.master.timestamp:指定一个时间戳,canal自动遍历m ysql binlog,找到对应时间戳的binlog位点后,进行启动;不指定任何信息:默认从当前数据库的位点,进行启动;instance.xml配置文件;memory
‑
instance.xml:所有的组件均选择内存版模式,记录位点均选择memory模式,重启后又会回到初始位点进行解析;default
‑
instance.xml:store选择内存模式,其余的parser/sink依赖的位点管理选择了持久化模式,目前持久化的方式是写入zookeeper,保证数据集群共享;group
‑
instance.xml:针对需要进行多库合并时,将多个物理instance合并为一个逻辑instance,提供客户端访问;多个destination配置;在canal.properties里边配置canal.destinations,用英文逗号分隔;在conf路径下创建对应的路径并添加对应的instance.properties。5.根据权利要求2所述的分布式实时搜索系统,其特征在于,canal
‑
adapter的安装具体如下:下载安装包并解压,修改conf/application.yml,在conf/es/路径下添加配置文件example_01.yml和example_02.yml,一份数据被多个group同时消费,多个group之间会是一个并行执行,一个group内部是一个串行执行多个outerAdapters,进入到路径bin下边,运行./startup.sh即可启动。6.根据权利要求1所述的分布式实时搜索系统,其特征在于,所述服务端的工作过程具体如下:(1)、配置Mysql开启MySQL的binarylog日志记录,并选择模式为Row;MySQL master将数据变更写入二进制日志;
(2)、MySQL slave将master的binary log events拷贝到对应的中继日志relay log;(3)、MySQL slave重放relaylog中事件,将数据变更反映自己的数据;(4)、canal
‑
server充当MySQL集群的一个slave,获取master的binary log信息;(5)、canal模拟MySQL slave的交互协议,伪装自己为MySQL slav...
【专利技术属性】
技术研发人员:孙志强,左鹏,王禹博,徐士强,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。