也许有人已经问过这个问题,但经过一些搜索,我仍然找不到答案。
我有多个Spring Boot应用程序,它们应该通过事件流和REST调用相互通信。为了增强DTO的一致性,我想使用ApacheAvro来生成Java类,但我不知道在哪里存储Avro模式。
假设App1应该调用App2,那么App2将生成DTO架构,App1将使用该架构来消耗其数据。我可以在哪里存储App1的模式,以便App2可以使用它们来生成所需的Java类。
同样,App1在Redis和其他读取这些消息的应用程序上发布消息。这些消息需要使用Avro模式反序列化到Java对象,如果我能将这些模式集中在某个地方,那将非常有用。
我使用Maven和Avro Maven插件。
非常感谢你的帮助。
您可以创建一个APP_commons服务,该服务将满足avro模式的需要,其中将包含生成每个应用程序所需的值/数据的相应方法。
APP_ commons可以作为依赖项添加到APP1和APP2的pom中。
希望这能有所帮助!此外,您还可以使用外国客户端。
我找到了这个Spring Cloud项目的解决方案https://github.com/spring-cloud/spring-cloud-schema-registry它提供了我所需要的一切。