iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >pgsqlbinlog监听功能点解析
  • 496
分享到

pgsqlbinlog监听功能点解析

pgsqlbinlog监听pgsqlbinlog 2023-02-14 12:02:14 496人浏览 泡泡鱼
摘要

目录引言功能点机器宕机,能支持断点续接如果监听的表 长时间没有数据变动,delay_size 会变大每次binlog传的size 太多,导致服务器处理不过来对多个表的监听,应该只有一

引言

监听Mysql binlog 大家都知道canal,但是如果是pglog呢,先百度

也就这个靠点谱,文章 没有我想要的demo

去官网看看debezium.io/

其中这个 网址给了demo 但是不能直接用于生产

功能点

首先 pglog binlog监听需要满足哪些功能点

机器宕机,能支持断点续接

进行磁盘持久化

如果监听的表 长时间没有数据变动,delay_size 会变大

//设置心跳时间,就算没有数据 也会保持心跳
props.setProperty("heartbeat.interval.ms", "20000");
for (ChangeEvent<String, String> r : records) {
    try {
        if (log.isDebugEnabled()) {
            log.debug("{}\n{}", r.key(), r.value());
        }
        if (r.value() != null && r.value().startsWith("{"ts_ms")) {
            continue;
        }
        xxx 具体数据处理
    } catch (Exception e) {
        log.error("PGLog-binlog param:[{}]", r, e);
    }
}

心跳这个是 当时上生产的时候,突然发现没有数据变更的时候 ,有报警,说delay了。。。这顿害怕

大概意思

数据库中有许多更新正在被跟踪,但只有极少数更新与连接器正在为其捕获更改的表和模式相关。这种情况可以通过周期性的心跳事件轻松解决。设置heartbeat.interval.ms连接器配置属性。

由于WAL由所有数据库共享,因此使用的WAL数量趋于增长,直到Debezium为其捕获更改的数据库触发事件。为了克服这一点,有必要:使用heartbeat.interval.ms连接器配置属性启用周期性心跳记录生成。定期从Debezium正在捕捉变化的数据库中发出更改事件。

其中

if (r.value() != null && r.value().startsWith("{"ts_ms")) {
    continue;
}

这是因为 如果没有数据来的话,会是ts_ms 开头的,代表,没有新数据

每次binlog传的size 太多,导致服务器处理不过来

props.setProperty("max.batch.size", "200");

对多个表的监听,应该只有一个流进行监听

props.setProperty("table.include.list", schs.stream().map(BinloGConfig::getSch).map(a -> tables.stream().map(b -> a + "." + b).map(String::valueOf).collect(Collectors.joining(","))).map(String::valueOf).collect(Collectors.joining(",")));

希望磁盘持久化offset,保持数据的正确性

props.setProperty("snapshot.mode", "never");

小工具

查询数据库 offset推迟多少

select pg_replication_slots.*, 
pg_current_wal_lsn(), 
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_insert_lsn(), 
restart_lsn)) as delay_size 
from pg_replication_slots;

这个工具在生产已经实践稳定,可以直接使用,有问题 可以评论

代码 GitHub.com/a25017012/y…

以上就是pgsql binlog监听功能点解析的详细内容,更多关于pgsql binlog监听的资料请关注编程网其它相关文章!

--结束END--

本文标题: pgsqlbinlog监听功能点解析

