[Kogel.Subscribe.Mssql]SQL Server增量订阅,数据库变更监听

此框架是SQL Server增量订阅,用来监听增删改数据库数据变更

目前仅支持SQL Server,后续会支持MySQL和Oracle,Nuget上可以下载安装

或者使用Nuget命令添加包

dotnet add package Kogel.Subscribe.Mssql --version 0.0.0.1

 可以用来处理DB主从同步,跨库同步,数据备份,同步ES,缓存刷新等等 

(一)定义需要监听表的实体类 

887a04377c80e25d3a82d168361d66b8.png

[Display]和[Identity]属于Kogel.Dapper.Extension的特性如果[想了解更多请点击],[ElasticsearchType]和[Nest.PropertyName]属于Elasticsearch特性,如果没用到可以忽略 

(二)定义表订阅

262dbfbc4957f11b24043470e3e0d3cc.png

如果需要此表对应多张分表可以设置

ac08cc219a1fa929f0b1b088f67cf046.png

(1).如果想推送订阅到RabbitMQ中

9ba9e4761c7abda3e797e652a5d1375c.png

可以通过BuildTopic设置交换机名称

builder.BuildTopic("kogel_subscribe_order_detail")

(2).如果想推送订阅到Kafka中

builder.BuildKafka(new ProducerConfig
            {
                BootstrapServers = "localhost:9092",
                Acks = Acks.None
            })

可以通过BuildTopic设置Topic名称

builder.BuildTopic("kogel_subscribe_order_detail")

(3).如果想推送订阅到Elasticsearch中

builder.BuildElasticsearch(new ElasticsearchConfig<OmsOrderDetail>
   {
                Settings = new Nest.ConnectionSettings(new Uri("http://localhost:9200/")),
 })

如果有设置Basic授权

builder.BuildElasticsearch(new ElasticsearchConfig<OmsOrderDetail>
{
                Settings = new Nest.ConnectionSettings(new Uri("http://localhost:9200/"))
                    .BasicAuthentication("账号","密码")
  })

如果想根据自己定义的分片逻辑插入到多个ES索引中可以通过WriteInterceptor

62b60e0d98548083ab3cb1f233305f3e.png

并且ES索引不存在的时候会动态创建 

(4).如果想自定义实现订阅逻辑,在可以Subscribe订阅类中重写

afe033ca9f62d81d95b872df2085b8da.png

以上订阅的优先级:

abeb46fc2db587f4bbdec7d3299a1559.png

(三)订阅启动

启动监听所有继承自Subscribe<T>的类,在应用程序启动时执行即可

ApplicationProgram.Run();

启动前需要确保DB已经开启了SQL Server Agent

windows环境可以通过cmd命令开启

net start SQLSERVERAGENT

linux或docker环境可以通过以下命令开启

/opt/mssql/bin/mssql-conf set sqlagent.enabled true

如果是基础BaseSubscribe<T>中间基类需要定义成abstract,例如

5b6cb56e107a86b03b3784a53d6f24ed.png

关闭监听,在应用程序退出时执行即可

ApplicationProgram.Close();

(四)其他配置

5711838e3cfe98ad42edb368c4aa22b4.png

框架开源,完整框架源码可以去Github上下载:

https://github.com/a935368322/Kogel.Subscribe.Mssql

如有问题也可以加QQ群讨论:

技术群 710217654

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值