SpringCloud(第003篇)服務(wù)發(fā)現(xiàn)服務(wù)端EurekaServer微服務(wù)
一、大致介紹
1怖糊、眾所周知伍伤,在現(xiàn)在互聯(lián)網(wǎng)開發(fā)中遣钳,訪問地址的IP和端口號是動態(tài)的,一個(gè)服務(wù)停掉再重新啟用后IP和端口就可能發(fā)生了改變劝评,所以用硬編碼是肯定不行了蒋畜。于是我們嘗試使用新的技術(shù)來解決這一難題姻成。
2、于是 SpringCloud 生態(tài)圈中的服務(wù)發(fā)現(xiàn)脫穎而出科展,采用服務(wù)發(fā)現(xiàn)組件動態(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í)間就會發(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ù)啟動類(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ù) 】】】】】】已啟動.");
}
}
三、測試
/****************************************************************************************
一命斧、服務(wù)發(fā)現(xiàn)服務(wù)端EurekaServer微服務(wù):
1、啟動 springms-discovery-eureka 模塊服務(wù)胃惜,啟動1個(gè)端口船殉;
2、在瀏覽器輸入地址 http://localhost:8761 后堡僻,并且輸入用戶名密碼即可登錄服務(wù)發(fā)現(xiàn)服務(wù)端硼讽;
****************************************************************************************/
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者