Kafka MirrorMaker测试

登录 qa kafka 集群 Broker 1节点 10.50.1.142,新建如下文件:

cd /opt/app/kafka_2.12-2.5.0/config
vim mirror-maker-consumer.properties
# dev-kafka
bootstrap.servers=10.40.11.91:9092
group.id=mirror-maker
partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor
cd /opt/app/kafka_2.12-2.5.0/config
vim mirror-maker-producer.properties
# qa-kafka
bootstrap.servers=10.50.1.142:9092

执行如下命令,启动kafka mirror maker:

nohup /opt/app/kafka_2.12-2.5.0/bin/kafka-mirror-maker.sh --num.streams 40 --consumer.config /opt/app/kafka_2.12-2.5.0/config/mirror-maker-consumer.properties --producer.config /opt/app/kafka_2.12-2.5.0/config/mirror-maker-producer.properties --whitelist 'zb_test' > /&
#  需要mirrormaker的白名单,可使用正则表达式,也可以直接是某一个具体的主题,对应的是黑名单,–blacklist。
--whitelist 'zb_test'
#  一个流就是一个消费者,所有消费者公用一个生产者。
--num.streams 40

向dev kafka写入数据,脚本如下:

#!/usr/bin/env python
# coding=utf-8
import time

from kafka import KafkaProducer
from kafka.errors import KafkaTimeoutError


def send_message():
    producer = KafkaProducer(bootstrap_servers=['10.40.11.91:9092'])
    topic = 'zb_test'
    msg = bytes('zb_test_message', encoding='utf-8')
    while True:
        try:
            time.sleep(1)
            producer.send(topic, msg)
            producer.flush()
            print("Message Send!")
        except KafkaTimeoutError:
            print("Kafka Timeout")


if __name__ == '__main__':
    send_message()

消费qa kafka写入数据,查看是否有新数据写入,脚本如下:

#!/usr/bin/env python
# coding=utf-8

from kafka import KafkaConsumer

def get_message():
    consumer = KafkaConsumer('zb_test', bootstrap_servers=['10.50.1.142:9092'])

    for message in consumer:
        result = "%s:%d:%d: key=%s value=%s" % (
            message.topic, message.partition, message.offset, message.key, message.value)
        print(result)


if __name__ == '__main__':
    get_message()

经验证,qa kafka可以看到数据同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值