main
周文涛 2 years ago
parent c0b1d78e23
commit 7eff106d0b

@ -15,62 +15,62 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<commons.version>2.6</commons.version>
</properties> </properties>
<dependencies> <dependencies>
<!--springBoot-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--<dependency> <!--<dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency>--> </dependency>-->
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--fastJson-->
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.83</version> <version>1.2.83</version>
</dependency> </dependency>
<!-- <dependency>--> <!--接口文档-->
<!-- <groupId>com.github.xiaoymin</groupId>-->
<!-- <artifactId>knife4j-spring-boot-starter</artifactId>-->
<!-- &lt;!&ndash;在引用时请在maven中央仓库搜索2.X最新版本号&ndash;&gt;-->
<!-- <version>2.0.9</version>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>com.spring4all</groupId> <groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId> <artifactId>swagger-spring-boot-starter</artifactId>
<version>1.9.1.RELEASE</version> <version>1.9.1.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.xiaoymin</groupId> <groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId> <artifactId>knife4j-spring-ui</artifactId>
<version>2.0.4</version> <version>2.0.4</version>
</dependency> </dependency>
<!--Kafka-->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<!-- commons -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>commons-io</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>commons-io</artifactId>
<version>${commons.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.kafka</groupId> <groupId>commons-lang</groupId>
<artifactId>spring-kafka</artifactId> <artifactId>commons-lang</artifactId>
<version>${commons.version}</version>
</dependency> </dependency>
<!--<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.8.1</version>
</dependency>-->
</dependencies> </dependencies>
<build> <build>

@ -0,0 +1,12 @@
###配置
#### AppCode: 42142fd0jkbf4515853b7fcec64748f6
#### X-Consumer-Username: dwVendor
#### key dwVendor
#### Secret fEVcb^QFB;IN$K5
#### URLhttps://10.0.10.153:2443/api/iot/v1/devices/methods
###服务器连接
#### IP: 10.0.10.153
#### user: root
#### pwd: qwer1234
#

@ -0,0 +1,157 @@
package com.example.demokafka.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.example.demokafka.common.api.vo.Result;
import com.example.demokafka.dto.GuangZhaoChuanGanQiDTO;
import com.example.demokafka.dto.HuanJingJianCeDTO;
import com.example.demokafka.dto.KafkaConsumerDTO;
import com.example.demokafka.dto.KongQiZhiLiangChuanGanQiDTO;
import com.example.demokafka.util.KafkaUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.*;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/9/5 9:57
*/
@RestController
@RequestMapping("/kafka")
@Slf4j
@Api(tags = "Kafka接口")
public class KafkaController {
@Resource
private KafkaUtil kafkaUtil;
@GetMapping("/consumer/{topic}")
@ApiOperation(value = "consumer")
public Result<?> getConsumerData(@PathVariable String topic) {
if (StringUtils.isEmpty(topic)) {
return Result.error("请确认topic是否正确");
}
List<String> resultList = new ArrayList<>();
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro());
consumer.subscribe(Collections.singletonList(topic));
ConsumerRecords<String, String> records = consumer.poll(5000);
JSONArray jsonArray=new JSONArray();
for (ConsumerRecord<String, String> consumerRecord : records) {
String kfkContent = consumerRecord.value();
resultList.add(kfkContent);
if (!StringUtils.isEmpty(kfkContent)) {
jsonArray.add(JSONObject.parseObject(kfkContent));
}
}
consumer.close();
long newCreateTime =0L;
switch (topic) {
case "guangzhaochuanganqi": {
//光照传感器
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
List<KafkaConsumerDTO<GuangZhaoChuanGanQiDTO>> kafkaConsumerDTOList;
KafkaConsumerDTO<GuangZhaoChuanGanQiDTO> kafkaConsumerDTO;
//排除掉旧的重复aeid
Map<String, KafkaConsumerDTO<GuangZhaoChuanGanQiDTO>> aeidMap = new HashMap<>();
for (JSONObject jsonObject : jsonObjects) {
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
String aeid = kafkaConsumerDTO.getAeid();
String createtimeStr = kafkaConsumerDTO.getCreatetime();
newCreateTime = Long.parseLong(createtimeStr);
KafkaConsumerDTO<GuangZhaoChuanGanQiDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
if (kafkaConsumerDTO1 == null) {
aeidMap.put(aeid, kafkaConsumerDTO);
} else {
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
continue;
}
if (createtime >= newCreateTime) {
continue;
}
}
aeidMap.put(aeid, kafkaConsumerDTO);
}
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
return Result.OK(kafkaConsumerDTOList);
}
case "kongqizhiliangchuanganqi": {
//空气质量传感器
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
List<KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO>> kafkaConsumerDTOList;
KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO> kafkaConsumerDTO;
//排除掉旧的重复aeid
Map<String, KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO>> aeidMap = new HashMap<>();
for (JSONObject jsonObject : jsonObjects) {
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
String aeid = kafkaConsumerDTO.getAeid();
String createtimeStr = kafkaConsumerDTO.getCreatetime();
newCreateTime = Long.parseLong(createtimeStr);
KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
if (kafkaConsumerDTO1 == null) {
aeidMap.put(aeid, kafkaConsumerDTO);
} else {
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
continue;
}
if (createtime >= newCreateTime) {
continue;
}
}
aeidMap.put(aeid, kafkaConsumerDTO);
}
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
return Result.OK(kafkaConsumerDTOList);
}
case "huanjingjiance": {
//环境监测
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
List<KafkaConsumerDTO<HuanJingJianCeDTO>> kafkaConsumerDTOList = new ArrayList<>();
KafkaConsumerDTO<HuanJingJianCeDTO> kafkaConsumerDTO;
//排除掉旧的重复aeid
Map<String, KafkaConsumerDTO<HuanJingJianCeDTO>> aeidMap = new HashMap<>();
for (JSONObject jsonObject : jsonObjects) {
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
String aeid = kafkaConsumerDTO.getAeid();
String createtimeStr = kafkaConsumerDTO.getCreatetime();
newCreateTime = Long.parseLong(createtimeStr);
KafkaConsumerDTO<HuanJingJianCeDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
if (kafkaConsumerDTO1 == null) {
aeidMap.put(aeid, kafkaConsumerDTO);
} else {
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
continue;
}
if (createtime >= newCreateTime) {
continue;
}
}
aeidMap.put(aeid, kafkaConsumerDTO);
}
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
return Result.OK(kafkaConsumerDTOList);
}
default:
return Result.error("请确认topic是否正确");
}
}
}

