当前位置:首页 > 编程笔记 > 正文
已解决

Kafka 自动配置部署信息的脚本记录

来自网友在路上 162862提问 提问时间:2023-10-26 01:20:11阅读次数: 62

最佳答案 问答题库628位专家为你答疑解惑

自动配置 Kafka

整理服务器内容时,发现一个测试 Kafka 的脚本,它可以自动配置 Kafka 部署信息 ,指定三个参数,完成 Kafka 的配置文件的修改。

basePath=$1
brokerId=$2
zookeeperConnect=$3
localIp=`ifconfig |grep inet| awk '{print $2}'| head -1`
echo $localIp
cd $basePath
tar -xvf kafka_2.12-2.3.0.tgz
mv kafka_2.12-2.3.0 kafka
cd kafka/configsed -i -c "s/broker.id=.*/broker.id=${brokerId}/i" server.properties
sed -i -c "s/zookeeper.connect=.*/zookeeper.connect=${zookeeperConnect}/i" server.properties
echo "listeners=PLAINTEXT://$localIp:9092" >> server.properties

Kafka Java 测试代码

```typescript
public static void main(String[] args) {Properties kafkaProps = new Properties();kafkaProps.put(DataShareConstant.ACKS, DataShareConstant.DEFAULT_ACKS);kafkaProps.put(DataShareConstant.KAFKA_PRODUCER_TYPE, DataShareConstant.SYNC);//Avro mapkafkaProps.put(DataShareConstant.VALUE_SERIALIZER, DataShareConstant.AVRO_MAP_SERIALIZER);kafkaProps.put(DataShareConstant.KEY_SERIALIZER, DataShareConstant.DEFAULT_SERIALIZER);kafkaProps.put(DataShareConstant.BOOTSTRAP_SERVERS, "localhost:9092");//默认是30000mskafkaProps.put(DataShareConstant.REQUEST_TIMEOUT, "5000");kafkaProps.put("transaction.timeout.ms", "5000");kafkaProps.put("max.block.ms", "6000"); // 该属性决定连接超时的kafkaProps.put(DataShareConstant.BATCH_SIZE, "1048576");kafkaProps.put(DataShareConstant.LINGER, "10");kafkaProps.put(DataShareConstant.BUFFER_MEMORY, "33554432");KafkaProducer kafkaProducer  = null;try{kafkaProducer = new KafkaProducer("mytestkafka", kafkaProps);} catch (Exception e) {logger.info("Construct producer error {}", e.getMessage());}Map<String, Object> testMapData = new HashMap<>(1);testMapData.put("DATA", "Kafka测试");testMapData.put("TIME", DateFormatUtils.format(System.currentTimeMillis(), CommonConstant.EsIndexDayFormat + " HH:mm:ss"));Future send = kafkaProducer2.send(testMapData);assert send != null;try {send.get();System.out.println("send ok.");} catch (Exception e) {String errorMsg = e.getMessage();System.out.println(errorMsg);} finally {kafkaProducer2.close();}}

启示录

整理草稿箱,发现有些都遗忘的代码片段,分享出来,以备有用之时。IT 技术知识,感觉浩瀚无边的啊,真正用到的又有多少呢?

JDK半年一个新版本,可是一个 JDK 8 就够了,20% 的技术知识就能解决 80% 的问题;剩下20%,是大概率也不会遇到的复杂问题。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Kafka 自动配置部署信息的脚本记录":http://eshow365.cn/6-24628-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!