kafka集群跨区域跨集群同步方案MirrorMaker1 —— 筑梦之路

MirrorMaker原理架构

数据流向

上图也是一种比较常见的用法,这里作为记录。下面介绍一则实战案例。

网络架构

配置日志采集器filebeat

配置从哪里采集日志

 输出到kafka集群

配置MirrorMaker消费者 

参数说明:

bootstrap.servers 指定消费哪个kafka的数据

group.id  指定消费者加入哪个消费组,一条消息可以被多个消费组消费,在一个消费组内只能被一个消费者消费

enable.auto.commit 默认true, 指定false表示不允许自动提交消费偏移量,避免重复消费、数据丢失

request.timeout.ms 设置请求的超时时间,发起请求不一定能很快收到响应

heartbeat.interval.ms 心跳间隔,确定消费者存活和退出检测机制

session.timeout.ms 消费者会话过期时间 必须大于心跳间隔 小于请求超时

max.poll.interval.ms 消费者处理逻辑的最大时间

max.poll.records 消费者每次取到的消息最大数量,过大会影响在指定时间内无法完成

auto.offset.reset  消费者在无效偏移量、没有偏移量的情况下如何处理,默认是latest,从最新记录读取,容易丢失数据,这里设置为从头开始,避免丢失数据。

配置MirrorMaker生产者 

参数说明:

bootstrap.servers  生产者的地址

acks  指定在集群中有多少个分区副本收到消息,生产者才会认为消息写入成功,对于消息是否丢失有比较大的影响,有3个值可选,0 1 all ,  其中0 、1都可能会丢失数据,all安全性最高,效率最低,2个以上分区副本时不丢失任何数据

batch.size  生产者批量发送的基本单位

linger.ms  限制batch无论是否写满在指定时间内必须发送,避免消息长期驻留在内存中一直不发送的情况

max.block.ms  获取kafka集群元数据时生产者阻塞时间,超出后生产者会抛超时异常

compression.type 指定消息发送到kafka broker前使用哪种压缩算法,gzip可降低网络传输、磁盘存储开销

request.timeout.ms  生产者发送数据等待kafka集群响应的超时时间

启动MirrorMaker 

启动先后顺序说明

查询消费情况 

注意事项

这里采用的MirrorMaker1的方式来实现,kafka 2.4以后已经支持MirrorMaker2的方式。 

MM1不足之处

  1. 目标集群的Topic使用默认配置创建,但通常需要手动repartition。
  2. acl和配置修改的时候不会自动同步,给多集群管理带来一些困难
  3. 消息会被DefaultPartitioner打散到不同分区,即对一个topic ,目标集群的partition与源集群的partition不一致。
  4. 任何配置修改,都会使得集群变得不稳定。比如比较常见的增加topic到whitelist。
  5. 无法让源集群的producer或consumer直接使用目标集群的topic。
  6. 不保证exactly-once,可能出现重复数据到情况
  7. mm1支持的数据备份模式较简单,比如无法支持active <-> active互备
  8. rebalance会导致延迟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/639651.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CDR报错“Unable to load VGCore.dll. Error Code:126”的修复教程

在使用CorelDRAW软件时&#xff0c;有时我们可能会遇到“Unable to load VGCore.dll. Error Code :126”错误提示。这个错误通常表示CorelDRAW无法加载VGCore.dll文件&#xff0c;导致软件无法正常运行。为了解决这个问题&#xff0c;本文将介绍5种修复方法&#xff0c;帮助大家…

元器件基础学习笔记——电感的分类及主要参数

一、电感的分类 电感器是一种电子元件&#xff0c;它能够将电能转化为磁能并储存起来。电感器的分类方法有很多&#xff0c;可以根据用途、形状、结构等不同的标准进行划分。 分类依据类型备注电感值固定电感固定线圈可变电感改变磁芯的饱和度用途高频电感绕线型&#xff0c;积…

1076: 判断给定有向图是否存在回路

解法&#xff1a; 直观的方法用邻接矩阵dfs,这是错误的代码 #include<iostream> #include<vector> using namespace std; int arr[100][100]; int f 0; void dfs(vector<int>& a, int u) {a[u] 1;for (int i 0; i < a.size(); i) {if (arr[u][i]…

SecureFX 9.5.2 SecureCRT 9.5.2 官方下载

SecureCRT是一款由VanDyke Software公司开发的终端仿真软件&#xff0c;它提供了类似于Telnet和SSH等协议的远程访问功能。SecureCRT专门为网络管理员、系统管理员和其他需要保密访问网络设备的用户设计。 SecureCRT具有以下特点&#xff1a; 安全性&#xff1a;SecureCRT支持…

埋点——about前端

所谓“埋点”&#xff0c;是数据采集领域(尤其是用户行为数据采集领域)的术语&#xff0c;指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等,埋点的技术实质&#xff0c;是先监听软件应用运行过程中…

metaMIC:无参考错误组装识别和校正宏基因组组装