@ -1,62 +0,0 @@
package com.example.demokafka.controller;
import com.alibaba.fastjson.JSONObject;
import com.example.demokafka.common.api.vo.Result;
import com.example.demokafka.model.Person;
import com.example.demokafka.service.ProducerService;
import com.example.demokafka.util.Kafka;
import com.example.demokafka.util.KafkaUtil;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.*;
/**
* @author
* @date 2023/5/11
*/
@RestController
@RequestMapping("/test")
@Slf4j
@Api(tags = "测试")
public class TestController {
@Autowired
private ProducerService producerService;
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
@Value("${spring.kafka.topic}")
private String topicName;
@GetMapping("/kafka01")
@ApiOperation(value = "kafka01")
public List<Person> kafka01() {
producerService.sendMessage(topicName, "测试");
return new ArrayList<>();
}
@GetMapping("/consumer/{topic}")
@ApiOperation(value = "consumer")
public Result getConsumerData(@PathVariable String topic) {
List<String> result = new ArrayList<>();
Consumer<String, String> consumer = new KafkaConsumer<String, String>(KafkaUtil.getSafeConsumerPro());
consumer.subscribe(Arrays.asList(topic));
ConsumerRecords<String, String> records = consumer.poll(5000);
for (ConsumerRecord<String, String> consumerRecord : records) {
String kfkContent = consumerRecord.value();
result.add(kfkContent);
}
consumer.close();
return Result.ok(result);
}
}

@ -0,0 +1,23 @@
package com.example.demokafka.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/9/5 16:18
*/
@Data
@ApiModel(value="光照传感器返回对象", description="光照传感器返回对象")
public class GuangZhaoChuanGanQiDTO {
@ApiModelProperty(value = "灯控设备id")
private String devid;
@ApiModelProperty(value = "Zigbee信号强度")
private String device_lqi;
@ApiModelProperty(value = "光照度")
private String lux;
@ApiModelProperty(value = "电池电量情况")
private String battery_percent;
}

@ -0,0 +1,27 @@
package com.example.demokafka.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/9/5 14:34
*/
@Data
@ApiModel(value="环境监测返回对象", description="环境监测返回对象")
public class HuanJingJianCeDTO implements Serializable {
@ApiModelProperty(value = "环境监测设备id")
private String devid;
@ApiModelProperty(value = "电池电量情况")
private String battery_percent;
@ApiModelProperty(value = "温度(除以100为 ℃如3350除以100为33.5℃。)")
private String temperature;
@ApiModelProperty(value = "湿度(除以100为 %rh)")
private String humidity;
@ApiModelProperty(value = "Zigbee信号强度")
private String device_lqi;
}

