Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库
本文主要介绍Python使用ORM框架SQLAlchemy操作Oracle数据库。
1. 安装Oracle Instant Client
2. 安装依赖库
使用以下命令来安装SQLAlchemy和cx_Oracle库:
pip install SQLAlchemy
pip install cx_Oracle
3.创建引擎并进行增删改查操作
Springboot使用pdfbox提取PDF图片
本项目主要介绍Springboot项目通过使用PDFBox的PDFRenderer类将PDF文档转换为图像。同时会介绍在开发和使用过程中遇到的pdf转换问题和优化方案
Springboot实现pdf的分片加载功能
主要是解决大体积pdf在线浏览加载缓慢,影响用户体验的问题。以及实现了分片加载后的,首次加载时自动加载了全部的pdf分片,导致浏览器报出内存不足的问题
技术栈为:SpringBoot、Vue、pdfjs
主要核心思路:前端请求时请求头附带请求范围range及读取大小,后端根据请求头返回相应的pdf文件流
适合人群:具有后端基础、并且对springboot项目有所了解的开发人员
实现效果:实现了pdf分片加载、首次加载时自动加载了全部的pdf分片,导致浏览器报出内存不足的问题和按需加载
欢迎来私信交流技术方面的问题
本人原文链接:https://blog.csdn.net/qq_29864051/article/details/130742657
springboot集成canal-adapter实现项目中对于数据库数据监听和自定义消费
本项目是springboot集成canal-adapter实现项目中对于数据库数据监听和自定义消费
canal基于MySQL数据库增量日志解析,提供增量数据订阅和消费,是阿里开源CDC工具,它可以获取MySQL binlog数据并解析,然后将数据变动传输给下游。基于canal,可以实现从MySQL到其他数据库的实时同步
MySQL主备复制原理
MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看)
MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)
MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据
canal 模拟 `MySQL slave 的交互协议`,伪装自己为 MySQL slave ,向 MySQL master 发送`dump` 协议
MySQL master 收到 `dump` 请求,开始推送` binary log `
canal1.1.5版本,包含服务端、客户端、源码
主要用于访问github下载时速度过慢的使用
重点优化MQ发送的性能,单topic最高峰值可支持3~8万的rps,接近数量级上的性能提升 #2258
文档可参考:Canal-MQ-Performance
MQ发送特性支持
新增rabbitmQ的MQ发送支持 #2156
支持不同topic设置不同的分区数 #2173
rocketMQ新增tag属性的定义 #3438
参数配置支持env环境变量 #3450
多语言客户端,新增Rust
canal Rust客户端:[https://github.com/laohanlinux/canal-rs]
新增Adapter的自持,比如es7
新增更灵活的消息过滤能力,可以指定是否过滤Insert/Update/Delete #3452
重要优化
切换fastsql为druid 1.2.6版本,修复已知的MySQL DDL解析问题,#2168 #2766 #2828 #3428 #2954
新增database.hash的开关控制,用于满足不同业务表针对相同主键值路由到相同分区 #2248
MQ消息发送(比如Kafka/RocketMQ),修复线程池
数据恢复-帮助硬盘损坏的数据备份!
数据恢复-帮助硬盘损坏的数据备份!
dbforge的安装调试教程
主要用于数据库的函数和存储过程的debug,快速排除问题