「Spring Cloud Eureka 入門系列」
Spring Cloud Eureka 入門 (一)服務註冊中心詳解
Spring Cloud Eureka 入門 (二)服務提供者詳解
Spring Cloud Eureka 入門 (三)服務消費者詳解java
1.1 什麼是 Eureka
1.2 Eureka 集羣架構git
Eureka,這裏是 Spring Cloud Eureka 的簡稱,是 Spring Cloud Netflix 組件之一。Spring Cloud Netflix 中核心的組件包括了服務治理(Eureka),服務容斷(Hystrix),路由(Zuul)和客戶端負載均衡(Ribbon)。在系列第三篇,服務消費者講解會涉及到 Ribbon 的使用。github
回到 Spring Cloud Eureka,是基於 Netflix Eureka (Netflix 是 Java 實現的開源軟件)。服務治理(Eureka)包括服務註冊、服務發現和服務檢測監控等,天然本文介紹下 Eureka 做爲服務註冊中心。spring
Eureka 做爲服務治理,必然知足下面幾點:apache
做爲服務端(即服務註冊中心),包括瀏覽器
做爲客戶端(即服務提供者和消費者),包括緩存
運行環境:JDK 7 或 8,Maven 3.0+
技術棧:Spring Cloud Dalston.SR一、 spring-cloud-netflix 1.3.一、Spring Boot 1.5.4springboot
項目地址見 GitHub - https://github.com/JeffLi1993...:
git clone https://github.com/JeffLi1993...架構
cd springcloud-learning-example
mvn clean installapp
右鍵 Main 函數 Run Eureka Server 啓動類 EurekaServerApplication,啓動服務註冊中心工程。
EurekaServerApplication 類地址:/springcloud-learning-example/springcloud-eureka-sample/springcloud-eureka-server/src/main/java/org/spring/springboot/EurekaServerApplication.java
控制檯 Console 看到這類信息,表明啓動成功:
2017-06-30 10:32:47.549 INFO 2977 --- [ Thread-11] e.s.EurekaServerInitializerConfiguration : Started Eureka Server 2017-06-30 10:32:47.625 INFO 2977 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8888 (http) 2017-06-30 10:32:47.626 INFO 2977 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8888 2017-06-30 10:32:47.632 INFO 2977 --- [ main] o.s.springboot.EurekaServerApplication : Started EurekaServerApplication in 23.168 seconds
打開瀏覽器,訪問 http://localhost:8888/
能夠看到主體信息包括:
1.springcloud-eureka-server 工程目錄結構
├── pom.xml └── src └── main ├── java │ └── org │ └── spring │ └── springcloud │ ├── EurekaServerApplication.java └── resources └── application.yml
EurekaServerApplication.java Eureka Server 啓動類
application.yml 配置文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>springcloud</groupId> <artifactId>springcloud-eureka-server</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springcloud-eureka-server :: Spring Cloud Eureka 服務註冊中心</name> <!-- Spring Boot 啓動父依賴 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> </parent> <dependencies> <!-- Spring Cloud Netflix Eureka Server 依賴 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <!-- Spring Boot Test 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <!-- Spring Cloud Netflix 依賴 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix</artifactId> <version>1.3.1.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
使用的依賴是
上面提到的客戶端負載均衡 Ribbon ,能夠依賴樹中看出 spring-cloud-starter-eureka-server 依賴了 Ribbon 相關的庫。由於通常 eureka 自己做爲服務自注冊實現高可用,也能夠做爲客戶端調用其餘服務。
server: port: 8888 # 服務端口 eureka: instance: hostname: localhost # 設置主機名 client: registerWithEureka: false # 是否向 Eureka 註冊服務。該應用爲服務註冊中心,不須要自注冊,設置爲 false fetchRegistry: false # 是否檢索服務。該應用爲服務註冊中心,職責爲註冊和發現服務,無需檢索服務,設置爲 false server: waitTimeInMsWhenSyncEmpty: 0 # 設置同步爲空時的等待時間。默認 5 * MINUTES
4.註冊中心應用啓動類
/** * Spring Boot Eureka Server 應用啓動類 * * Created by bysocket on 21/06/17. */ @EnableEurekaServer // Eureka Server 標識 @SpringBootApplication // Spring Boot 應用標識 public class EurekaServerApplication { public static void main(String[] args) { // 程序啓動入口 // 啓動嵌入式的 Tomcat 並初始化 Spring 環境及其各 Spring 組件 SpringApplication.run(EurekaServerApplication.class,args); } }
@EnableEurekaServer 標誌該應用做爲 Eureka Server ,並會自動化讀取相關配置。
此小章節介紹瞭如何 Eureka 做爲服務註冊中心 Server,下一小結講下 服務提供者詳解 具體是如何向服務註冊中心註冊本身的。系列目錄以下:
本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