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

基于 TDMQ for Apache Pulsar 的跨地域复制实践

导语

自2024年9月6日起,TDMQ Pulsar 版专业集群支持消息、元数据两级跨地域复制功能,消息级复制解决用户全球地域的数据统一归档问题,元数据级复制提供解决用户核心业务跨地域容灾的场景。

用户在跨地域场景遇到的疑问和挑战

在跨地域相关场景下,通常有两大类原始需求:

跨地域容灾

TDMQ Pulsar 版目前支持在同一地域下进行跨可用区部署,这种部署方式能够在一定程度上提高系统的可用性和容灾能力。

在这里插入图片描述

如上图所示,在广州地域内的3个可用区部署了 TDMQ Pulsar 版集群。如果广州的某个可用区无法使用,系统仍然可以依靠其他两个可用区继续提供服务。

然而,金融级客户通常需要更高的容灾标准,希望能够通过跨地域部署来实现跨地域的容灾,以确保在极端情况下,比如发生自然灾害或网络故障时,也能保证业务的连续性和数据的安全性。

在这里插入图片描述

如上图展示的架构,用户业务可以在主地域进行日常的生产和消费,同时在其他地域进行数据备份和灾备。这种架构能够实现当一个数据中心发生故障时,迅速切换到另一个地域的数据中心,确保业务不中断,以保护数据的完整性和可用性。

全球数据归档

这类需求一般来源于国际站用户,例如某客户希望实现流数据的全球跨地域传输和统一数据归档 。具体场景如下图:

在这里插入图片描述

不同地域的生产者各自在本地生成数据,并将这些数据发送到对应地域的 TDMQ Pulsar 版集群,这些集群将接收到的数据传输到数据中心的 TDMQ Pulsar 版集群,数据中心收集来自所有地域的数据后,将其聚合在同一个 Topic 中,之后消费者可以从聚合后的数据中读取和处理信息,实现数据的统一归档。

TDMQ Pulsar 版跨地域复制功能介绍

基于以上两类用户需求,TDMQ Pulsar 版提供了跨地域复制的解决方案。

TDMQ Pulsar 专业版基于 GEO Replication 方案,实现跨地域的集群复制,专业集群支持两种类型的复制:

  • 元数据级:用于满足用户核心业务跨地域容灾需求,元数据级复制集群的命名空间、Topic、订阅、角色等内容。

  • 消息级:解决用户全球地域的数据统一归档问题,消息级复制消息内容、消息顺序、标签、消息类型等。

在这里插入图片描述

元数据级复制

元数据级复制用于应对跨地域容灾场景,当发生地域级灾难时,客户能够快速迁移业务,确保业务的连续性。

在这里插入图片描述

在正常场景下:业务在 A 地域访问 TDMQ Pulsar 版服务端,用户需要完成两个前置动作:

  1. 建立跨城网络的连接,通过云联网打通跨地域的 VPC 网络;

  2. 建立两地的集群元数据同步。

异常发生时:TDMQ Pulsar 版提供域名解析切换功能,将原 A 地域使用的域名指向到目标容灾 B 地域的集群,这样做可避免在客户端修改接入点地址,而实现对容灾 B 地域的集群连接方案,保障业务的延续性。

A 地域异常恢复后

用户首先需要判断是否要将 B 地域所产生的消息回写至 A 地域,以确保消息的完整性。

接着,用户在 B 地域的集群进行接入点的域名解析切回,切回操作执行后,客户端即可正常访问 A 地域。

消息级复制

TDMQ Pulsar 版消息级复制用于解决数据统一归档问题。

在这里插入图片描述

以上海地域复制到北京地域为例。

上海地域的 Pulsar 集群中运行 Replicator 组件,该组件中会启动 Producer-R,绑定了北京地域对端集群的 Topic1,将消息数据用生产者的方式发送到北京机房。具体的复制过程如下:

  1. Producer1 生产消息到上海集群 Topic1;

  2. 上海集群把消息持久化到 BookKeeper;

  3. BookKeeper 返回成功后把消息推给 Replicator 的 Cursor;

  4. Replicator 的 Cursor 通过 Producer-R 把消息发给北京集群 Topic1;

  5. 北京集群 Topic1 写入 BookKeeper 成功后给上海集群 Replicator 的 Cursor 回复 ACK,上海机房 Cursor 收到 ACK 后通过 Producer-R 推送下一条消息。

通过这种方式,上海集群的消息就可以被可靠地复制到北京集群,确保数据在两个地域之间的一致性和可用性。这种流程就实现了全球多个地点生成的数据, 能够集中在一个地点进行管理和处理,实现了数据归档操作。

