我喜欢微服务的想法,并认为我理解了基本想法。 我想建立一个微服务系统,其中每个服务都是一个独立的spring-boot项目。例如,有两个服务,Service-A和Service-B。B具有一些JPA实体,而A使用RestTemplate向B发送请求。 RestTemplate.getForObject(...)需要返回的类类型。那么我必须在Service-A中(单独的项目)也包含实体类,还是有更好的方法将实体值发送到其他服务? 希望我的问题已经解释得足够清楚。
我见过两种处理方式:1)定义共享复杂类型的通用库 - 您有一个服务A的项目和一个服务B的项目,您还需要一个lib-alpha项目,可能还需要另一个lib-beta项目等。这将是多个服务可以利用的特定领域复杂类型的Java实现。2)制作一份文档完备的API,并让消费者自行解决问题 - 这通常涉及定义高级数据编码方案(使用XML、JSON等),并在发送到API提供者之前在Service A中序列化数据,然后在接收时对其进行反序列化。