作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Spring Boot 线程中的 KafkaTemplate 是否安全。我可以创建一个 KafkaTemplate 并使用它来将信息发送到同一 kafka 主题,以便在我的 Web 服务中进行多个请求。
最佳答案
是的,KafkaTemplate
被设计为线程安全的。如果你看看它的 source code ,您会看到以下成员变量声明:
protected final Log logger = LogFactory.getLog(this.getClass()); //NOSONAR
private final ProducerFactory<K, V> producerFactory;
private final boolean autoFlush;
private final boolean transactional;
private final ThreadLocal<Producer<K, V>> producers = new ThreadLocal<>();
private RecordMessageConverter messageConverter = new MessagingMessageConverter();
private volatile String defaultTopic;
ThreadLocal
来看和
volatile
变量定义,你可以推断它被设计为从多个线程使用,因此它必须是线程安全的(如果不是,那么你应该提交错误报告)。
@ThreadSafe
对其进行注释会更好尽管或至少在类的 JavaDoc 注释中指出了这一点。
关于spring-boot - KafkaTemplate 线程安全吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42105672/
我是一名优秀的程序员,十分优秀!