@ -0,0 +1,64 @@
package com.example.demokafka.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Description kafka
* @Author ZhouWenTao
* @Date 2023/9/5 14:19
*/
@Data
@ApiModel(value="Kafka返回对象", description="Kafka返回对象")
public class KafkaConsumerDTO<T> {
private static final long serialVersionUID = 1L;
/**
*
*/
@ApiModelProperty(value = "设备序列号")
private String aeid = "";
/**
*
*/
@ApiModelProperty(value = "设备创建者")
private String creator;
/**
*
*/
@ApiModelProperty(value = "创建时间")
private String createtime;
/**
*
*/
@ApiModelProperty(value = "事件类型")
private String eventtype;
/**
*
*/
@ApiModelProperty(value = "设备类型编号")
private String modelno;
/**
*
*/
@ApiModelProperty(value = "事件名")
private String eventname;
/**
*
*/
@ApiModelProperty(value = "是否是重要的设备")
private String isvip;
/**
* data
*/
@ApiModelProperty(value = "返回数据对象")
private T content;
}

@ -0,0 +1,37 @@
package com.example.demokafka.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/9/5 17:01
*/
@Data
@ApiModel(value="空气质量传感器返回对象", description="空气质量传感器返回对象")
public class KongQiZhiLiangChuanGanQiDTO implements Serializable {
@ApiModelProperty(value = "灯控设备id")
private String devid;
@ApiModelProperty(value = "Zigbee信号强度")
private String device_lqi;
@ApiModelProperty(value = "光照度")
private String lux;
@ApiModelProperty(value = "湿度(除以100为 %rh)")
private String humidity;
@ApiModelProperty(value = "温度(除以100为 ℃如3350除以100为33.5℃。)")
private String temperature;
@ApiModelProperty(value = "PM2.5浓度(1ug/m³)")
private String pm25;
@ApiModelProperty(value = "二氧化碳浓度(ppm)")
private String co2;
@ApiModelProperty(value = "甲醛浓度(10ug/m³)")
private String ch2o;
@ApiModelProperty(value = "空气中挥发的有机化合物含量(10ug/m³)")
private String voc;
@ApiModelProperty(value = "电压(电池电压值, 100mV为单位。 上报30的话就是 30*100mV=3V。基于此判断低电量。3.3V正常2.7以下为异常。)")
private String volt;
}

@ -1,22 +0,0 @@
package com.example.demokafka.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author
* @date 2023/5/11
*/
@Data
@ApiModel
public class Person {
@ApiModelProperty(value = "人物ID", example = "1")
private Integer id;
@ApiModelProperty(value = "人物姓名")
private String name;
private LocalDateTime birthDay;
}

@ -0,0 +1,42 @@
package com.example.demokafka.util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/9/5 15:34
*/
public class FastJsonUtils<T> {
/**
* fastjsonJSONArray
* @param jsonArray
* @param clz
* @param <T>
* @return list
*/
public static <T> List<T> convertJSONArrayToTypeList(JSONArray jsonArray, Class<T> clz){
if (CollectionUtils.isEmpty(jsonArray)){
return new ArrayList<T>();
}
List<T> result = new ArrayList<T>(jsonArray.size());
jsonArray.forEach(element->{
// 基础类型不可以转化为JSONObject需要特殊处理
if (element instanceof String
|| element instanceof Number
|| element instanceof Boolean
){
result.add((T)element);
}else {
T t = JSONObject.toJavaObject((JSONObject)element, clz);
result.add(t);
}
});
return result;
}
}

@ -1,3 +1,4 @@
/*
package com.example.demokafka.util; package com.example.demokafka.util;
import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.consumer.Consumer;
@ -8,11 +9,13 @@ import org.apache.kafka.clients.consumer.KafkaConsumer;
import java.time.Duration; import java.time.Duration;
import java.util.Arrays; import java.util.Arrays;
*/
/** /**
* @Description * @Description
* @Author ZhouWenTao * @Author ZhouWenTao
* @Date 2023/9/1 14:05 * @Date 2023/9/1 14:05
*/ *//*
public class Kafka extends Thread { public class Kafka extends Thread {
Consumer<String, String> consumer116 = new KafkaConsumer<String, String>(KafkaUtil.getSafeConsumerPro()); Consumer<String, String> consumer116 = new KafkaConsumer<String, String>(KafkaUtil.getSafeConsumerPro());
@ -26,10 +29,10 @@ public class Kafka extends Thread {
} }
private void poll(String sourceTopicName) { private void poll(String sourceTopicName) {
/*try { try {
consumer116.subscribe(Arrays.asList(sourceTopicName)); consumer116.subscribe(Arrays.asList(sourceTopicName));
while (true) { while (true) {
ConsumerRecords<String, String> records = consumer116.poll(Duration.ofMillis(5000)); ConsumerRecords<String, String> records = consumer116.poll(5000);
for (ConsumerRecord<String, String> consumerRecord : records) { for (ConsumerRecord<String, String> consumerRecord : records) {
String kfkContent = consumerRecord.value(); String kfkContent = consumerRecord.value();
System.out.println("Success to receive kafka :" + kfkContent); System.out.println("Success to receive kafka :" + kfkContent);
@ -41,7 +44,7 @@ public class Kafka extends Thread {
if (consumer116 != null) { if (consumer116 != null) {
consumer116.close(); consumer116.close();
} }
}*/ }
} }
} }*/

