V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  2Nfree  ›  全部回复第 1 页 / 共 3 页
回复总数  56
1  2  3  
只删除数据不重置消费组的情况下,对应 topic 的 offset 会变成负数,需要重置消费组
docker 部署给你一个参考,部署了两种集群:
```yaml
version: '3'
services:
zookeeper1:
image: 'bitnami/zookeeper:3.8'
container_name: zookeeper1
ports:
- '2181:2181'
environment:
# 匿名登录--必须开启
- ALLOW_ANONYMOUS_LOGIN=yes
# 服务 ID 不重复
- ZOO_SERVER_ID=1
# 集群地址配置
- ZOO_SERVERS=zookeeper1:2888:3888,zookeeper2:2888:3888,zookeeper3:2888:3888
volumes:
- ./zookeeper/zookeeper-data1:/bitnami/zookeeper
zookeeper2:
image: 'bitnami/zookeeper:3.8'
container_name: zookeeper2
ports:
- '2182:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
- ZOO_SERVER_ID=2
- ZOO_SERVERS=zookeeper1:2888:3888,zookeeper2:2888:3888,zookeeper3:2888:3888
volumes:
- ./zookeeper/zookeeper-data2:/bitnami/zookeeper
zookeeper3:
image: 'bitnami/zookeeper:3.8'
container_name: zookeeper3
ports:
- '2183:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
- ZOO_SERVER_ID=3
- ZOO_SERVERS=zookeeper1:2888:3888,zookeeper2:2888:3888,zookeeper3:2888:3888
volumes:
- ./zookeeper/zookeeper-data3:/bitnami/zookeeper
kafka1:
image: 'bitnami/kafka:3.4'
container_name: kafka1
depends_on:
- zookeeper1
- zookeeper2
- zookeeper3
ports:
- '9092:9092'
environment:
### zookeeper
# 配置 zookeeper 地址
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181

### Listeners
# 允许使用 PLAINTEXT 监听器
- ALLOW_PLAINTEXT_LISTENER=yes
# 指定内部使用的 Broker 监听名称
- KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
# 配置 Kafka 和 ZooKeeper 之间的通信协议
- KAFKA_ZOOKEEPER_PROTOCOL=PLAINTEXT
# 定义安全协议
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT
# 定义 kafka 服务端 socket 监听端口
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
# 配置外部访问地址
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092

### Cluster
# 配置偏移量主题为 3 个副本
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
# 配置事务状态日志为 3 个副本
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
# 用于指定事务状态日志的最小 ISR 。ISR 是指与 Kafka Broker 保持同步的副本集合。如果 ISR 中的副本数量低于 2 ,则 Kafka Broker 将停止写入事务状态日志。
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2

# 设置堆内存
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
volumes:
- ./kafka-zookeeper/kafka-data1:/bitnami/kafka
kafka2:
image: 'bitnami/kafka:3.4'
container_name: kafka2
depends_on:
- zookeeper1
- zookeeper2
- zookeeper3
ports:
- '9093:9092'
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_ZOOKEEPER_PROTOCOL=PLAINTEXT
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
volumes:
- ./kafka-zookeeper/kafka-data2:/bitnami/kafka
kafka3:
image: 'bitnami/kafka:3.4'
container_name: kafka3
depends_on:
- zookeeper1
- zookeeper2
- zookeeper3
ports:
- '9094:9092'
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_ZOOKEEPER_PROTOCOL=PLAINTEXT
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
volumes:
- ./kafka-zookeeper/kafka-data3:/bitnami/kafka
kafka-kraft1:
container_name: "kafka-kraft1"
image: 'bitnami/kafka:3.4'
restart: always
ports:
- '19092:9092'
environment:
### KRaft 配置
# 允许使用 kraft ,即 Kafka 替代 Zookeeper
- KAFKA_ENABLE_KRAFT=yes
# 配置节点唯一 ID
- KAFKA_CFG_NODE_ID=1
# 配置 kafka 角色,做 broker ,也要做 controller
- KAFKA_CFG_PROCESS_ROLES=controller,broker
# 控制端集群地址
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 使用 Kafka 时的集群 id ,集群内的 Kafka 都要用这个 id 做初始化,生成一个 UUID 即可
- KAFKA_KRAFT_CLUSTER_ID=Mg-p_2D8RFKm5qYZPgq_hA

### Listeners
# 允许使用 PLAINTEXT 监听器
- ALLOW_PLAINTEXT_LISTENER=yes
# 指定控制端使用的监听名称
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
# 指定内部使用的 Broker 监听名称
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
# 定义安全协议
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
# 配置 kafka 服务端 socket 监听端口
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
# 配置外部访问地址
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092

### Cluster
# 配置偏移量主题为 3 个副本
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
# 配置事务状态日志为 3 个副本
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
# 用于指定事务状态日志的最小 ISR 。ISR 是指与 Kafka Broker 保持同步的副本集合。如果 ISR 中的副本数量低于 2 ,则 Kafka Broker 将停止写入事务状态日志。
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2

# 设置堆内存
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
volumes:
- ./kafka-kraft/kafka-data1:/bitnami/kafka
kafka-kraft2:
container_name: "kafka-kraft2"
image: 'bitnami/kafka:3.4'
restart: always
ports:
- '19093:9092'
environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_NODE_ID=2
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
- KAFKA_KRAFT_CLUSTER_ID=Mg-p_2D8RFKm5qYZPgq_hA
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
volumes:
- ./kafka-kraft/kafka-data2:/bitnami/kafka
kafka-kraft3:
container_name: "kafka-kraft3"
image: 'bitnami/kafka:3.4'
restart: always
ports:
- '19094:9092'
environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_NODE_ID=3
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
- KAFKA_KRAFT_CLUSTER_ID=Mg-p_2D8RFKm5qYZPgq_hA
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
- KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
volumes:
- ./kafka-kraft/kafka-data3:/bitnami/kafka
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
restart: always
depends_on:
- kafka1
- kafka2
- kafka3
- kafka-kraft1
- kafka-kraft2
- kafka-kraft3
ports:
- 8080:8080
environment:
- KAFKA_CLUSTERS_0_NAME=kafka-zookeeper
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=172.28.13.101:9092,172.28.13.101:9093,172.28.13.101:9094
- KAFKA_CLUSTERS_1_NAME=kafka-kraft
- KAFKA_CLUSTERS_1_BOOTSTRAPSERVERS=172.28.13.101:19092,172.28.13.101:19093,172.28.13.101:19094
- SERVER_SERVLET_CONTEXT_PATH=/
- AUTH_TYPE= "LOGIN_FORM"
- SPRING_SECURITY_USER_NAME=admin
- SPRING_SECURITY_USER_PASSWORD=admin
- DYNAMIC_CONFIG_ENABLED='true'
kafka-map:
image: dushixiang/kafka-map:v1.3.3
container_name: kafka-map
restart: always
depends_on:
- kafka1
- kafka2
- kafka3
- kafka-kraft1
- kafka-kraft2
- kafka-kraft3
ports:
- 8081:8080
environment:
- DEFAULT_USERNAME=admin
- DEFAULT_PASSWORD=admin
```
kraft 我们是没有用的,之前 zookeeper 用惯了
8 天前
回复了 mizuki9 创建的主题 Linux 在 WSL 上安装 Arch Linux (official)
之前用的一直是这个: https://github.com/yuk7/ArchWSL ,和官方的有啥区别吗
@justtokankan #3 笔记本搞 NAS 有点不太合适了,接硬盘很麻烦,NAS 配置要求不是特别高,基本是个 U 都能跑
啥配置啊,笔记本还是主机,功耗低的话搞个软路由 nas 啥的
限定会议软件吗,不限定的话飞书会议就有这个功能
@kyonn #3 可以尝试一下,把代理区分开,不同的源仓库使用不同 nexus 仓库,这样例如你拉取 quay.io/xxx/xxx 镜像应该会走 quay.io 的代理
@2Nfree #4 修改一下,适配于 dockerhub 风格,quay.iogcr.ioghcr.io 这些与 dockerhub 的接口应该是不一致的,无法使用默认的无域名代理
@freaks #22 建议还是迁移新服务器吧,然后生产业务换成用容器跑
就是因为 daemon.json 默认是只适配与 dockerhub 的,所以例如 quay 或者 gcr 的相关都需要你添加代理仓库的前缀,你发的这个文章也是用的 dockerhub ,dockerhub 的代理是可以省去前面的域名的
@freaks #9 如果之前的服务器没有跑过 npm 的话这个应该就是那个木马了,这个报错应该是有程序在用 npm 下载包
这个是因为如果你默认不加域的情况下走的就是 dockerhub 或者你在 daemon.json 中配置的镜像代理地址,因为 docker 的 daemon.json 默认是只适配与 dockerhub 的,其他第三方的仓库不在他这个的配置范围内
建议 SSH 换成禁用密码登录使用密钥对登录,建议手动扫描一下目录看看有没有什么可疑文件,推荐用 rkhunter
一般来说不一定是你的 ssh 被破解,要看跑的什么服务,是不是有漏洞什么的,webshell 之类的
什么是 RDD ? RDD 的特性是什么?
Spark 的执行流程是怎样的?从提交作业到执行完成经历了哪些步骤?
如何优化 Spark 作业性能?(结合内存管理、分区数量、数据倾斜处理等)
Flink 和 Spark Streaming 的异同?
@NoKey #5 确实没有考虑到这个,所以感觉这个有点伪需求的意思
@Curiosity777 #2 如果重启期间的 timeout 报错和正常的 timeout 的报错是一致的,那你这种需要监听日志上下文,如应用程序获取了 SIGNTEM 的信号,就发出一个应用被关闭的信号日志,然后通过窗口监听上文中有被关闭的信号再去屏蔽发版的 timeout 报错,但是我感觉这个需求有点伪需求的意思了,你知道他在发版了实际上就人工忽略就好了
elastalert2 的日志告警原理上就是查询 ES ,直接设置规则 query must_not 对应 timeout 的日志类别,如果要是要求更高级的日志告警还是推荐用 flink cep 去做
70 天前
回复了 aping98a 创建的主题 武汉 求一条武汉宽带推荐, 500 兆,千兆最好
@sxguka #8 当时办的时候也没了解过这些,就是想赶紧办个网,现在去换也不值当了,用了很久了
@2Nfree #1 估计官网还没来得及更新
oneplus.net 这个域名下线了,现在好像换成 oneplus.com
用容器运行的时候,一些标准依赖库还是使用的宿主机的,所以和宿主机中的依赖库版本有一定的关系
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5546 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 08:34 · PVG 16:34 · LAX 01:34 · JFK 04:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.