0
我想构建一个微服务体系结构。我正在使用Java技术,如Spring,Hibernate等。在这种情况下,我将实体作为Java类来使用。例如,微服务具有A实体,B微服务具有B实体等等。所以,如果A和B之间存在一对多关系,我需要将其中一个类导入其他类来声明它。在微服务设计中封装ORM实体
// in A microservice
// need to import class of B like "import com.project.B", but can't
// because, it is different project.
@Entity
class A{
@OneToMany
B b;
}
//in B microservice
@Entity
class B{
}
但是,由于微服务设计,他们都在不同的包或服务。我是否应该创建另一个项目作为共享库,包括其内部的所有实体,然后包含在每个微服务中?你有另一种解决方案,或者这是一个解决方案?
我在这里面临着同样的担忧,所以你如何保持控制权的一致性?在外键ID的模型中有一个字段看起来不正确。 –
我对此有相同的感觉。但是,它看起来是正确的解为了保持一致性,使用消息代理(如RabbitMQ)可能是很好的解决方案。 你可以看看这个[链接](https://programmaticponderings.com/2017/05/15/eventual-consistency-decoupling-microservices-with-spring-amqp-and-rabbitmq/)。 –
有趣的阅读,所以,而不是有一个“外键属性”作为B_ID你应该有一个关系类A(可能没有完全实现),并确保它与发布 - 订阅事件队列的一致性..谢谢@Ugurcan! –