SpringCloud服務註冊與服務發現之Eureka
阿新 • • 發佈:2018-03-17
sco utf-8 info 都沒有 轉移 .org 只需要 1.4 AI
Eureka是SpringCloud Netflix的子模塊之一,用於雲端的服務發現,服務定位,實現雲端中間層服務發現和故障轉移。服務註冊與發現對於微服務系統來說十分的重要,有了服務註冊與發現,就省去了每天改服務調用的配置文件的麻煩。你只需要使用服務的標識符,就是可使用服務。它的功能類似與dubbo的註冊中心。
服務發現:服務發現是微服務基礎架構的關鍵原則之一,Eureka是Netflix服務發現的一種服務和客戶端。這種服務是可以被高可用性配置的和部署,並且在註冊的服務當中,每個服務的狀態可以互相復制給彼此。
服務註冊:當一個客戶端註冊到Eureka,它提供關於自己的元數據(諸如主機和端口,健康指標URL,首頁等)Eureka通過一個服務從各個實例接收心跳信息。如果心跳接收失敗超過配置的時間,實例將會正常從註冊裏面移除。
下圖是基本的服務註冊和發現:
Eureka服務發現和註冊(創建註冊中心)
1:創建一個基礎的Spring Boot工程,並在pom.xml中引入需要的依賴內容
<?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>com.ysl</groupId> <artifactId>serviceRegister</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>eureka_register_service</name> <description>Spring Cloud service register</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2:創建一個啟動類Application
package com.ysl; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer @SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class,args); } }
通過@EnableEurekaServer註解啟動一個服務註冊中心提供給其他應用進行對話。
3:創建一個配置文件 application.properties,註意不要出現空格,否啟動報錯
server.port=8000 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.service-url.defaultZone=http://localhost:${server.port}/eureka/
4:啟動服務,查看註冊中心
http://127.0.0.1:8000/ 可以看到如下圖:
為什麽連登陸賬號和密碼都沒有,在外網不是直接能進入註冊中心, 這樣很不安全啊。好,那我們加入登陸賬號和密碼
Eureka註冊中心加入權限
1:加入註冊中心需要引入jar,在pom.xml加入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2:配置文件新建一個bootstrap.yml文件
security: basic: enabled: true user: name: admin password: admin
自此,註冊中心就創建完成了
SpringCloud服務註冊與服務發現之Eureka