目前流行基於多個微服務開發項目:
基於Spring、Spring Cloud、Spring Boot創建微服務,各個微服務之間使用Spring Feign調用。
我們把所有微服務註冊在Spring Eureka上,SpringCloud將它集成在自己的子項目spring-cloud-netflix中,實現SpringCloud的服務發現功能。
Eureka Server會提供服務註冊服務,各個服務節點啓動後,會在Eureka Server中進行註冊,這樣Eureka Server中就有了所有服務節點的信息,並且Eureka有監控頁面,可以在頁面中直觀的看到所有註冊的服務的情況。同時Eureka有心跳機制,當某個節點服務在規定時間內沒有發送心跳信號時,Eureka會從服務註冊表中把這個服務節點移除。Eureka還提供了客戶端緩存的機制,即使所有的Eureka
Server都掛掉,客戶端仍可以利用緩存中的信息調用服務節點的服務。
啓動微服務後我們訪問Eureka註冊中心,會看到我們註冊的服務,多套環境要注意,spring.application.name要區分開來,否則會影響服務調用與測試,若在開發人員誤操作將兩個相同name的服務啓動註冊到Eureka中心,那麼Eureka會保留着兩個服務.
(在Spring配置properties文件中加入參數eureka.client.serviceUrl.defaultZone=http://www.eureka.com/eureka
spring.application.name=item-service-local
server.port=8085)
我們使用Spring Feign來進行微服務之間的調用,在需要調用另外一個微服務的時候,我們在業務層建一個client類,在被調用者的控制層建一個用來被調用的類,注意調用路徑的匹配,此時我們就可以像調用普通方法一樣調用遠程方法。
調用者:
被調用者: