当前位置: 首页 > news >正文

tp做网站境外网站icp备案申请表

tp做网站,境外网站icp备案申请表,招聘信息网站怎么做,可视化app开发工具安卓版1. 需求概述 业务开发中经常需要根据一些数据变更实现相对应的操作。例如,一些用户注销自己的账户,系统可以给用户自动发短信确认,这时有两种解决方案,一种是耦合到业务系统中,当用户执行注销操作的时候,执…

1. 需求概述

业务开发中经常需要根据一些数据变更实现相对应的操作。例如,一些用户注销自己的账户,系统可以给用户自动发短信确认,这时有两种解决方案,一种是耦合到业务系统中,当用户执行注销操作的时候,执行发短信的操作,既是是通过MQ也是要耦合业务代码的,第二种方案基于数据库层面的操作,通过监听binlog实现自动发短信操作,这样就可以与业务系统解耦。
本示例主要基于mysql-binlog-connector实现对数据库的监听,并集成springboot的方案。

2. 技术选型

基于binlog实现数据同步的方案有两种:
一种是mysql-binlog-connector,另一种是ali的canal。
mysql-binlog-connector:是通过引入依赖jar包实现,需要自行实现解析,但是相对轻量。
canal:是数据同步中间件,需要单独部署维护,功能强大,支持数据库及MQ的同步,维护成本高。
根据实际业务场景,按需索取,业务量小,业务简单,轻量可以通过mysql-binlog-connector,业务量大,逻辑复杂,有专门的运维团队,可以考虑canal,比较经过阿里高并发验证,相对稳定。

3. 方案设计

1.支持对不同数据库,不同表的配置监听。
2.封装细节数据库,对外提供统一监听。
3.讲结果集封装位方便操作数据结构。
5.讲监听信息统一放入阻塞队列。
6.实现多线程消费。

4. 配置验证

1、正常开启状态

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.02 sec)
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       154 |
+------------------+-----------+
1 row in set (0.09 sec)

2、权限不足情况

mysql> show binary logs;
1227 - Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation

3、未开启状态(默认情况下是不开启的)

mysql> show binary logs;
ERROR 1381 - You are not using binary logging

5. 代码示例

详见工程代码:https://github.com/xzxiaoshan/mysql-binlog-demo

5.1. 事件中断问题

当binlog服务上线之后,服务默认会在log文件的最新position处进行监听。格式如下:

Connected to 192.168.10.220:3306 at test-bin.000557/270069874 (sid:65535, cid:1089065)

其中 test-bin.000557 是磁盘上的 binlog 文件名称,270069874 是对应该 binlog 文件中的 position 位置。

但由于binlog服务下线,重新启动后,默认又开始在最新position处进行监听,会丢失一不分binlog的事件,所以每次事件均需要记录当前的position位置。
当重新启动服务时,使用记录的position位置初始化BinaryLogClient。

注:单实例可以使用记录到本地文件的方式存储,如果需要考虑多实例分布式问题则需要考虑存储到redis等共享存储中。因为事件属于高频操作,所以建议使用redis或者MQ这种写入速度较快的存储方式。

5.2 文件轮换问题

当有人发出一个FLUSH LOGS语句或者当前二进制日志文件变大超过max_binlog_size时,binlog的文件名会重新一个新的文件,所以我们也要监听ROTATE事件并进行binlogFileName的记录。

记录binlogFileName和Position的代码详见文件 SaveBinlogFilenameAndPositionListener.java


(END)

http://www.sczhlp.com/news/109018/

相关文章:

  • SARIMA算法
  • 【IEEE出版|EI检索稳定】第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • 模板做网站上传wordpress网站界面设计
  • 宁乡网站开发搭建什么网站最赚钱
  • 鞋材 技术支持 东莞网站建设网站备案 申请
  • 网站开发一键上架淘宝网站搭建东莞
  • 北京做网站制作的公司什么是二级网站推广
  • 取证 - voasem
  • 浏览器怎么打开网站服务器比较好的开源cms系统
  • 专门做书籍设计的网站工业设计就业
  • 网站tkd怎么做制作网站首先要知道什么
  • 移动网站源码wordpress 获取菜单id
  • 网站运营优化辽宁沈阳建设工程信息网站
  • 免费网站怎么做出来的不锈钢网
  • 网站分享插件怎么做wordpress被封锁了
  • 许昌知名网站建设价格安康公司做网站
  • 浏览小城镇建设的网站网站基础建设和管理
  • django对接drf-spectacular替代swagger
  • 可画
  • Symbol VBRK: Invalid data type u SAP 事务成功新号码获取到 但是提交后提示失败如何处理
  • 苏州网站建设方案外包wordpress上传
  • 网站如何提升用户体验镇江网站seo公司
  • 网站备案后的标识做全屏的网站 一屛多高
  • 天津网站排名提升电子购物网站开发
  • 网站免费制作教程应用软件商城
  • 广州做企业网站哪家好宣传片拍摄如何计费
  • 定制网站开发成本估算表八戒影视大全
  • 呼和浩特网站建设SEO优化colorway wordpress
  • 上海 网站建设 500强下载网站专用空间
  • 做网站如何文字链接文字WordPress批量修改用户