#环境很重要&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; conda create -n metaMIC conda activate metaMIC mamba install python3.8 mamba install -c …

grafana + Prometheus + node-exporter + pushgateway + alertmanager的监控解决方案

业内比较著名的监控解决方案&#xff0c;据笔者所知&#xff0c;大概是三套&#xff1a; 一个是zabbix的解决方案&#xff0c;一个是prometheusgrafana&#xff0c;一个是ELK zabbix比较重&#xff0c;而且原生支持监控SNMP&#xff0c;自带一个仪表盘&#xff0c;不需要额外…

Redis常用命令——String篇

前面我们讲解了一些 Redis 的全局命令&#xff08;Redis常用基本全局命令&#xff09;。所谓全局命令&#xff0c;就是可以匹配任意一个数据结构进行使用。但是不同的数据结构&#xff0c;也有自己的操作命令。本篇文章主要讲解的是 String 的操作命令&#xff0c;希望会对你有…

fortran77 初始化矩阵 打印矩阵 模版 备拷

1&#xff0c;源码 SUBROUTINE INIT_MATRIX(A, m, n, lda)DOUBLE PRECISION A(*)CALL SRAND(2024)DO i1, mDO j1, nA(i lda*(j-1)) RAND() RAND() C WRITE(*, (F8.4)) A(i)END DOEND DOENDSUBROUTINE PRINT_MATRIX(A, m, n, lda)DOUBLE PREC…

pytorch-20_1 LSTM在股价数据集上的预测实战

LSTM在股价数据集上的预测实战 使用完整的JPX赛题数据&#xff0c;并向大家提供完整的lstm流程。 导包 import numpy as np #数据处理 import pandas as pd #数据处理 import matplotlib as mlp import matplotlib.pyplot as plt #绘图 from sklearn.preprocessing import M…

Postgresql 基础学习

一、介绍 PostgreSQL是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它支持SQL语言的所有功能&#xff0c;具有可扩展性、高并发性和可靠性等特点。 以下是一些 PostgreSQL 的特点&#xff1a; 开源&#xff1a;PostgreSQL是一个非常受欢迎的开源…

计算机系统概述习题

选择题 电子计算机问世至今&#xff0c;新型计算机不断推陈出新&#xff0c;不管怎么更新&#xff0c;依然具有“存储程序”的特点&#xff0c;最早提出这种概念的是(B) A. 巴贝奇 B. 冯*诺伊曼 C. 帕斯卡 D. 贝尔 B下列描述中___是正确的。 A. 控制器能理解&#xff0c;解释…

Creating Server TCP listening socket *:6379: listen: Unknown error

错误&#xff1a; 解决方法&#xff1a; 在redis安装路径中打开cmd命令行窗口&#xff0c;输入 E:\Redis-x64-3.2.100>redis-server ./redis.windows.conf结果&#xff1a;

OpenHarmony轻量系统中内核资源主要管理方式

一、背景 OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;轻量系统面向MCU类处理器例如ARM Cortex-M、RISC-V 32位的设备&#xff0c;硬件资源极其有限&#xff0c;支持的设备最小内存为128KiB&#xff0c;可以提供多种轻量级网络协议&#xff0c;轻量级…

5.1 Go 函数的定义与调用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

解决无法启动Redis,打开redis-server闪退的问题

【问题】 ① 双击redis-server.exe闪退。 ② 终端运行redis-server没反应。 但是终端运行redis -cli没问题。 【解决方法】 步骤1&#xff1a;找到Redis文件夹&#xff0c;右击&#xff0c;在终端打开。 步骤2&#xff1a;输入命令&#xff1a;redis-server.exe redis.windows…

论文阅读笔记:Task-Customized Mixture of Adapters for General Image Fusion

论文阅读笔记&#xff1a;Task-Customized Mixture of Adapters for General Image Fusion 1 背景2 创新点3 方法4 模块4.1 任务定制混合适配器4.2 提示生成4.3 提示驱动融合4.4 互信息正则化MIR4.5 任务定制化损失 5 实验5.1 VIF任务5.2 MEF任务5.3 MFF任务5.4 消融实验5.5 性…

网络编程 一

一、UDP socket api的使用 Java 把系统原生的封装了. 核心的类有两个: 1 -> DatagramSocket 操作系统中,有一类文件,就叫socket文件. socket文件,抽象表示了 " 网卡"这样的硬件设备. 进行网络通信最核心的硬件设备网卡 通过网卡发送数据,就是写…

人工智能应用-实验8-用生成对抗网络生成数字图像

文章目录 &#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;代码&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;分析结果&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;实验总结&#x1f9e1;&#x1f9e1; &#x1f9…

spark的简单学习一

一 RDD 1.1 RDD的概述 1.RDD&#xff08;Resilient Distributed Dataset&#xff0c;弹性分布式数据集&#xff09;是Apache Spark中的一个核心概念。它是Spark中用于表示不可变、可分区、里面的元素可并行计算的集合。RDD提供了一种高度受限的共享内存模型&#xff0c;即RD…