微服務架構(Microservice Architecture)中很重要的一環就是服務註冊及發現(Service Registration and Discovery)。
微服務是由許多的「服務(Services)」所組成,每個「服務」的實例(Service instance)就是一個獨立的網路應用程式,彼此透過HTTP來溝通,因此每個服務必須知道其他服務的存在及位址(IP and port)。
由於微服務中每個服務實例是動態部屬的,也就是每個服務實例的位址是動態分配而非固定,因此需要一套機制來維護目前整個微服務系統中每一個服務實例的位址及監控每一個服務實例的健康狀態,這個機制就稱為服務註冊及發現(Service Registration and Discovery)。
Interstellar Murphy Cooper discover a final solution to gravity equation to save the humanity.
Spring Cloud Netflix Eureka(簡稱Eureka)就是一個服務註冊及發現框架。當一個服務需要呼叫另一個服務的API時,只要透過Eureka Server,便可以知道另一個服務的位址。
Eureka包含兩個部分,Eureka Clients與Eureka Server。
Eureka Server為服務的註冊及發現中心(Discovery Server),負責維護每個註冊的Eureka Clients服務,管理每個服務的位址,監控每個client的健康。
Eureka Server的建立請參考:Spring Cloud 建立 Spring Cloud Netflix Eureka Server。
Eureka Clients則是向Eureka Server註冊的服務。換句話說,當一個服務向Eureka Server註冊後,該服務即稱為Eureka Client。
Eureka Clients的建立請參考:Spring Cloud 建立 Spring Cloud Netflix Eureka Client。
除了Eureka,還有其他的服務發現框架如Spring Cloud Consul,Spring Cloud Zookeeper等。
除了Spring Cloud,以k8s搭配Docker也可達到相同的目的,並且與Spring Cloud解耦。也就是說各微服務不用一都得是Java + Spring Cloud框架,可以是其他語言搭建的服務,例如Pyhton + Flask or Django,php + Laravel等。
如果本篇有幫助到您,幫忙點一下廣告支持,感恩。
參考:
沒有留言:
張貼留言