Estoy tratando de descubrir Spring Kafka. Mientras seguía la referencia, encontré un error en este ejemplo. No hay ningún método brokerListProperty()
en la clase EmbeddedKafkaRule
. ¿Cómo debo refactorizar el código para que funcione?
Código del enlace de arriba:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyApplicationTests {
@ClassRule
public static EmbeddedKafkaRule broker = new EmbeddedKafkaRule(1,
false, "someTopic")
.brokerListProperty("spring.kafka.bootstrap-servers");
}
@Autowired
private KafkaTemplate<String, String> template;
@Test
public void test() {
...
}
}
2 respuestas
Junto con el @SpringBootTest
considere usar un @EmbeddedKafka
en su lugar. Ese tiene una propiedad como:
/**
* The property name to set with the bootstrap server addresses instead of the default
* {@value org.springframework.kafka.test.EmbeddedKafkaBroker#SPRING_EMBEDDED_KAFKA_BROKERS}.
* @return the property name.
* @since 2.3
* @see org.springframework.kafka.test.EmbeddedKafkaBroker#brokerListProperty(String)
*/
String bootstrapServersProperty() default "";
El objetivo para un EmbeddedKafkaRule
, cuando no usamos Spring en las pruebas en absoluto. Y estoy de acuerdo en que nos falta una propiedad de propagación de ese EmbeddedKafkaRule
en un brokerListProperty()
. Por favor, siéntase libre de plantear un problema de GH y contribuir con una solución al respecto.
Mientras tanto, puede solucionarlo así:
@ClassRule
public static EmbeddedKafkaRule broker = new EmbeddedKafkaRule(1, false, "someTopic");
@BeforeAll
pubic static void setup() {
broker.getEmbeddedKafka().brokerListProperty("spring.kafka.bootstrap-servers");
}
Puede agregar brokerListProperty así usando KafkaTestUtils
@Before
public void setUp() throws Exception {
// set up the Kafka producer properties
Map<String, Object> senderProperties =
KafkaTestUtils.senderProps(
broker.getEmbeddedKafka().getBrokersAsString());
}
Y puede seguir este tutorial parece bastante correcto.
Preguntas relacionadas
Nuevas preguntas
java
Java es un lenguaje de programación de alto nivel. Utilice esta etiqueta cuando tenga problemas para usar o comprender el idioma en sí. Esta etiqueta rara vez se usa sola y se usa con mayor frecuencia junto con [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] y [maven].