1
KafkaTemplate은 봄 부팅 스레드 안전합니다. 하나의 KafkaTemplate을 만들고이를 웹 서비스의 여러 요청에 대해 동일한 카프카 항목으로 보내는 데 사용할 수 있습니까?KafkaTemplate 스레드가 안전합니까?
KafkaTemplate은 봄 부팅 스레드 안전합니다. 하나의 KafkaTemplate을 만들고이를 웹 서비스의 여러 요청에 대해 동일한 카프카 항목으로 보내는 데 사용할 수 있습니까?KafkaTemplate 스레드가 안전합니까?
예, 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
변수 정의에 의해 판단을, 당신은 따라서이 스레드해야합니다, 그것은 여러 스레드에서 사용하도록 설계되어 있음을 추론 할 수있다 -safe (그렇지 않은 경우 버그 보고서를 제출해야합니다).
디자이너가 정보 @ThreadSafe
으로 주석을 달았거나 클래스의 JavaDoc 주석에서 적어도 지적한 경우 더 좋을 것입니다.
더 이상 동의 할 수 없습니다. 오픈 소스는 좋은 라이브러리가 많이 있지만, 소스 코드의 문서 나 주석에 대해서는 대개 아무 것도없고 매우 간략합니다. JDK는 제가 지금까지 보아온 자바 소스 코드 중에서 가장 잘 문서화 된 것입니다. –