kafka 启动_Kafka启动 之BrokerInfo

val brokerInfo = createBrokerInfoval brokerEpoch = zkClient.registerBroker(brokerInfo)

Ø CreateBrokerInfo : 创建BrokerInfo对象

e779a401464507805f22241b617ddd41.png

下面围绕该方法展开

l 第一步代码就是先获取endPoints

ae8d071c04e807a3fad90f72035020a2.png
b891da68129b0bb5dcac85937736c8de.png
val AdvertisedListenersProp = "advertised.listeners"val ListenerSecurityProtocolMapProp = "listener.security.protocol.map" advertised.listeners=PLAINTEXT://your.host.name:9092listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL  这两个是属性key, getString、getMap等方法会获取/config/server.properties文件中配置的属性值并转化为string、map对象。配置解析初始化后,就开始创建EndPoint
4c16b6ead595365f51c113b7ef3b02b8.png
从parseCsvList可以看出,配置中advertised.listeners的值也可能是多个以“,”隔开的多个字符串值,那也就是说可以一个Key值配置多个EndPoint。可以一次性配置多个EndPoint, 但在validate方法中可以看出endPoint的端口port不能为0,endPoint不能重复,endPoint的协议名称listenerName不能有重复。也就是说一次行配置多个具有不同协议的EndPoint↓EndPoint.createEndPoint 创建EndPoint
58c6d51606bd4c5350b541c71f946a68.png

l 第二步从ZK中取出其他borker的endPoints与当前broker的做host:port对比,不能有重复的。

l 第三步对endPoints的空port或host进一步整理

95a33c43c6b37e402e0d6d8a07e8b45d.png

l 最后新建BorkerInfo对象

Ø zkClient.registerBroker:注册到Zookeeper

将BrokerInfo的相关数据encode编码并转为字节数组后存储到ZK的/brokers/ids/$id节点
760213af5503c4b2ee8af385a4065365.png
720c4acb3bd721501e11a157fd2772d9.png
ea4aca13a6ce8ae17e8d28fd4ac0cf3b.png
kafka_export 是一个用于将 Kafka 消息导出到其他存储系统的工具。它是基于 Kafka Connect 框架实现的。在启动 kafka_export 之前,需要先安装 Kafka Connect。 启动 kafka_export 的命令格式如下: ``` ./bin/connect-distributed.sh ./config/connect-distributed.properties ``` 其中,`connect-distributed.sh` 是 Kafka Connect 提供的启动脚本,`connect-distributed.properties` 是 Kafka Connect 的配置文件,需要根据实际情况进行修改。 在启动 kafka_export 之前,需要在 `connect-distributed.properties` 文件中添加以下配置信息: ``` # 指定 kafka_export 的插件路径 plugin.path=/path/to/kafka_export/plugins # 指定 kafka_export 的配置文件 rest.extensions=com.github.jcustenborder.kafka.connect.rest.RestExtension ``` 其中,`/path/to/kafka_export/plugins` 是 kafka_export 插件的路径,`com.github.jcustenborder.kafka.connect.rest.RestExtension` 是 kafka_export 的配置文件。 启动 kafka_export 之后,可以通过 REST API 来配置和管理 kafka_export。例如,可以使用以下命令来创建一个新的导出任务: ``` curl -X POST \ http://localhost:8083/connectors \ -H 'Content-Type: application/json' \ -d '{ "name": "export-task", "config": { "connector.class": "com.github.jcustenborder.kafka.connect.export.ExportSinkConnector", "tasks.max": "1", "topics": "test-topic", "connection.url": "jdbc:mysql://localhost:3306/test", "connection.user": "root", "connection.password": "password", "table.name.format": "test_table" } }' ``` 这个命令将会创建一个名为 `export-task` 的导出任务,将 `test-topic` 主题的消息导出到名为 `test_table` 的 MySQL 表中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值