跨地域复制使用指引

  1. 在目标复制地域创建专业集群,在集群购买界面,需要开启「跨地域复制」开关,并选择数据源集群;

  2. 通过控制台配置集群的复制链路:

    ● 复制链路名称:为同步链路定义一个名字。

    ● 链路类型:选择消息级。

    ● 源集群选择:选择要进行数据源的 TDMQ Pulsar 版集群。

    ● 目标集群选择:在不同地域选择创建好的目标集群,此处仅会显示「集群 ID」相同的集群。

    ● 复制级别:支持集群级、命名空间和 Topic 三个级别:

    ○ 集群级:适用于集群级的复制。○ 命名空间级:适用于两地集群日常都是活跃的,不同的命名空间分布在不同地域。○ Topic 级:跨地域复制的最小粒度。
    
  3. 创建完成后,消息级的复制任务会进入到监控界面,您可以查阅复制任务的事实复制速率、复制消息堆积等数据。

在这里插入图片描述

基于 TDMQ Pulsar 版在金融在线高并发场景的最佳实践

FiT 是腾讯公司提供移动支付与金融服务 的 综合业务平台。业务领域包括 移动支付、投资理财、民生服务和国际化等。

业务需求

FiT 在日常的交易流程中,需要通过 消息中间件 来实现上游和下游衔接,以实现广播、过滤、延迟推送等场景。由于 FiT 均是交易类场景,对消息产品的高并发、容灾均有非常高的要求。

TDMQ Pulsar 版解决方案

在应用实践上,用户选择了 TDMQ Pulsar 版这款产品。

  • 标准模型-发布订阅:使用标准的 pub - sub 模式,生产者生产一条消息,任意一个消费者成功消费即可。在部署方面,客户端的生产者和消费者均解耦部署。

  • 扩散模型:消息生产消费比例为 1:N ,将业务请求异步「扩散」到其他的多个SET中,实现一端生产,多端消费。

  • 限定模型-消息标签过滤+自动创建订阅:使用了 TAG 消息过滤的方式,限定消息只能在某一个客户端消费。消息标签过滤用于对某个 Topic 下的消息进行分类,例如交易流水 Topic 包含了下单流水、支付流水、发货流水等,业务若只想消费者订阅其中一种类别的流水,可在客户端进行 tag 的过滤。

  • 跨地域复制:通过配置复制关系,自动将消息复制到对端集群,当其中一个地域发生故障时,通过接入层的流量调度,将流量调度至另外一个集群。确保在发生灾难时,业务能够迅速恢复,保障业务的连续性,降低了灾难发生时的风险和损失。

在这里插入图片描述

用户评价

得益于 TDMQ Pulsar 高吞吐、低延迟的能力,FiT 金融产品业务迁移到 TDMQ Pulsar 后,消息从生产者到消费者的耗时缩短了大约80%,消息积压情况大大缓解,积压数量减少了70%。

相关文章:

基于 TDMQ for Apache Pulsar 的跨地域复制实践

导语 自2024年9月6日起,TDMQ Pulsar 版专业集群支持消息、元数据两级跨地域复制功能,消息级复制解决用户全球地域的数据统一归档问题,元数据级复制提供解决用户核心业务跨地域容灾的场景。 用户在跨地域场景遇到的疑问和挑战 在跨地域相关…...

无线通信感知/雷达系统算法专业技术栈

无论是在工业界还是在学业界,无线通信感知一体化都是一个热门的方向,作为一个24届毕业生,刚好处于行业当中,就总结一下自己浅薄认知下,自己觉得已经掌握或者应该掌握的技术栈和专业能力,与大家共勉。 Rada…...

离谱碾压!奇安信中标:高出第二名近70分!

2024年08月09日,广东省政务服务和数据管理局,近日发布了网络安全第三方服务(2024年)项目之关基检查及重要政务应用安全检查服务招标公告! 预算金额:2,896,200.00元,其中安全检查服务包&#xf…...

HOT 100(七)栈、堆、贪心算法

一、栈 1、每日温度 使用单调递减栈来解决。主要思路是遍历temperatures数组,利用栈来存储还没有找到比当前温度高的天数的索引。当遇到比栈顶索引所对应温度更高的温度时,就可以确定当前这一天的温度比之前那一天高。索引的差值就是等待的天数。 求一…...

速盾:高防服务器租用需要注意什么事项

在当今互联网时代,网络安全问题日益严峻。各种网络攻击手段层出不穷,给企业和个人的网站带来了巨大的安全威胁。为了保障网站的安全稳定运行,高防服务器成为了许多人的选择。而在租用高防服务器时,需要注意以下几个事项。 一、选择…...

【数据库】MySQL内置函数

