2017-07-24 238 views
1

我們有兩個服務。但是,過去,這兩項服務是一項服務,但由於不同的流量要求而被拆分。微服務共享代碼

服務被兩種客戶端使用;其他服務和UI客戶端(網頁,桌面和手機)。

消費者服務1:服務,

  1. 使用裸露的端點(addInputremoveInput)的數量非常有限。
  2. 生成高流量。

消費者服務2:UI客戶,

  1. 使用大量暴露的端點
  2. 產生更少的流量。

目前,他們正在共享代碼,但據我所知,微服務不應共享基本代碼。因此我們相信使用這種方法會出現問題。

爲了解決這種微服務架構問題,需要了解哪些關鍵問題?

+0

如何共享代碼?你是否在使用類似npm或maven的東西?或者你只是手動分享二進制文件? –

+0

目前,我們正在維護一個類似於域的庫,以便訪問(讀寫)共享數據庫。這兩個服務應該(或不)共享這個庫 – Jordi

+0

這可能是一個重複的問題https://stackoverflow.com/questions/35465175/microservice-architecture-questions-about-code-resue-security-and-database- shar或https://stackoverflow.com/questions/25600580/sharing-code-and-schema-between-microservices –

回答

0

你是什麼意思微服務不應該共享代碼。你會故意去搜索2個不同的TCP棧嗎?如果你用Java寫了一個,你是否必須在Go中編寫另一個?

服務可以共享代碼,如果是第三方代碼或第一方代碼,則無關緊要。你不想做的,就像你在服務的其他方面做的那樣,確保自治。自治是讓你靈活變化的原因。就共享代碼而言,自治意味着如果更新了共享組件,說處理授權的位不會自動需要更新其他服務中的那個位。

隨着時間的推移和需求的變化 - 服務將會發展。隨着需求的變化,他們可能會在他們使用的代碼中出現分歧,也許您仍然可以重用位。請注意,重複使用和共享代碼本身並不是目的,你會很好