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 文件暫時不用修改,進入第三節吧。
選中scloud項目,右擊 New - Module - Spring Initializr (springcloud是一個基於springboot實現的一系列框架的集合,若是你的父pom.xml已經依賴Spring-boot 這個就建立maven模塊吧)
生成以下目錄結構
修改主工程的pom.xml 和 eureka_server 的pom.xml 文件
主工程的pom.xml
eureka_server 模塊 pom.xml
@SpringBootApplication
@EnableEurekaServer public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
複製代碼
到此,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);
}
}
複製代碼
爲了簡單的演示效果,我在程序入口在加入一個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;
}
}
複製代碼
建立步驟和步驟四建立服務提供者同樣。
而後修改項目下的pom.xml文件 和 服務提供者相似,修改下包名等便可。
nice~,至此 SpringCloud Eureka服務發現與註冊已經講解完畢,下一章在服務消費者中集成Feign提供一個負載均衡的http客戶端。
附源碼地址:gitee.com/dolan/sclou…
並切換到f_eureka 分支!!!