本文链接: https://www.lsjlt.com/news/196000.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pgsqlbinlog监听功能点解析
    目录引言功能点机器宕机,能支持断点续接如果监听的表 长时间没有数据变动,delay_size 会变大每次binlog传的size 太多,导致服务器处理不过来对多个表的监听,应该只有一...
    99+
    2023-02-14
    pgsql binlog监听 pgsql binlog
  • pgsql binlog监听功能点解析
    目录引言功能点机器宕机,能支持断点续接如果监听的表 长时间没有数据变动,delay_size 会变大每次binlog传的size 太多,导致服务器处理不过来对多个表的监听,应该只有一个流进行监听希望磁盘持久化offset...
    99+
    2023-02-14
    pgsqlbinlog监听 pgsqlbinlog
  • 阿里云服务器监听8080功能详解
    在搭建网站或者开发过程中,我们经常会遇到需要监听8080端口的问题。那么,阿里云服务器是如何监听8080功能的呢?本文将对此进行详细介绍。 阿里云服务器是一款强大的云计算产品,它提供了丰富的功能和接口,使得用户可以轻松地在云上搭建网站或者...
    99+
    2023-11-06
    阿里 详解 功能
  • Java Spring 事件监听详情解析
    目录前言需求背景事件概念定义组成事件实现时序图前言 前段时间因为工作的需要用到Spring事件,翻翻文档将功能实现了,但是存在少许理解不畅的地方,今天有空来梳理梳理。 需求背景 叶子...
    99+
    2024-04-02
  • 深入解析WordPress:功能与特点分析
    WordPress 是一款功能强大的开源内容管理系统(Content Management System,CMS),广泛应用于网站建设和博客发布。它具有丰富的功能和特点,成为许多用户选...
    99+
    2024-03-01
    功能 特点
  • SpringBoot利用切面注解及反射实现事件监听功能
    目录前言效果图监听原理核心源码源码地址前言 当某个事件需要被监听的时候,我们需要去做其他的事前,最简单的方式就是将自己的业务 方法追加到该事件之后。 但是当有N多个这样的需求的时候我...
    99+
    2024-04-02
  • vue数据监听解析Object.defineProperty与Proxy区别
    目录前言Object.defineProperty 与 Proxy 的区别在使用上的差异总结与思考前言 总能深深感觉到自己能力有限,写这篇文章的目的纯粹是因为发现在实际工作中,和一些...
    99+
    2023-03-13
    vue数据监听 Object.defineProperty区别Proxy
  • 解析Spring事件发布与监听机制
    前言 Spring 提供了 ApplicationContext 事件机制,可以发布和监听事件,这个特性非常有用。 Spring 内置了一些事件和监听器,例如在 Spring 容器启...
    99+
    2024-04-02
  • Android App内监听截图加二维码功能代码
    Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,当发现用户在我们的app内进行了截屏操作时,进行对图片的二次操作,例如添加二维码,公司logo等一系列*。项目地址测试截图:截...
    99+
    2023-05-30
    android app 二维码
  • Java基于servlet监听器实现在线人数监控功能的方法
    本文实例讲述了Java基于servlet监听器实现在线人数监控功能的方法。分享给大家供大家参考,具体如下:1、分析:做一个网站在线人数统计,可以通过ServletContextListener监听,当Web应用上下文启动时,在Servlet...
    99+
    2023-05-30
  • SpringBoot深入分析讲解监听器模式上
    目录1、事件ApplicationEvent2、监听器ApplicationListener3、事件广播器ApplicationEventMulticaster 注:图片来源于网络 ...
    99+
    2024-04-02
  • 如何进行Oracle监听器日志的解析
    如何进行Oracle监听器日志的解析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 ////////////...
    99+
    2024-04-02
  • SpringBoot深入分析讲解监听器模式下
    我们来以应用启动事件:ApplicationStartingEvent为例来进行说明: 以启动类的SpringApplication.run方法为入口,跟进SpringApplica...
    99+
    2024-04-02
  • vue项目中销毁window.addEventListener事件监听解析
    目录销毁window.addEventListener事件监听window.addEventListener监听scroll事件解决办法使用throttle出现的新问题最后代码销毁w...
    99+
    2024-04-02
  • js前端埋点监控解析
    目录一、为什么需要埋点&监控二、埋点&监控能做什么数据监控性能监控异常监控三、目前埋点方案&后续演进方向现有方案(1) 页面进入(pageIn)(2) 事件触...
    99+
    2024-04-02
  • Java键盘事件处理及监听机制解析
    文章目录 概念KeyEventKeyListener代码演示总结 概念 Java事件处理采用了委派事件模型。在这个模型中,当事件发生时,产生事件的对象将事件信息传递给事件的监听者进行处理。在Java中,事件源是产生事件的对象,...
    99+
    2023-08-20
    java 计算机外设 jvm 开发语言
  • Vue页面监听用户预览时间功能怎么实现
    这篇文章主要介绍“Vue页面监听用户预览时间功能怎么实现”,在日常操作中,相信很多人在Vue页面监听用户预览时间功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vu...
    99+
    2024-04-02
  • Android开发中怎么样实现屏幕切换监听功能
    本篇文章为大家展示了Android开发中怎么样实现屏幕切换监听功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。由于屏幕切换会调用activity的各个生命周期,需要在manifest的activi...
    99+
    2023-05-31
    android roi
  • 利用servlet如何实现一个监听在线人数功能
    这篇文章将为大家详细讲解有关利用servlet如何实现一个监听在线人数功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体内容如下ServletContext事件监听器---->针对...
    99+
    2023-05-31
    servlet 监听
  • Vue页面监听用户预览时间功能如何实现
    这篇文章主要介绍“Vue页面监听用户预览时间功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue页面监听用户预览时间功能如何实现”文章能帮助大家解决问题...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作