本篇分享一些在MySQL中常见的一些内置函数,如日期函数,字符串函数和数学函数,以方便于操作数据库中的数据。 1.日期函数 我们先整体观察一下这些函数再讲解案例 日期函数使用起来都非常就简单 获得年月日: select current_dat…...

Promise查漏及回调地狱结构优化

目录 前言一、执行器函数的执行顺序二、如何在then()中抛出错误三、期约的"非重入"特性四、串行化期约五、应对回调地狱结语 前言 依据《JavaScript高级程序设计》对Promise期约相关进行查缺补漏. 一、执行器函数的执行顺序 执行器函数虽作为期约的参数, 却是期约的…...

SpringCloud-05 Resilience4J 服务降级和熔断

服务雪崩:指在多个服务之间存在依赖关系时,当一个服务发生故障或不可用时,导致其他服务也无法正常工作的情况。这种现象通常是因为服务之间的依赖关系过于紧密,当一个服务发生故障时,其他服务无法正确处理该服务的请求…...

哈希表、算法

哈希表 hash: 在编程和数据结构中,"hash" 通常指的是哈希函数,它是一种算法,用于将数据(通常是字符 串)映射到一个固定大小的数字(哈希值)。哈希函数在哈希表中尤为重要…...

变更AWS EC2 实例配置或实例类型

在本文中,九河云将带您了解如何更改由 Amazon Elastic Block Store (EBS) 支持的 Amazon Elastic Compute Cloud (EC2) 实例的类型。更改实例类型可以优化成本和性能,使其更符合您的应用程序需求。 准备工作 在开始之前,请确保您已完成以下…...

【前端】ref引用的作用

首先&#xff0c;我们要明确一点&#xff0c;使用vue的好处是&#xff1a; 想要减少开发者直接操作dom元素。使用组件模版&#xff0c;实现代码的服用。 ref的属性的实现是为了取代原生js中使用id、class等标识来获取dom元素。 helloworld组件 <template><div clas…...

运用Java实现倒计时功能

这个功能其实是比较好实现的&#xff0c;一般来说java中实现倒计时有两种方法&#xff1a; 1、使用 scheduledexecutorservice创建一个可重复执行的任务&#xff0c;直到时间到&#xff1a; ScheduledExecutorService 是 Java 中一种用于安排延迟或定期任务的工具。我们可以使…...

Vue 第三方调用若依系统实现系统单点登录

应用场景 甲方现有平台系统拟集成我方新开发系统&#xff0c;实现单点登录功能&#xff0c;即用户登录主平台后&#xff0c;无需重复登录即可无缝访问新系统&#xff0c;提升用户体验与操作效率。 解决方案 实现代码 前端 Step:1 新建ssoLogin.vue页面 <template><d…...

IP纯净度对跨境电商有哪些影响

在全球化贸易的浪潮中&#xff0c;跨境电商凭借其打破地理界限的能力&#xff0c;成为推动国际贸易的重要力量。然而&#xff0c;跨境电商的运营并非没有挑战&#xff0c;其中IP纯净度是影响其成功的关键因素之一。本文将探讨IP纯净度对跨境电商运营的多方面影响&#xff0c;并…...

docker-01 创建一个自己的镜像并运行容器

docker-01 创建一个自己的镜像并运行容器 前言 我们都知道使用Docker的镜像可以快速创建和部署应用&#xff0c;大大的节约了部署的时间。并且Docker 的镜像提供了除内核外完整的运行时环境&#xff0c;确保代码的环境一致性&#xff0c;从而不会在出现这段代码在我机器上没问…...

国产视频转换HDMI1.4转单/双MIPI DSI/CSI LT6911C芯片方案,带音频输出,QFN64封装 Lontium

LT6911C:HDMI 1.4 TO MIPI DSI/CSI 芯片简介&#xff1a; LT6911C是一款高性能的HDMI1.4转换器MIPI DSI/CSI芯片用于VR/智能手机/显示应用。对于MIPI DSI/CSI输出&#xff0c;LT6911C功能可配置单端口或双端口MIPIDSI/CSI 1高速时钟通道和1~4个高速数据通道最大1.5Gb/s/lane&am…...

亚马逊、沃尔玛、敦煌网、Target塔吉特、Temu环境搭建测评技术!

海外跨境电商各大主要平台正不断力推半托管模式&#xff0c;不断对商家开出众多吸引和扶持政策。全托管是指电商平台全面负责店铺的运营&#xff0c;包括仓储、配送、售后等&#xff0c;而商家主要负责提供货品。半托管模式则基本由商家自主经营&#xff0c;平台只负责仓配物流…...

yjs05——matplotlib画其他图像

