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

杭州英文网站建设网站建设项目考察范文

杭州英文网站建设,网站建设项目考察范文,网站建设需要掌握什么技术,忻州免费建网站Debezium日常分享系列之:Debezium 3.1.0.Beta1发布 新特性和改进Debezium 平台的首次发布Percona 的最小锁定新的 Oracle 源信息 SCN 和时间戳字段Vitess Epoch/零日期列解析的变化Vitess 二进制排序的 tiny、medium 和 long 文本列的变化CloudEvent traceparent 支…

Debezium日常分享系列之:Debezium 3.1.0.Beta1发布

  • 新特性和改进
    • Debezium 平台的首次发布
    • Percona 的最小锁定
    • 新的 Oracle 源信息 SCN 和时间戳字段
    • Vitess Epoch/零日期列解析的变化
    • Vitess 二进制排序的 tiny、medium 和 long 文本列的变化
    • CloudEvent traceparent 支持
    • WASM 转换中的模式访问支持
    • 条件性包含 connect-base 镜像中的组件
    • PubSub 源支持并发和压缩
    • PubSub 源支持区域性端点
    • RabbitMQ 源支持基于键的路由

此版本包含了许多特性和改进,包括但不限于 Debezium Server UI 的首个官方发布、CloudEvent traceparent 支持、Debezium 的 PubSub 和 RabbitMQ 源的新功能、WASM 转换中的模式访问,以及许多其他特性。让我们深入了解这些新特性和改进。

新特性和改进

升级到 Debezium 3.1.0.Beta1 在多个组件中引入了若干新特性和改进:

Debezium 平台的首次发布

一年前,我们开始了这一令人难以置信的旅程,旨在为 Debezium Server 创建一个现代化的用户界面,以简化在 Kubernetes 上部署 Debezium 的过程。我们很高兴地宣布,Debezium 3.1 将是这一多年努力的首个官方发布版本。

新的 Debezium 平台提供了一种基于现代管道的方法,可以在几秒钟内设计源和目标配置、转换链等。可以使用 Helm 按如下方式安装 Debezium 平台

helm install debezium-platform --set domain.url=<your-domain> --version 3.1.0-beta1 oci://quay.io/debezium-charts/debezium-platform

此外,此版本特别为用户界面添加了一些最终的完善功能,包括新的搜索/列表视图切换、显示应用的转换和编辑连接器管道,以及在配置管道时为有经验的用户提供智能编辑器。

Percona 的最小锁定

为 MySQL Percona 用户,Debezium 添加了一个新的 snapshot.locking.mode,以减少在快照过程中发生的锁定量。新的模式 minimal_percona_no_table_locks 与 minimal_percona 提供相同的语义,但额外省略了表级锁定。这为一些不允许表锁定的环境提供了一个替代方案。

新的 Oracle 源信息 SCN 和时间戳字段

Debezium 为 Oracle 变更事件的源信息块添加了几个新字段,包括:

  • commit_ts_ms这指定了事件的事务提交的时间(以毫秒为单位)。
  • start_scn这指定了事件的事务中观察到的第一个事件的 SCN。
  • start_ts_ms这指定了事件的事务中第一个事件由用户更改的时间(以毫秒为单位)。

这些新字段是可选的,因此使用模式注册表的用户应发现这些更改是向后兼容的。

Oracle 的 SCN 值不是唯一的,因此多个事件可能具有相同的 SCN 值和时间戳。在使用这些值进行任何类型的事件排序时应谨慎。

Vitess Epoch/零日期列解析的变化

当 Vitess 值转换器发出一个设置为零日期值的日期列时,根据列的可选性,该字段可能会被发出为 null 或 Unix 元年。这为消费者应用程序创建了一个问题,因为它们无法区分元年值是真正的元年值还是因为源列是零日期而产生的哨兵值。

Debezium 3.1 为 Vitess 用户引入了一个新的配置属性:override.datetime.to.nullable。

默认值为 false,继续使用旧的行为发出日期列,即如果列不为 null,则使用 Unix 元年而不是 null。这意味着消费者将继续无法区分这两种情况。

