dSq*_*red 5 soa ruby-on-rails rails-api
我正在致力于使用 Ruby/Rails(Grape、Rails-API 等)构建一套(微)服务,为面向用户的 Web/移动应用程序提供服务。这些服务是独立的/隔离的,但是模型/实体之间需要有一些跨服务关系。
对于has_one/belongs_to关系,我可以简单地将ID外部实体的 存储在本地模型中,反之亦然。我面临的问题是如何处理has_many/belongs_to或has_many/has_many关系。
例如,如果我有一个OrderandProduct模型,在整体 Rails 应用程序中我将执行以下操作:
class Order < ActiveRecord::Base
has_many :products, through :order_products
end
class Product < ActiveRecord::Base
has_many :orders, through :order_products
end
class OrderProduct < ActiveRecord::Base
belongs_to :order
belongs_to :product
end
Run Code Online (Sandbox Code Playgroud)
在处理不同的服务时如何处理这种类型的关系?有没有一种“轨道方式”来做到这一点?
到目前为止,我提出的最佳选择是ID使用 PostgressSQL 列之类的东西将foreign s 作为散列存储在模型中hstore,但从可扩展性和数据完整性的角度来看,这感觉都是错误的。
任何帮助将不胜感激!
这些服务是独立的/隔离的,但是模型/实体之间需要有一些跨服务关系。
Rails Way (TM) 就是为这种关系提供一个整体应用程序。
如果你有这些限制并且你正在构建“微服务” - 在我看来,你在构建你的平台方面做得不好。