SpringCloud (GreenwichR2) 第一章 Eureka 服務註冊與調用 附源碼

SpringCloud 框架的演變由來是就很少介紹了。git

須要準備工具:

我這裏使用spring

IntelliJ IDEA (2018.2)api

JDK:1.8springboot

Maven 3.3.9bash

直接上乾貨,方便學習(不喜勿噴)~服務器

一.原理圖


主要能夠理解爲三個部分app

1.Eureka Server:用於提供服務註冊與發現功能,Eureka沒有提供後臺的存儲而是將服務保存在內存的註冊中心,經過心跳來保持最新狀態。負載均衡

2.Eureka Provider:服務提供者是Eureka的客戶端,向服務端註冊服務、向服務器發送心跳、獲取服務註冊列表。當服務註冊到服務端時,會提供本身的元信息(主機、端口、服務名等)。框架

3.Eureka Consumer:對於註冊發佈到服務端的服務,服務消費者能夠對其進行查找與調用,服務調用者也是一個Eureka客戶端,但其主要職責是查找與調用服務。maven

      ~開始擼代碼~

二.構建一個主工程(多模塊開發)

File -> New -> Project - Maven

建立一個maven項目


點擊next,建立包名


建立完目錄結構,並刪除src文件,pom.xml 文件暫時不用修改,進入第三節吧。


三.建立Eureka Server 模塊

選中scloud項目,右擊 New - Module - Spring Initializr (springcloud是一個基於springboot實現的一系列框架的集合,若是你的父pom.xml已經依賴Spring-boot 這個就建立maven模塊吧)




生成以下目錄結構


修改主工程的pom.xml 和 eureka_server 的pom.xml 文件

主工程的pom.xml


eureka_server 模塊 pom.xml


主工程啓動類加入註解@EnableEurekaServer

@SpringBootApplication
@EnableEurekaServer public class EurekaServerApplication {
        public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
複製代碼

配置eureka_server項目下的application.properties


到此,eureka_server 服務已經配置完成,如今咱們啓動項目 訪問 http://localhost:8666 端口


四.建立服務提供者模塊

    當服務提供者向server註冊時,它會提供一些元數據,例如主機和端口,URL,主頁等。Eureka server 從每一個client實例接收心跳消息。 若是心跳超時,則一般將該實例從註冊server中刪除。

建立步驟相似eureka_server模塊,依賴不同,以下圖


建立完成修改項目下的pom.xml


經過註解@EnableEurekaClient 代表本身是一個eureka client。

@SpringBootApplication
@EnableEurekaClientpublic class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
複製代碼

配置服務提供者的application.properties


爲了簡單的演示效果,我在程序入口在加入一個Restful接口

@SpringBootApplication
@EnableEurekaClient@RestControllerpublic class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
@Value("${server.port}")Stringport;
@RequestMapping("/hello")
public String home(@RequestParam(value ="name", defaultValue ="gdl") String name) {
     return "hello: " + name +" ,from port:" +port;
}
}
複製代碼

啓動服務,在啓動服務提供者。訪問 http://localhost:8666 





     繼續訪問接口 http://localhost:8667/hello?name='wrold'


五.建立服務消費者模塊

建立步驟和步驟四建立服務提供者同樣。

而後修改項目下的pom.xml文件 和 服務提供者相似,修改下包名等便可。

修改 application.properties 文件


啓動類加入註解 @EnableEurekaClient 並加入 Restful api 提供服務實例獲取案例,這裏實例後去方式採用Ribbon+RestTemplate模式,後面一章會使用Feign。


如今咱們在啓動服務,啓動服務提供者(若是兩者已經啓動請忽略),在啓動服務消費者,訪問 http://localhost:8666/  以下


而後咱們在訪問服務消費者的接口 ,http://localhost:8668/hello?name=wrold


nice~,至此 SpringCloud Eureka服務發現與註冊已經講解完畢,下一章在服務消費者中集成Feign提供一個負載均衡的http客戶端。


附源碼地址:gitee.com/dolan/sclou…

並切換到f_eureka 分支!!!

相關文章
相關標籤/搜索