当设置为 true 时,所有日期和 datetime 列都被设为可选,这意味着无论源数据库中列的可选性如何设置,它们都可以被序列化为 null。这意味着如果源系统中设置了一个零日期,连接器将始终使用 null 来表示这种情况,而不再使用基于元年的值,除非字段被填充了一个实际的非零日期值。

Vitess 二进制排序的 tiny、medium 和 long 文本列的变化

在 Debezium 3.1.0.Alpha2 中,我们引入了一个更改,将 Vitess 二进制排序的文本、枚举和集合列类型作为字符类型字段在变更事件中发出。这不幸地只涵盖了部分列类型,而在此次发布中,我们扩展了这一范围,包括 tinytext、mediumtext 和 longtext 类型)。

请注意,如果使用模式注册表,二进制排序的文本、tinytext、mediumtext、longtext、枚举和集合列类型在序列化方式上的变化可能会引入模式的向后兼容性问题。

CloudEvent traceparent 支持

Debezium 的 CloudEvents 支持已更新,增加了对 traceparent 属性的支持,这使得可以与 OpenTelemetry 集成,将跟踪详细信息作为事件的一部分传递。

通过将 opentelemetry.tracing.attributes.enabled 配置属性设置为 true,并在 metadata.source 中包含 traceparent:header,这些信息将被提供给 CloudEvents 转换器。

可以自定义转换器填充字段的方式,通过更改默认值并指定相应头部中的字段值。例如:

{"value.converter.metadata.source": "value,id:header,type:header,traceparent:header,dataSchemaName:header"
}

WASM 转换中的模式访问支持

现在,您可以使用 WASM 转换来在 TinyGo 程序中访问一些模式细节。新增了两个方法来支持时间:GetSchemaName 和 GetSchemaType。

TinyGo 模式访问器示例:

package mainimport( "githu.com/debezuim/debezium-smt-go-pdk" )//export process
func process(proxyPtr uint32) uint32 {var valueSchemaType = debezium.GetSchemaName(debezium.Get(proxyPtr, "valueSchema"))var opType = debezium.GetSchemType(debezium.Get(proxyPtr, "valueSchema.op"))// Filter where schema type or opType matchreturn debezium.SetBool(valueSchemaType == "dummy.Envelope" || opType == "string")
}func main() {}

条件性包含 connect-base 镜像中的组件

Debezium 的 kafka 和 connect 镜像都源自一个名为 connect-base 的单一通用镜像。默认情况下,这个基础镜像会安装 Apicurio、Jolokia 和 OpenTelemetry 依赖。这对于测试目的非常有用,但如果您希望使用 Debezium 的镜像作为自己项目的基镜像,可能希望在这些依赖对您的环境不必要时将其省略。

现在,connect-base 镜像可以有条件地省略这些依赖。可以通过将 OTL_ENABLED、APICURIO_ENABLED 和 JOLOKIA_ENABLED 环境变量设置为 no,在构建镜像时省略这些依赖,从而创建更小的镜像。

默认情况下,connect-base 镜像将继续安装这些依赖,因此开箱即用时镜像的行为不会发生变化

PubSub 源支持并发和压缩

为了提高与 Google PubSub 的吞吐量和容量,我们引入了几个新的配置属性,以支持 PubSub 的并发和压缩。这些新的配置属性可以在任何现有的 PubSub 配置中使用。

pubsub.concurrency.threads
这指定了用于向 Google PubSub 发布消息的线程数。这可以用来扩展或限制由 Google PubSub 客户端库创建的 PubSub 线程数量。默认情况下,PubSink 使用客户端库的默认行为。

pubsub.compression.threshold.bytes
当设置为 0 或更大的值时,PubSub 源启用可选的压缩,以传输事件批次到 PubSub 端点。是否使用压缩由提供的阈值定义。如果批次的总字节数小于阈值,将不使用压缩。如果批次的总字节数等于或大于阈值,则使用压缩。

PubSub 源支持区域性端点

