From 8bf69a5124d12aeca128ef93432e2412b9cc54ac Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期五, 22 十一月 2024 10:46:11 +0800 Subject: [PATCH] MQTT测试Demo --- /dev/null | 1 pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application.yml | 28 +--- pipIrr-platform/pipIrr-global/pom.xml | 25 +++ pipIrr-platform/pipIrr-global/src/main/resources/application-database-test.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttClientConnectorPool.java | 91 +++++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSubscriber.java | 77 ++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java | 53 -------- pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSender.java | 27 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/TestController.java | 41 ++++++ 10 files changed, 270 insertions(+), 81 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/pom.xml b/pipIrr-platform/pipIrr-global/pom.xml index d197ee8..91289a1 100644 --- a/pipIrr-platform/pipIrr-global/pom.xml +++ b/pipIrr-platform/pipIrr-global/pom.xml @@ -166,11 +166,28 @@ <version>2.3.2</version> </dependency> - <!--RocketMQ--> + <!-- Spring Boot MQTT 渚濊禆 --> <dependency> - <groupId>org.apache.rocketmq</groupId> - <artifactId>rocketmq-spring-boot-starter</artifactId> - <version>2.2.3</version> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-integration</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.integration</groupId> + <artifactId>spring-integration-mqtt</artifactId> + </dependency> + + <dependency> + <groupId>org.reactivestreams</groupId> + <artifactId>reactive-streams</artifactId> + <version>1.0.3</version> + </dependency> + + <!-- Mosquitto 瀹㈡埛绔簱 --> + <dependency> + <groupId>org.eclipse.paho</groupId> + <artifactId>org.eclipse.paho.client.mqttv3</artifactId> + <version>1.2.2</version> </dependency> </dependencies> diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml index ec02735..190348e 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml @@ -5,9 +5,9 @@ #name: sp type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull +# url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://8.130.130.233:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull -# url: jdbc:mysql://127.0.0.1:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://127.0.0.1:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-test.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-test.yml index 778e7bc..4e972d0 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-test.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-test.yml @@ -5,9 +5,9 @@ #name: test type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.40.166:3306/pipIrr_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull +# url: jdbc:mysql://192.168.40.166:3306/pipIrr_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://8.130.130.233:3306/pipIrr_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull -# url: jdbc:mysql://127.0.0.1:3306/pipIrr_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://127.0.0.1:3306/pipIrr_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java deleted file mode 100644 index 0be11b3..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.dy.pipIrrApp.workOrder; - -import org.apache.rocketmq.spring.annotation.ConsumeMode; -import org.apache.rocketmq.spring.annotation.MessageModel; -import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; -import org.apache.rocketmq.spring.core.RocketMQListener; -import org.springframework.stereotype.Component; - -/** - * @author ZhuBaoMin - * @date 2024-11-04 11:00 - * @LastEditTime 2024-11-04 11:00 - * @Description - */ - -@Component -@RocketMQMessageListener( - topic = "workOrder2", - consumerGroup = "consumer_group", - selectorExpression = "*", - messageModel = MessageModel.CLUSTERING, - consumeMode = ConsumeMode.CONCURRENTLY -) -public class ConsumerListener implements RocketMQListener<String> { - @Override - public void onMessage(String message) { - System.out.println("ConsumerListener receive message: " + message); - } -} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java index 38b9743..6541c45 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java @@ -18,19 +18,12 @@ import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.exception.MQBrokerException; import org.apache.rocketmq.client.exception.MQClientException; -import org.apache.rocketmq.client.producer.DefaultMQProducer; -import org.apache.rocketmq.client.producer.SendResult; -import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.remoting.exception.RemotingException; -import org.apache.rocketmq.spring.core.RocketMQTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; -import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; @@ -47,18 +40,6 @@ @RequiredArgsConstructor public class WorkOrderCtrl { private final WorkOrderSv workOrderSv; - - @Autowired - private RocketMQTemplate rocketMQTemplate; - - @Value("${rocketmq.name-server}") - protected String nameServer; - - @Value("${rocketmq.producer.group}") - protected String producerGroup; - - @Value("${rocketmq.topic}") - protected String topic; /** * 鍒涘缓宸ュ崟 @@ -88,39 +69,11 @@ return BaseResponseUtils.buildErrorMsg("鑾峰彇宸ュ崟澶辫触"); } - if(!sendWorkOrder(voWorkOrder, workOrderId)) { - return BaseResponseUtils.buildErrorMsg("宸ュ崟鎺ㄩ�佸け璐�"); - } + //if(!sendWorkOrder(voWorkOrder, workOrderId)) { + // return BaseResponseUtils.buildErrorMsg("宸ュ崟鎺ㄩ�佸け璐�"); + //} return BaseResponseUtils.buildSuccess(); - } - - /** - * 閫氳繃RocketMQ鎺ㄩ�佸伐鍗曚富閿� - * @param voWorkOrder 宸ュ崟瑙嗗浘瀵硅薄 - * @param workOrderId 宸ュ崟ID - * @return - * @throws MQClientException - * @throws MQBrokerException - * @throws RemotingException - * @throws InterruptedException - */ - private Boolean sendWorkOrder(VoWorkOrder voWorkOrder, Long workOrderId) throws MQClientException, MQBrokerException, RemotingException, InterruptedException { - String tag = voWorkOrder.getInspector(); - String key = voWorkOrder.getInspectorId().toString(); - //String message = JSON.toJSONString(voWorkOrder); - String message = workOrderId.toString(); - - DefaultMQProducer producer = new DefaultMQProducer(producerGroup); - producer.setNamesrvAddr(nameServer); - producer.start(); - Message msg = new Message(topic, tag, key, message.getBytes(StandardCharsets.UTF_8)); - SendResult approveSendResult = producer.send(msg); - if(!approveSendResult.getSendStatus().toString().equals("SEND_OK")) { - return false; - } - - return true; } /** diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttClientConnectorPool.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttClientConnectorPool.java new file mode 100644 index 0000000..56545be --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttClientConnectorPool.java @@ -0,0 +1,91 @@ +package com.dy.pipIrrApp.workOrder.mqtt; + +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.MqttClient; +import org.eclipse.paho.client.mqttv3.MqttConnectOptions; +import org.eclipse.paho.client.mqttv3.MqttException; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * @author ZhuBaoMin + * @date 2024-11-16 11:27 + * @LastEditTime 2024-11-16 11:27 + * @Description MQTT瀹㈡埛绔繛鎺ユ睜锛屽澶栨彁渚涗竴涓垵濮嬪寲鐨凪QTT瀹㈡埛绔� + */ + +@Slf4j +public class MqttClientConnectorPool { + public static MqttClient mqttClient; + + /** + * 杩炴帴MQTT瀹㈡埛绔� + * @return 鑾峰彇MQTT杩為槦瀵硅薄 + */ + public static MqttClient connectMQTT() { + if (mqttClient != null){ + log.info("宸插瓨鍦紒"); + return mqttClient; + } + + try { + // broker鍙婅繛鎺ヤ俊鎭� + String broker = "tcp://127.0.0.1:1883"; + String username = "mqtt_u"; + String password = "yjy"; + String clientId = System.currentTimeMillis() + ""; + + //鍒涘缓MQTT瀹㈡埛绔紙鎸囧畾broker銆佸鎴风id銆佹秷鎭寔涔呯瓥鐣ワ級 + mqttClient = new MqttClient(broker, clientId, new MemoryPersistence()); + + //鍒涘缓杩炴帴鍙傛暟閰嶇疆 + MqttConnectOptions options = new MqttConnectOptions(); + options.setUserName(username); + options.setPassword(password.toCharArray()); + //鏄惁娓呴櫎浼氳瘽 + options.setCleanSession(true); + //杩炴帴瓒呮椂鏃堕棿 + options.setKeepAliveInterval(20); + //鏄惁鑷姩閲嶈繛 + options.setAutomaticReconnect(true); + mqttClient.connect(options); + log.info("MqttClient 鏈嶅姟鍚姩broker鍒濆鍖栵紒"); + } catch (MqttException e){ + log.error("MqttClient connect Error:{}", e.getMessage()); + e.printStackTrace(); + } + return mqttClient; + } + + /** + * 鍏抽棴MQTT瀹㈡埛绔� + * @param client client + */ + public static void closeClient(MqttClient client){ + try { + // 鏂紑杩炴帴 + client.disconnect(); + // 鍏抽棴瀹㈡埛绔� + client.close(); + } catch (MqttException e){ + log.error("MqttClient disconnect or close Error锛歿}", e.getMessage()); + e.printStackTrace(); + } + } + + /** + * 鍏抽棴MQTT瀹㈡埛绔� + */ + public static void closeStaticClient(){ + try { + if (mqttClient != null){ + // 鏂紑杩炴帴 + mqttClient.disconnect(); + // 鍏抽棴瀹㈡埛绔� + mqttClient.close(); + } + } catch (MqttException e){ + log.error("MqttClient disconnect or close Error锛歿}", e.getMessage()); + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSender.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSender.java new file mode 100644 index 0000000..58ec033 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSender.java @@ -0,0 +1,27 @@ +package com.dy.pipIrrApp.workOrder.mqtt; + +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.MqttClient; +import org.eclipse.paho.client.mqttv3.MqttException; +import org.eclipse.paho.client.mqttv3.MqttMessage; + +/** + * @author ZhuBaoMin + * @date 2024-11-16 11:28 + * @LastEditTime 2024-11-16 11:28 + * @Description 娑堟伅鍙戦�佹柟娉� + */ + +@Slf4j +public class MqttMsgSender { + public void sendMessage(MqttClient client, String topic, String content, int qos){ + MqttMessage message = new MqttMessage(content.getBytes()); + message.setQos(qos); + try{ + client.publish(topic,message); + } catch (MqttException e){ + log.error("MqttClient publish text info Error:{}!", e.getMessage()); + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSubscriber.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSubscriber.java new file mode 100644 index 0000000..0c7c5c6 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/MqttMsgSubscriber.java @@ -0,0 +1,77 @@ +package com.dy.pipIrrApp.workOrder.mqtt; + +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import org.springframework.beans.factory.annotation.Value; + +/** + * @author ZhuBaoMin + * @date 2024-11-16 11:29 + * @LastEditTime 2024-11-16 11:29 + * @Description 鍒濆鍖栦竴涓狹qtt瀹㈡埛绔紝骞舵牴鎹厤缃闃卼opic + */ + +@Slf4j +public class MqttMsgSubscriber { + + @Value("${spring.mqtt.broker}") + private String broker; + + @Value("${spring.mqtt.username}") + private String username; + + @Value("${spring.mqtt.password}") + private String password; + + @Value("${spring.mqtt.topic}") + private String topic; + + @Value("${spring.mqtt.qos}") + private Integer qos; + + private String clientId = System.currentTimeMillis() + ""; + + public void readSubscribeTopicMessage(){ + try { + MqttClient client = new MqttClient(broker, clientId, new MemoryPersistence()); + + // 杩炴帴鍙傛暟 + MqttConnectOptions options = new MqttConnectOptions(); + options.setUserName(username); + options.setPassword(password.toCharArray()); + //鏄惁娓呴櫎浼氳瘽 + options.setCleanSession(true); + options.setConnectionTimeout(60); + options.setKeepAliveInterval(60); + client.setCallback(new MqttCallback() { + + @Override + public void connectionLost(Throwable throwable) { + log.error("杩炴帴涓㈠け"); + } + + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + log.info("topic涓�: " + topic); + log.info("qos涓�: " + mqttMessage.getQos()); + log.info("娑堟伅鍐呭涓�: " + new String(mqttMessage.getPayload())); + } + + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + // 褰撴秷鎭瀹屽叏浼犻�佸嚭鍘诲悗璋冪敤 + log.info("浜や粯瀹屾垚 ---Delivery complete!"); + // 鍙互鍦ㄨ繖閲屽鐞嗕竴浜涘彂閫佸畬鎴愬悗鐨勬竻鐞嗗伐浣� + } + }); + + client.connect(options); + client.subscribe(topic, qos); + } catch (MqttException e){ + log.error("MqttMsgSubscriber 杩炴帴鍚姩寮傚父锛歿}", e.getMessage()); + } catch (Exception e){ + log.error("MqttMsgSubscriber 璇诲彇娑堟伅寮傚父锛歿}", e.getMessage()); + } + } +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/TestController.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/TestController.java new file mode 100644 index 0000000..b2f3c37 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/mqtt/TestController.java @@ -0,0 +1,41 @@ +package com.dy.pipIrrApp.workOrder.mqtt; + +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.MqttClient; +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; + +/** + * @author ZhuBaoMin + * @date 2024-11-16 11:32 + * @LastEditTime 2024-11-16 11:32 + * @Description + */ + +@Slf4j +@RestController +@RequestMapping(path = "mqtt") +public class TestController { + @GetMapping("/mqtt/{msg}") + public String testSendMqttMsg(@PathVariable("msg") String msg){ + log.info("娑堟伅鍐呭锛歿}.", msg); + + MqttClient mqttClient = MqttClientConnectorPool.connectMQTT(); + MqttMsgSender sender = new MqttMsgSender(); + + String content = "{" + " \"deviceNo\": \"" + msg + "\"," + " \"val\": 232.5" + "}"; + + String topic = "workOrder"; + int qos = 1; + + if (null != mqttClient){ + sender.sendMessage(mqttClient, topic, content, qos); + } else { + log.info("MqttClient涓虹┖锛屾棤娉曞彂閫侊紒"); + return "澶辫触锛�"; + } + return "鎴愬姛锛�"; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index c61a5eb..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application.yml index 38443ef..9041c44 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application.yml @@ -1,6 +1,12 @@ spring: profiles: include: global, database, database-ym, database-sp, database-test + mqtt: + broker: tcp://127.0.0.1:1883 + username: mqtt_u + password: yjy + topic: workOrder + qos: 2 #actutor鐨剋eb绔彛 management: @@ -15,28 +21,6 @@ #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 idSuffix: ${pipIrr.app.idSuffix} -rocketmq: - topic: "workOrder" - consumer: - group: consumer_group - # 涓�娆℃媺鍙栨秷鎭渶澶у�硷紝娉ㄦ剰鏄媺鍙栨秷鎭殑鏈�澶у�艰�岄潪娑堣垂鏈�澶у�� - pull-batch-size: 10 - name-server: 127.0.0.1:9876 - producer: - # 鍙戦�佸悓涓�绫绘秷鎭殑璁剧疆涓哄悓涓�涓猤roup锛屼繚璇佸敮涓� - group: producer_group - # 鍙戦�佹秷鎭秴鏃舵椂闂达紝榛樿3000 - sendMessageTimeout: 10000 - # 鍙戦�佹秷鎭け璐ラ噸璇曟鏁帮紝榛樿2 - retryTimesWhenSendFailed: 2 - # 寮傛娑堟伅閲嶈瘯娆℃暟锛岄粯璁�2 - retryTimesWhenSendAsyncFailed: 2 - # 娑堟伅鏈�澶ч暱搴︼紝榛樿1024 * 1024 * 4(榛樿4M) - maxMessageSize: 4096 - # 鍘嬬缉娑堟伅闃堝�硷紝榛樿4k(1024 * 4) - compressMessageBodyThreshold: 4096 - # 鏄惁鍦ㄥ唴閮ㄥ彂閫佸け璐ユ椂閲嶈瘯鍙︿竴涓猙roker锛岄粯璁alse - retryNextServer: false logging: level: com: -- Gitblit v1.8.0