0

也许有人已经问过这个问题,但经过一些搜索,我仍然找不到答案。

我有多个 Spring Boot 应用程序,它们应该通过事件流和 REST 调用相互通信。为了强制 DTO 的一致性,我想使用 Apache Avro 生成 Java 类,但我不知道在哪里存储 Avro 模式。

假设 App1 应该调用 App2,因此 App2 生成 DTO 模式,App1 将使用这些模式来使用其数据。我在哪里可以存储 App1 的模式,以便 App2 可以使用它们生成所需的 Java 类。

同样,App1 在 Redis 上发布消息,其他读取这些消息的应用程序需要使用 Avro 模式反序列化为 Java 对象,如果我可以将这些模式集中在某个地方,那将非常有用。

我使用 Maven 和 Avro maven 插件。

非常感谢你的帮助。

4

2 回答 2

0

您可以创建一个 APP_commons 服务来满足 avro 模式,该模式将包含生成每个 APP 需要的值/数据的相应方法。

APP_commons 可以作为依赖添加到 APP1 和 APP2 的 pom 中。

希望这可以帮助!您也可以使用假装客户端。

于 2020-02-21T09:43:00.333 回答
0

我找到了这个 Spring Cloud 项目的解决方案https://github.com/spring-cloud/spring-cloud-schema-registry 它提供了我需要的东西。

于 2020-03-30T17:09:37.457 回答