不管是折线图还是散点图&#xff0c;饼状图&#xff0c;柱状图等&#xff0c;其流程都是 1.创建幕布 ❤2.画图画坐标补充信息 3.保存图像 4.展示图像 不同就是在画图时候的代码不太相同 折线&#xff1a;plt.plot(x,y) 散点&#xff1a;plt.scatter() 柱状图&#xff1a;plt.hi…...

【C#】添加临时环境变量

在C#中&#xff0c;可以通过System.Environment类来添加临时环境变量。临时环境变量只在当前进程中有效&#xff0c;进程结束后变量即失效&#xff0c;不会写入系统的Path中。 using System;class Program {static void Main(){// 设置临时环境变量Environment.SetEnvironment…...

物联网之ESP32与微信小程序实现指示灯、转向灯

MENU ESP32微信小程序 ESP32 代码 #include <WiFi.h> #include <WebServer.h> #include <ArduinoJson.h>const char* ssid "jifu"; const char* pass "2022xinchan!#"; const int dateTime 500; const int ledPin4 4; const int le…...

ICPC网络赛 以及ACM训练总结

一、训练反思 关于我自己暑假期间训练的反思&#xff0c;我承认无论是因为什么原因&#xff0c;我自己浪费我整整一个暑假的时间&#xff0c;暑假期间正是我们集训的关键时期&#xff0c;这期间没有任何的事情来打扰我们学习&#xff0c;而我却熬夜&#xff0c;白天训练懈怠&a…...

优化深度学习模型训练过程:提升PASCAL VOC 2012数据集上Deeplabv3+模型训练效率的策略

创作不易&#xff0c;您的打赏、关注、点赞、收藏和转发是我坚持下去的动力&#xff01; 优化说明&#xff1a; 避免重复下载和解压数据集&#xff1a;将downloadTrue改为downloadFalse&#xff0c;防止每次运行代码都重新下载和解压数据集&#xff0c;从而节省时间。 使用pin…...

【乐吾乐大屏可视化组态编辑器】使用手册

1 总览 开始设计&#xff1a;大屏可视化设计器 - 乐吾乐Le5le 1.1 画布 画布即绘画区域&#xff0c;将图形拖拽到画布进行编辑&#xff0c;绘制大屏。 1.2 菜单栏 顶部菜单导航&#xff0c;一级菜单可设置Logo、公司名称、文件编辑、常用编辑、查看、帮助&#xff0c;设置大…...

uniapp+若依 开发租房小程序源码分享

1、使用Uniapp开发的前台&#xff0c;基于 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、Web&#xff08;响应式&#xff09;、以及各种小程序 2、基于SpringBoot的权限管理系统&#xff0c;易读易懂、界面简洁美观。 核心…...

日系编曲:节奏吉他与主音吉他 吉他的节奏型 节奏吉他的编写思路 吉他的Riff

这篇文章介绍的是日系吉他编写中的多吉他编写思路&#xff01; 日系吉他构成特点 ​一般日系曲子构成有两把以上的吉他&#xff0c;根据需求来进行补充&#xff1a; 通常至少为一把主音一把节奏&#xff0c;一把左一把右&#xff0c;主音一般是电吉他&#xff0c;节奏可以是电…...

【网络安全的神秘世界】目录遍历漏洞

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 先来了解两个概念&#xff1a; 身份认证&#xff1a;验证用户或者系统身份的过程&#xff0c;确保他们所声明的身份是真实的…...

使用 SpringBoot 基础web开发的支持

首先导入项目相关的依赖&#xff1a; pom.xml 文件&#xff1a; 导入相关项目依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-in…...

nature reviews genetics | 细胞互作和通讯方法总结

–https://doi.org/10.1038/s41576-023-00685-8 The diversification of methods for studying cell–cell interactions and communication 留意更多内容&#xff0c;欢迎关注微信公众号&#xff1a;组学之心 研究团队和研究单位 细胞间相互作用的前沿进展&#xff1a;从转…...

AI 浪潮中的一体化数据库|外滩大会之OceanBase实录

2024 年 9 月 5 日至 7 日&#xff0c;在上海黄浦世博园区&#xff0c;“2024 Inclusion 外滩大会”盛大举行。期间&#xff0c;9月6日&#xff0c;由OceanBase携手赛迪顾问共同策划并主办了 “AI浪潮中的分布式数据库&#xff1a;探索行业增长新动能与关键业务负载实践”。本…...

Qt自定义按键实现长,短按

本文介绍Qt自定义按键实现长&#xff0c;短按。 Qt触摸屏应用有时会涉及到触摸屏按钮长&#xff0c;短按操作&#xff0c;如长按实现关机操作&#xff0c;本文基于普通QPushButton为基类&#xff0c;自定义按键实现长&#xff0c;短按操作。 1.定义新类 这里以QPushButton为…...