2017-05-09 109 views
-1

據我所知,REST體系結構由「前端」 - 從客戶端接收請求的服務器,以及實際爲「後端」的服務 - 存儲在服務中的所有業務邏輯和數據組成(完全相同的應用程序,它在多臺服務器上同時運行)。如果每項服務都有自己的數據存儲,那麼數據如何同步?REST服務之間的數據同步

回答

0

每個服務都有一個數據集,可以用不同的方式建立同步。請查看下面的示例。

服務A - 產品 - ProductDB

服務B - 用戶 - USERDB

如果用戶希望讓所有的產品與黑頭髮的用戶(例如),這將是一個共同的過程,將系統遵循:

1)從客戶機接收請求在網關

2)轉到用戶的服務,並用黑色毛髮的使用者。

select * from users where hair_color='black'

3)現在用戶服務發送的用戶ID,以產品的服務。所以產品服務執行以下查詢。

select * from product where user_id IN $(userIds)

4)最後,產品返回給客戶端。

請閱讀有關網關https://www.nginx.com/blog/building-microservices-using-an-api-gateway/

+0

感謝您的回覆,但它並不完全是我的意思。即使使用網關,如果在不同服務器上有多個服務A實例,每個服務器都有自己的數據庫,並且其中一個數據發生更改,其他服務器上的服務A的其他實例如何同步其數據庫?是否有任何圖書館,或者這應該手動完成? – krund

+0

所有的服務A將查找相同的數據庫!!!!!!!!但服務B無法查看服務數據庫。請閱讀有關微服務架構設計。 – cpap

+0

我找到了答案。這裏http://realscale.cloud66.com/database-server-scaling-strategies/每個應用程序有多個數據庫,但這些是隻讀的。(#1只讀副本) – krund