SpringCloud(第 003 篇)服務(wù)發(fā)現(xiàn)服務(wù)端EurekaServer微服務(wù)

SpringCloud(第003篇)服務(wù)發(fā)現(xiàn)服務(wù)端EurekaServer微服務(wù)


一、大致介紹


1、眾所周知,在現(xiàn)在互聯(lián)網(wǎng)開發(fā)中,訪問地址的IP和端口號是動(dòng)態(tài)的,一個(gè)服務(wù)停掉再重新啟用后IP和端口就可能發(fā)生了改變,所以用硬編碼是肯定不行了。于是我們嘗試使用新的技術(shù)來解決這一難題。
2、于是 SpringCloud 生態(tài)圈中的服務(wù)發(fā)現(xiàn)脫穎而出,采用服務(wù)發(fā)現(xiàn)組件動(dòng)態(tài)維護(hù)訪問路徑等關(guān)系,只需要服務(wù)提供者把IP和端口注冊到服務(wù)發(fā)現(xiàn)組件當(dāng)中,當(dāng)有服務(wù)消費(fèi)者需要消費(fèi)服務(wù)的時(shí)候,它只需要去服務(wù)發(fā)現(xiàn)組件中去獲取訪問路徑即可。
3、那么它們的關(guān)系是如何維持的呢?其實(shí)也是用到了心跳機(jī)制,說白的就是服務(wù)提供者provider和服務(wù)消費(fèi)者consumer在服務(wù)發(fā)現(xiàn)組件當(dāng)中注冊之后每隔固定的時(shí)間就會(huì)發(fā)送一次心跳,服務(wù)發(fā)現(xiàn)組件接收到心跳便認(rèn)為被管理的對象是可用的,如果長時(shí)間接收不到心跳,那么服務(wù)發(fā)現(xiàn)組件便認(rèn)為該對象已經(jīng)掛掉,便把它的注冊信息刪除掉。再對外提供服務(wù)的時(shí)候便不再使用掛掉的服務(wù)提供者的IP和端口。

4、而本章節(jié)僅僅只是闡述了如何搭建 EurekaServer 微服務(wù),并且訪問該 EurekaServer 需要用戶名密碼登錄,至于后序怎么注冊到該服務(wù)發(fā)現(xiàn)的服務(wù)端上請看后序章節(jié)。


二、實(shí)現(xiàn)步驟


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>
        <!-- 服務(wù)端發(fā)現(xiàn)模塊 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>

        <!-- 服務(wù)端登錄驗(yàn)證模塊:進(jìn)入 eureka 的網(wǎng)頁時(shí)候需要輸入登錄密碼的模塊 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>

</project>


2.2 添加應(yīng)用配置文件(springms-discovery-eureka\src\main\resources\application.yml)


# 配置 eureka 登錄密碼,輸入地址 http://localhost:8761 時(shí)候就需要輸入這個(gè)用戶名密碼登錄進(jìn)去
security:
  basic:
    enabled: true
  user:
    name: admin
    password: admin
server:
  port: 8761
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:admin@localhost:8761/eureka
    healthcheck:  # 健康檢查
      enabled: true
  instance:

#  # 配置 eureka 首頁的路徑
#  dashboard:
#    enabled: true   # 如果這里配置為 false 的話,那么 Eureka 的首頁將無法訪問
#    path: /x        # 默認(rèn)配置是 / ,但是這里配置成 /x 的話,那么訪問的首頁路徑為: http://localhost:8761/x
#  # 目前我們這個(gè)用處就行,先暫時(shí)注釋這個(gè),不影響后面的測試用


2.3 添加 EurekaServer 微服務(wù)啟動(dòng)類(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;

/**
 * 服務(wù)發(fā)現(xiàn)服務(wù)端EurekaServer微服務(wù)。<br/>
 *
 * Eureka默認(rèn)端口是8761
 * http://localhost:8761/eureka/apps 可以查看注冊到該服務(wù)器上的一堆微服務(wù)實(shí)例的信息。
 *
 * @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微服務(wù) 】】】】】】已啟動(dòng).");
    }
}


三、測試


/****************************************************************************************
 一、服務(wù)發(fā)現(xiàn)服務(wù)端EurekaServer微服務(wù):

 1、啟動(dòng) springms-discovery-eureka 模塊服務(wù),啟動(dòng)1個(gè)端口;
 2、在瀏覽器輸入地址 http://localhost:8761 后,并且輸入用戶名密碼即可登錄服務(wù)發(fā)現(xiàn)服務(wù)端;
 ****************************************************************************************/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容