在使用 PubSub 源时,pubsub.address 通常不足以满足生产系统中可能需要与特定地区(即区域)端点交互的需求。为了解决这一问题,Debezium 3.1 引入了一个新的配置属性,pubsub.region。

新的 pubsub.region 属性允许指定要连接的 Google Cloud 区域,例如 us-central1 或 asia-northeast1。指定后,Debezium 将使用格式为 <‍region‍>-pubsub.googleapis.com:443 的区域性端点。这使得可以连接到特定区域的端点,而不是全局端点。

pubsub.region 和 pubsub.address 配置属性是互斥的。如果在配置中提供了 pubsub.address,pubsub.region 将被忽略。

RabbitMQ 源支持基于键的路由

在 Debezium 3.1 中,我们改变了使用配置路由事件的方式。这一新方法采用了基于策略的设计,保留了旧的行为并引入了新的基于键的路由机制。

首先,rabbitmq.routingKeyFromTopicName 已被弃用,并将在未来的版本中移除。此功能已合并到新的 rabbitmq.routingKey.source 配置属性中,可以设置为以下值之一:

static
使用静态路由源时,RabbitMQ 源将使用在 sink 配置中指定的 rabbitmq.routingKey 静态值。由于此值在配置中设置并在 sink 启动时读取,因此该值在整个运行期间保持不变。

topic
使用主题路由源时,RabbitMQ 源将根据目标主题名称生成路由键。此模式替换了旧的 rabbitmq.routingKeyFromTopicName 配置属性行为,该属性现已弃用。

key
使用新的键路由源时,RabbitMQ 源将根据事件的记录键生成路由键。这提供了灵活性,可以控制 RabbitMQ 使用原始的 Debezium 变更事件的键,或者在将事件发送到 RabbitMQ 之前通过自定义转换来更改事件的键。

http://www.dtcms.com/a/601667.html

相关文章:

  • 济南建设工程信息网站手机刷网站排名软件
  • docker搭建Elasticsearch+Kafka+Logstash+Filebeat日志分析系统
  • Linux离线安装Python环境
  • d47:Elasticsearch入门
  • 李宏毅机器学习笔记
  • 惠州专业网站制作公司wordpress 图片 本地
  • 毕业设计如何用dw做网站wordpress移动顶部导航菜单
  • 安科瑞Acrel-2000MG 储能能量管理系统是什么?什么场景需要用到?
  • 政策加码:中小学人工智能教育新图景
  • 全域释放活力,增长质效兼收——2025年“双11”大促第一周期观察
  • 上海华东建设发展设计有限公司网站网址域名ip
  • 平邑网站制作在线做头像的网站有哪些
  • 沈阳工务建设集团网站淘客cms建站系统
  • 深度学习_神经网络中最常用的学习率优化算法
  • INT301 Bio-computation 生物计算(神经网络)Pt.7 时间序列预测和Elman网络
  • 为什么“随机变量”是个函数?为什么“函数相加”会产生高斯分布?
  • 基于 Tuya.AI 开源的大模型构建智能聊天机器人
  • dw怎么切片做网站宁波正规网站建设使用方法
  • 软件网站建设基本流程哈尔滨建筑专业网站
  • 每日算法刷题Day85:11.12:leetcode 动态规划6道题,用时1h40min
  • Citadel SDE 面试复盘:直面硬核算法与思维挑战的双重压力
  • 【Vue 功能总结】Vue 登录功能实现:从校验到 Token 存储
  • 网站的域名在哪里看怎么查询公司的营业执照
  • 浏网站建设补贴农村服务建设有限公司网站
  • 自然语言处理(NLP)算法原理与实现--Part 1
  • 不止于 “看”:VR 地震模拟平台的防灾科普新表达
  • 临沂网站建设团队wordpress修改固定链接重定向
  • 查看iOS App实时日志的正确方式,多工具协同打造高效调试与问题定位体系(2025最新指南)
  • 怎么用手机做抖音上最火的表白网站网站制作公司哪家好一点
  • 深圳市顺建建设工程有限公司网站html5微网站demo