Если ваша "... Цель состоит в том, чтобы абстрагироваться от деталей базовой системы обмена сообщениями и предоставить моим микросервисам простой уровень службы обмена сообщениями для отправки и получения сообщений" , то почему бы просто не использовать spring-облако-поток?
Разработчик кода даже не должен знать, что код, который он / она пишет, будет частью некоторой системы сообщений.Например,
@SpringBootApplication
public class SampleStreamApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleStreamApplication.class);
}
@Bean
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}
Вышеприведенное является полным и полностью работающим приложением Spring Cloud Stream, которое (в контексте связующего Kafka) получит из темы «input» и отправит в тему «output» значение, котороебыла передана через функцию uppercase(..)
.
Да, преобразование типов прозрачно выполняется для вас как для JSON, Avro и т. д.
Очевидно, что есть некоторые детали, но мы, безусловно, можем обсудить их, когда выесть более конкретные вопросы.Теперь я бы предложил сначала пройти справочную документацию .