Spring Kafka

【HAVENT原创】Spring Boot + Spring-Kafka 异步配置

浪子不回头ぞ 提交于 2019-12-07 19:40:21
近日我们项目组采用 Kafka 来做系统日志统一管理,但是天降横祸的让 Kafka 集群(3台服务器)都挂了,堪比中大奖的节奏,随之而来的是使用 Kafka 发送消息日志的服务全部卡死,经过排查发现居然是 Kafka 当机导致了调用 Kafka 发送日志服务一直处于阻塞状态。 最后我们在检查代码的时候发现,如果无法连接 Kafka 服务,则会出现一分钟的阻塞。以上问题有两种解决方案: 一、开启异步模式 ( @EnableAsync ) @EnableAsync @Configuration public class KafkaProducerConfig { private static final Logger LOGGER = LoggerFactory.getLogger(KafkaProducerConfig.class); @Value("${kafka.brokers}") private String servers; @Bean public Map<String, Object> producerConfigs() { Map<String, Object> props = new HashMap<>(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, servers); props.put

问题排查: spring kafka memory leak

你。 提交于 2019-12-07 09:41:12
现象 : 某个服务上线后,发现运行几天时间后,就没有响应了,也没有日志输出。之前的日志里面也没有任何异常。 猜测 : 进程也在,nginx等日志都正常,数据库也正常,怀疑就是服务有内存泄露。 排查思路 1. 生产环境不能影响正常服务,出现问题后,运维第一时间做了重启,现场就没了。然后用写了shell先定时重启(多台暂不间断提供服务)。 2. 接下来,就使用jmap看内存的对象数量了,总体来时只增不减的就是有问题的。同时,也做了个单独的测试环境,运行起来服务,准备重现问题。 3. 以下以重现的测试环境为例,首先找到进程号(假设是1302) (1) 使用 jmap -heap 1302 先看一下堆的情况 Attaching to process ID 1302, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.131-b11 using thread-local object allocation. Parallel GC with 8 thread(s) Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 4164943872 (3972.0MB)

【SpringBoot整合】1.整合kafka

ぃ、小莉子 提交于 2019-11-26 16:33:12
简介 kafka简介。 再次之前,先安装kafka服务。 参考文档: spring for kafka文档 spring boot for kafka文档 1、依赖包 <!-- kafka --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> 2、配置组件 注意一些配置可以移除到配置文件中。 2.1、配置生产者组件 package com.sunrun.emailanalysis.config; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.common.serialization.StringSerializer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.kafka.annotation.EnableKafka; import org