@wddpct
2020-12-21T16:27:05.000000Z
字数 1705
阅读 788
未分类
gluttony 是一个针对 oracle, mssql, postgresql 等数据源进行数据变更捕获功能管理的工具。
gluttony 基于 kafka 和 debezium 构建,主要提供对 kafka consumer 的管理和运行状态的监控。
各类常见的数据库通常都实现了内置的数据变更捕获功能,如 oracle goldengate 之于 oracle, sqlserver change-data-capture 之于 mssql, logic-replication 之于 postgresql。
针对上述某类特定的数据库,在开启了相关的数据变更捕获功能后,debezium 可以对接数据库的数据变更操作,并以流的形式写入 kafka(debezium 本身提供了 kafka 的 connector 组件)。
基于 debezium + kafka 的一套实用功能,gluttony 可以直接对接 kafka,以提供管理 consumer 的形式实现相应的数据变更处理后续操作。如预先开启原始数据库的病人主表的 cdc 功能并接入 debezium + kafka。然后由 gluttony 注册消费数据变更记录,实现实时注册 empi 的功能。再比如注册就诊表信息,在检测到就诊信息发生变更时,实现实时触发 cdss trigger 接口的业务逻辑。
empi 处理器与 trigger 处理器需要预先写入 gluttony 程序或通过 go 程序插件的方式提供。
通过对接 debezium + kafka 而不是由 gluttony 实现针对数据库的数据变更监控有以下优劣势。
提供的插件功能实现了将业务处理逻辑下发给实际的业务开发人员开发实现
ORACLE 截至目前也仍未调试通过
名称 | 解释 |
---|---|
DATABASE_URL | 项目管理数据库地址,uri 风格,暂时只支持 POSTGRESQL 数据库 |
KAFKA_HOST | 监听KAFKA发送的数据变更通知,如 localhost:9092,不需要协议名称如http |
OMIGA_HOST | 调用 OMIGA EMPI 注册接口,如 http://xx:5000 |
LOG_LEVEL | 日志输出级别,off, trace, debug, info, warn, error, fatal, panic,默认输出trace级别 |
CDSS_HOST | 调用 CDSS trigger 服务接口,如 http://xx:8088 |
DATASYNC_HOST | 调用 CDSS base data info sync 服务接口,如 http://xx:8088 |
CONNECT_HOST | 调用 KAFKA CONNECT,代理注册和删除连接器,如http://xx:8083 |
TOPIC_CONSUME_INTERVAL | 表示轮询访问 kafka topic 的毫秒数 |
EMPI_HOST | EMPI 地址,如 http://empi-demo-1802-develop.sy,最终调用请求 api/client/patient/add 地址 |
drop schema if exists cdc CASCADE;
create schema cdc;
create table cdc.consumer
(
id serial not null
constraint consumer_pk
primary key,
name text,
conn_string text,
data_source text,
capture_schema text,
capture_table text,
topic text,
"group" text,
handler_func text,
global_key text[],
is_valid boolean,
count bigint,
creation_time timestamp,
configuration jsonb
);
create unique index consumer_name_uindex
on cdc.consumer (name);