介绍
分布式binlog监听中间件duckula能像吸血鬼一样从各mysql实例中得到变化的数据,又能自动复活(HA).支持插件化数据接收者和序列化.非常灵 活.,可在自定义接收者,项目内置了kafka和redis接收者,也可以自定义序列化格式,项目也内置了protobuf2/protobuf3序列化.通过插件的形式嵌入到 duckula. 具有丰富的界面操作,可以通过页面操作进行任务的创建,任务的启动与停止.合适的调度策略,当某个task由于某种原因"自杀"后,系统会自动 选择其它占用资源较少的服务器来运行此task.支持GTID和文件名+位置的2种形式的起动监听方式,且可以选择以前的任何位点进行监听(只要能起得 来).支持docker和k8s运行.支持metrics的计数。
运行模式
duckula可以像传统中间件那样支持 Ops-Server模式(process模式),也就是说有一个控制中心,统一调度任务到各服务器启动监听任务。也可以支持在k8s上无服务器运行模式(tiller模式)。 此节将介绍duckula的Ops-Server模式的安装。
通过源文件打包安装文件
duckula的打包非常简单,下载git库中代码,安装好maven和java,修改目录duckula-install\conf-test下的相关中间件的配置文件(重要) ,为什么是conf-test目录呢?这个是跟据"duckula-install\pom.xml"文件 的"ts-maven-plugin"打包插件的env配置决定的,即:duckula-install\conf-ENV 目录起作用,如果是pre那么duckula-install\conf-pre目录起作用。
<env>
test
</env>
执行命令:
mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
上述命令执行成功后,会在模块duckula-install\target 目录出现三个文件 ,分别是:
duckula.tar duckula的模块执行程序
duckula-data.tar duckula的配置文件、日志、插件存储的基础目录。
duckula-ops.war ops的模块
运行前准备
duckula大量的测试在Centos7操作系统下完成,理论上支持window,但未经测试,所以要求安装duckula的服务器为Centos7操作系统,JDK为1.8。 duckula为了做HA,最小需要2台机,一台安装Ops和Server,别一台安装Server。2台Server构成了是小的HA模式。
ops安装
安装好tomcat,把duckula-ops.war复制到tomcat的webapp目录下完成安装。然后解压duckula.tar文件到/opt目录下,把duckula-data.tar文件解压到/data目录下,然后执行改变目录属主:
chown -R duckula:duckula /opt/duckula
chown -R duckula:duckula /data/duckula-data
OPS这台服务器需要手动配置环境变量:
DUCKULA_DATA:/data/duckula-data duckula的配置文件、日志、插件存储的基础目录
DUCKULA_HOME:/opt/duckula duckula的模块执行程序的安装目录
Server服务器初始化
duckula支持在ops里初始化Server服务器,点击菜单"任务管理->服务器管理":
服务器地址: 指分派的服务器ip地址
锁IP: 就是分布式锁内容显示的IP,这样我们就能统计这台服务器运行了多少任务,默认情况下是和服务器地址是一致的,但如果有多网卡或是在docker里跑的监听,那么它的地址就可能不是服务器地址,这种情况下我们就需要手动设置这个锁IP地址。
操作系统: 选择Linux,window未做过多测试
当配置好服务器相关信息后,点击“初始化”按钮,duckula会要求用户输入root的密码 :
duckula就会把服务的环境变量设置好,还会把用户和用户组"duckula:duckula"创建好,还会把/opt/duckula和/data/duckula-data目录全部初始化成功。这样,这台机就可以直接启动监听了。