1. 程式人生 > >SpringCloud服務註冊與服務發現之Eureka

SpringCloud服務註冊與服務發現之Eureka

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