天天看點

SpringCloud(第 003 篇)服務發現服務端EurekaServer微服務SpringCloud(第 003 篇)服務發現服務端EurekaServer微服務

SpringCloud(第 003 篇)服務發現服務端EurekaServer微服務

-

一、大緻介紹

1、衆所周知,在現在網際網路開發中,通路位址的IP和端口号是動态的,一個服務停掉再重新啟用後IP和端口就可能發生了改變,是以用寫死是肯定不行了。于是我們嘗試使用新的技術來解決這一難題。
2、于是 SpringCloud 生态圈中的服務發現脫穎而出,采用服務發現元件動态維護通路路徑等關系,隻需要服務提供者把IP和端口注冊到服務發現元件當中,當有服務消費者需要消費服務的時候,它隻需要去服務發現元件中去擷取通路路徑即可。
3、那麼它們的關系是如何維持的呢?其實也是用到了心跳機制,說白的就是服務提供者provider和服務消費者consumer在服務發現元件當中注冊之後每隔固定的時間就會發送一次心跳,服務發現元件接收到心跳便認為被管理的對象是可用的,如果長時間接收不到心跳,那麼服務發現元件便認為該對象已經挂掉,便把它的注冊資訊删除掉。再對外提供服務的時候便不再使用挂掉的服務提供者的IP和端口。

4、而本章節僅僅隻是闡述了如何搭建 EurekaServer 微服務,并且通路該 EurekaServer 需要使用者名密碼登入,至于後序怎麼注冊到該服務發現的服務端上請看後序章節。
           

二、實作步驟

2.1 添加 maven 引用包

<?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>

    <artifactId>springms-discovery-eureka</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>com.springms.cloud</groupId>
        <artifactId>springms-spring-cloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <!-- 服務端發現子產品 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>

        <!-- 服務端登入驗證子產品:進入 eureka 的網頁時候需要輸入登入密碼的子產品 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>

</project>
           

2.2 添加應用配置檔案(springms-discovery-eureka\src\main\resources\application.yml)

# 配置 eureka 登入密碼,輸入位址 http://localhost:8761 時候就需要輸入這個使用者名密碼登入進去
security:
  basic:
    enabled: true
  user:
    name: admin
    password: admin
server:
  port: 
eureka:
  datacenter: SpringCloud   # 修改 http://localhost:8761 位址 Eureka 首頁上面 System Status 的 Data center 顯示資訊
  environment: Test         # 修改 http://localhost:8761 位址 Eureka 首頁上面 System Status 的 Environment 顯示資訊
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://admin:[email protected]:8761/eureka
    healthcheck:  # 健康檢查
      enabled: true
  instance:

#  # 配置 eureka 首頁的路徑
#  dashboard:
#    enabled: true   # 如果這裡配置為 false 的話,那麼 Eureka 的首頁将無法通路
#    path: /x        # 預設配置是 / ,但是這裡配置成 /x 的話,那麼通路的首頁路徑為: http://localhost:8761/x
#  # 目前我們這個用處就行,先暫時注釋這個,不影響後面的測試用
           

2.3 添加 EurekaServer 微服務啟動類(springms-discovery-eureka\src\main\java\com\springms\cloud\EurekaServerApplication.java)

package com.springms.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * 服務發現服務端EurekaServer微服務。<br/>
 *
 * Eureka預設端口是8761
 * http://localhost:8761/eureka/apps 可以檢視注冊到該伺服器上的一堆微服務執行個體的資訊。
 *
 * @author hmilyylimh
 *
 * @version 0.0.1
 *
 * @date 2017/9/17
 *
 */
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
        System.out.println("【【【【【【 Eureka微服務 】】】】】】已啟動.");
    }
}
           

三、測試

/****************************************************************************************
 一、服務發現服務端EurekaServer微服務:

 1、啟動 springms-discovery-eureka 子產品服務,啟動1個端口;
 2、在浏覽器輸入位址 http://localhost:8761 後,并且輸入使用者名密碼即可登入服務發現服務端;
 ****************************************************************************************/
           

四、下載下傳位址

https://gitee.com/ylimhhmily/SpringCloudTutorial.git

SpringCloudTutorial交流QQ群: 235322432

SpringCloudTutorial交流微信群: 微信溝通群二維碼圖檔連結

歡迎關注,您的肯定是對我最大的支援!!!

-

<上一篇        首頁        下一篇>