igntie实现数据同步
Posted yc913344706
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了igntie实现数据同步相关的知识,希望对你有一定的参考价值。
思路
tomcat配置两个数据源,一个正常的mysql,一个ignite的server集群
如sit的数据需要变动,sit的tomcat会在往自身mysql中操作的同时,往ignite server集群中写入变动消息,往内存数据库中写入如本次变更的源环境,执行的语句等。
而在server集群中发生变动后,sit和uat的client监听端均取得server集群的变动(本次变更的源环境,执行的语句等),sit取到后,发现是变动的源环境就是自己,则不作处理;uat取得变动后,发现是变动的源环境不是是自己,则在自身的mysql进行相同操作,相当于SIT,所执行的语句在UAT同步进行了执行,即达到了数据同步
架构
采用独立式igntie集群,实现不同环境数据库同步
FAQ
1.ignite server集群如何搭建?
https://www.jianshu.com/p/640a90225923
配置文件:apache-ignite-fabric-2.2.0-bin/config/default-config.xml
注1:server端的client mode不用更改,保持默认即可
注2:集群中的server端的配置基本一致
2.server集群是否可以直接查询内存数据库?
可以使用 DBeaver或者直接使用sqlline命令行
https://www.zybuluo.com/liyuj/note/1023980
3. tomcat如何连接到ignite server集群?
在tomcat/conf/context.html中配置数据源即可
<Resource name="jndi/igniteDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.apache.ignite.IniteJdbcThinDriver"
url="jdbc:ignite:thin://xx.xx.xx.xx/"
>
4.client端如何搭建?如何配置client端与ignite server集群的连接?
客户端使用jar包形式启动,集成了ignite相关jar,设置了ignite.listen.clientmode=true, igntie.listen.ips=服务端的ip(s),在src/main/java/xx/xx/xx/service/ignite/Application.java的ignite方法中以嵌入式模式的启动方式启动即可
配置文件:src/main/resource/(config/)application.properties
5. client端监听到的消息是什么格式?CQL是什么?
基于Ignite的ContinuousQuery
https://www.jianshu.com/p/e527af8213d0
CQL
持续查询语言(CQL, continuous query language)类似于:内存数据库+视图+触发器 的解决方案。
简单来说,一有符合条件的对象进入查询结果集,就执行一次回调函数。
6. 如何配置client端与mysql集群的连接?client端如何修改mysql中的数据?
使用spring boot框架的配置模式,在配置文件中配置好要连接的mysql后,执行与src/main/resource/mapper/下的xx.xml中的SQL语句即可在对应mysql中执行语句
配置文件:src/main/resource/(config/)application.properties
参考
Apache Ignite(六):Ignite的集群部署
https://my.oschina.net/liyuj/blog/651036
SQLLine 1.0.2
http://sqlline.sourceforge.net/#commands
以上是关于igntie实现数据同步的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch 分布式搜索引擎 -- 数据同步:数据同步思路分析 实现elasticsearch与数据库数据同步