@ -1,6 +1,9 @@
package com.example.demokafka.util; package com.example.demokafka.util;
import org.apache.commons.lang.StringUtils;
import org.apache.kafka.common.serialization.StringDeserializer; import org.apache.kafka.common.serialization.StringDeserializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Properties; import java.util.Properties;
@ -9,11 +12,14 @@ import java.util.Properties;
* @Author ZhouWenTao * @Author ZhouWenTao
* @Date 2023/9/1 13:40 * @Date 2023/9/1 13:40
*/ */
@Component
public class KafkaUtil { public class KafkaUtil {
public static String trustestore="/opt/kafka/client.trustestore.p12"; public static String trustestore="/opt/kafka/client.trustestore.p12";
public static String appCode = "42142fd0jkbf4515853b7fcec64748f6"; @Value("${appCode}")
public String appCode;
@Value("${secret}")
public String secret;
public static String X_Consumer_Username = "dwVendor"; public static String X_Consumer_Username = "dwVendor";
public static Properties getSafeProducerPro() { public static Properties getSafeProducerPro() {
@ -33,17 +39,23 @@ public class KafkaUtil {
return properties; return properties;
} }
//keytool -keystore D:/keystore/client.trustestore.p12 -storepass pwd123 -noprompt -alias client.trustestore -import -file D:/keystore/ca.crt -storetype PKCS12 //keytool -keystore D:/keystore/client.trustestore.p12 -storepass pwd123 -noprompt -alias client.trustestore -import -file D:/keystore/ca.crt -storetype PKCS12
public static Properties getSafeConsumerPro() { public Properties getSafeConsumerPro() {
Properties properties = new Properties(); Properties properties = new Properties();
properties.setProperty("bootstrap.servers", "10.0.10.153:29551,10.0.10.153:29552");
properties.setProperty("group.id", "isv-kafka"); properties.setProperty("group.id", "isv-kafka");
properties.setProperty("key.deserializer", StringDeserializer.class.getName()); properties.setProperty("key.deserializer", StringDeserializer.class.getName());
properties.setProperty("value.deserializer", StringDeserializer.class.getName()); properties.setProperty("value.deserializer", StringDeserializer.class.getName());
// properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"dwVendor\" password=\"fEVcb^QFB;IN$K5\";"); if (StringUtils.isNotBlank(appCode)) {
// properties.setProperty("sasl.mechanism", "SCRAM-SHA-512"); properties.setProperty("bootstrap.servers", "10.0.10.153:29553,10.0.10.153:29554");
// properties.setProperty("security.protocol", "SASL_SSL"); properties.setProperty("sasl.jaas.config", String.format("org.apache.kafka.common.security.scram.ScramLoginModule required username=\"%s\" password=\"%s\";",appCode,secret));
// properties.setProperty("ssl.truststore.location", trustestore); properties.setProperty("sasl.mechanism", "SCRAM-SHA-512");
// properties.setProperty("ssl.truststore.password", "pwd123"); properties.setProperty("security.protocol", "SASL_SSL");
properties.setProperty("ssl.truststore.location", trustestore);
properties.setProperty("ssl.truststore.password", secret);
}else{
properties.setProperty("bootstrap.servers", "10.0.10.153:29551,10.0.10.153:29552");
}
properties.setProperty("enable.auto.commit", "true"); properties.setProperty("enable.auto.commit", "true");
properties.setProperty("auto.commit.interval.ms", "1000"); properties.setProperty("auto.commit.interval.ms", "1000");
properties.setProperty("session.timeout.ms", "30000"); properties.setProperty("session.timeout.ms", "30000");

@ -8,7 +8,7 @@ spring:
#??????? #???????
topic: sourcetopic topic: sourcetopic
producer: producer:
bootstrap-servers: 10.0.10.153:29551 bootstrap-servers: 10.0.10.153:29551,10.0.10.153:29552,10.0.10.153:29553,10.0.10.153:29554
key-serializer: org.apache.kafka.common.serialization.StringSerializer key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer
retries: 3 retries: 3
@ -21,3 +21,7 @@ spring:
send.buffer.bytes: 131072 #??128KB???socket???????????-1?????????? send.buffer.bytes: 131072 #??128KB???socket???????????-1??????????
request.timeout.ms: 10000 #??30000ms?????????????? request.timeout.ms: 10000 #??30000ms??????????????
transaction.timeout.ms: 5000 transaction.timeout.ms: 5000
key: dwVendor
secret: fEVcb^QFB;IN$K5
appCode: 42142fd0jkbf4515853b7fcec64748f6

Loading…
Cancel
Save