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与数据库数据同步

基于SpringBoot集群数据同步功能设计实现

数据库同步

MySQL数据库实现主从同步数据

使用 DataX 实现数据同步(高效的数据同步工具)

MySQL数据库同步小工具(Java实现)