当前位置: 首页 > news >正文

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

自动配置 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/config

sed -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 map
        kafkaProps.put(DataShareConstant.VALUE_SERIALIZER, DataShareConstant.AVRO_MAP_SERIALIZER);

        kafkaProps.put(DataShareConstant.KEY_SERIALIZER, DataShareConstant.DEFAULT_SERIALIZER);

        kafkaProps.put(DataShareConstant.BOOTSTRAP_SERVERS, "localhost:9092");

        //默认是30000ms
        kafkaProps.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%,是大概率也不会遇到的复杂问题。

相关文章:

  • Leetcode.2698 求一个整数的惩罚数
  • python---设计模式(单例模式和工厂模式)
  • 【JAVA学习笔记】42 - 内部类(难点,重点)
  • YOLO目标检测——行人数据集【含对应voc、coco和yolo三种格式标签+划分脚本】
  • (ubuntu)安装nginx
  • 【JAVA】:万字长篇带你了解JAVA并发编程【一】
  • Linux网络编程-极简HTTPUDP服务器
  • MySQL数据库(四)
  • 通俗介绍:什么是 Redis ?
  • crossover23.6闪亮登场发布啦,2023最新功能解析
  • jenkins实践篇(1)——基于分支的自动发布
  • UI 自动化测试框架:PO模式+数据驱动
  • Selenium定向爬取海量精美图片及搜索引擎杂谈
  • 【Solidity】智能合约案例——③版权保护合约
  • 【API篇】七、Flink窗口
  • C语言之数组
  • 数据结构和算法概述
  • TOGAF(企业架构)
  • Kotlin笔记(七):协程
  • 医院陪诊系统源码 医院护工陪护系统源码
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记
  • 新一届中国女排亮相,奥运冠军龚翔宇担任队长
  • 自称“最美”通缉犯出狱当主播?央广网:三观怎能跟着“五官”跑
  • 国家发改委:我国能源进口来源多元,企业减少甚至停止自美能源进口对国内能源供应没有影响
  • 央媒关注给保洁人员设休息室:让每一份踏实奋斗得到尊重呵护
  • 点燃“文化活火”,上海百年街区创新讲述“文化三地”故事