Spring Cloud Eureka

Spring Cloud簡(jiǎn)介

Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,它為基于JVM的云應(yīng)用開發(fā)中涉及的配置管理同诫、服務(wù)發(fā)現(xiàn)恨锚、斷路器、智能路由瞳收、微代理碉京、控制總線、全局鎖螟深、決策競(jìng)選谐宙、分布式會(huì)話和集群狀態(tài)管理等操作提供了一種簡(jiǎn)單的開發(fā)方式。

Spring Cloud包含了多個(gè)子項(xiàng)目(針對(duì)分布式系統(tǒng)中涉及的多個(gè)不同開源產(chǎn)品)界弧,比如:Spring Cloud Config凡蜻、Spring Cloud Netflix、Spring Cloud0 CloudFoundry垢箕、Spring Cloud AWS划栓、Spring Cloud Security、Spring Cloud Commons条获、Spring Cloud Zookeeper忠荞、Spring Cloud CLI等項(xiàng)目。

Spring Cloud Eureka

首先,我們來(lái)嘗試使用Spring Cloud Eureka來(lái)實(shí)現(xiàn)服務(wù)治理钻洒。

Spring Cloud Eureka是Spring Cloud Netflix項(xiàng)目下的服務(wù)治理模塊。而Spring Cloud Netflix項(xiàng)目是Spring Cloud的子項(xiàng)目之一锄开,主要內(nèi)容是對(duì)Netflix公司一系列開源產(chǎn)品的包裝素标,它為Spring Boot應(yīng)用提供了自配置的Netflix OSS整合。通過(guò)一些簡(jiǎn)單的注解萍悴,開發(fā)者就可以快速的在應(yīng)用中配置一下常用模塊并構(gòu)建龐大的分布式系統(tǒng)头遭。它主要提供的模塊包括:服務(wù)發(fā)現(xiàn)(Eureka),斷路器(Hystrix)癣诱,智能路由(Zuul)计维,客戶端負(fù)載均衡(Ribbon)等。

下面撕予,就來(lái)具體看看如何使用Spring Cloud Eureka實(shí)現(xiàn)服務(wù)治理鲫惶。

創(chuàng)建“服務(wù)注冊(cè)中心”

利用Idea的Spring Initializr來(lái)快速構(gòu)建Spring Boot/Cloud工程,勾選Cloud Discovery下的Eureka Server

通過(guò)@EnableEurekaServer注解啟動(dòng)一個(gè)服務(wù)注冊(cè)中心提供給其他應(yīng)用進(jìn)行對(duì)話实抡。這一步非常的簡(jiǎn)單欠母,只需要在一個(gè)普通的Spring Boot應(yīng)用中添加這個(gè)注解就能開啟此功能,比如下面的例子:

package com.example.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication

@EnableEurekaServer

public class SpringCloudApplication {

? ? public static void main(String[] args) {

? ? ? ? SpringApplication.run(SpringCloudApplication.class, args);

? ? }

}

在默認(rèn)設(shè)置下吆寨,該服務(wù)注冊(cè)中心也會(huì)將自己作為客戶端來(lái)嘗試注冊(cè)它自己赏淌,所以我們需要禁用它的客戶端注冊(cè)行為,只需要在application.yml配置文件中增加如下信息:

server:

? port: 8761

eureka:

? instance:

? ? hostname: localhost

? client:

? ? register-with-eureka: false

? ? fetch-registry: false

? ? service-url:

? ? ? default-zone:http: //${eureka.instance.hostname}:${server.port}/eureka/

啟動(dòng)工程后啄清,訪問:http://localhost:8761/六水,可以看到下面的頁(yè)面,其中還沒有發(fā)現(xiàn)任何服務(wù)辣卒。

創(chuàng)建“服務(wù)提供方”

下面我們創(chuàng)建提供服務(wù)的客戶端掷贾,并向服務(wù)注冊(cè)中心注冊(cè)自己。本文我們主要介紹服務(wù)的注冊(cè)與發(fā)現(xiàn)添寺,所以我們不妨在服務(wù)提供方中嘗試著提供一個(gè)接口來(lái)獲取當(dāng)前所有的服務(wù)信息胯盯。

在剛剛建好的項(xiàng)目下,直接再創(chuàng)建一個(gè)Moudle,同樣利用Idea的Spring Initializr來(lái)快速構(gòu)建Spring Boot/Cloud工程计露,勾選Cloud Discovery下的Eureka Discovry

通過(guò)@EnableEurekaServer注解啟動(dòng)一個(gè)服務(wù)注冊(cè)中心提供給其他應(yīng)用進(jìn)行對(duì)話博脑。這一步非常的簡(jiǎn)單,只需要在一個(gè)普通的Spring Boot應(yīng)用中添加這個(gè)注解就能開啟此功能票罐,比如下面的例子:

package com.example.springcloudclient;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication

@EnableEurekaClient

@RestController

public class ServiceHiApplication {

? ? public static void main(String[] args) {

? ? ? ? SpringApplication.run(ServiceHiApplication.class, args);

? ? }

? ? @Value("${server.port}")

? ? String port;

? ? @RequestMapping("/hi")

? ? public String home(@RequestParam String name){

? ? ? ? return "Hi " + name + " I am from port:" + port;

? ? }

}

在默認(rèn)設(shè)置下叉趣,該服務(wù)注冊(cè)中心也會(huì)將自己作為客戶端來(lái)嘗試注冊(cè)它自己,所以我們需要禁用它的客戶端注冊(cè)行為该押,只需要在application.yml配置文件中增加如下信息:

eureka:

? client:

? ? service-url:

? ? ? defaultZone: http://localhost:8761/eureka/

server:

? port: 8762

spring:

? application:

? ? name: service-hi

通過(guò)spring.application.name屬性疗杉,我們可以指定微服務(wù)的名稱后續(xù)在調(diào)用的時(shí)候只需要使用該名稱就可以進(jìn)行服務(wù)的訪問。eureka.client.serviceUrl.defaultZone屬性對(duì)應(yīng)服務(wù)注冊(cè)中心的配置內(nèi)容,指定服務(wù)注冊(cè)中心的位置烟具。為了在本機(jī)上測(cè)試區(qū)分服務(wù)提供方和服務(wù)注冊(cè)中心梢什,使用server.port屬性設(shè)置不同的端口。

由于Idea中默認(rèn)的SpringBoot是單實(shí)例模式運(yùn)行朝聋,要想多個(gè)實(shí)例同時(shí)運(yùn)行嗡午,參考:Idea同時(shí)運(yùn)行多個(gè)SpringBoot

啟動(dòng)工程后冀痕,再次訪問http://localhost:8761/? 可以發(fā)現(xiàn)我們定義的服務(wù)被成功注冊(cè)了

我們也可以訪問?http://localhost:8762/hi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荔睹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子言蛇,更是在濱河造成了極大的恐慌僻他,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腊尚,死亡現(xiàn)場(chǎng)離奇詭異吨拗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)跟伏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門丢胚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人受扳,你說(shuō)我怎么就攤上這事携龟。” “怎么了勘高?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵峡蟋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我华望,道長(zhǎng)蕊蝗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任赖舟,我火速辦了婚禮蓬戚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宾抓。我一直安慰自己子漩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布石洗。 她就那樣靜靜地躺著幢泼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪讲衫。 梳的紋絲不亂的頭發(fā)上缕棵,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼招驴。 笑死篙程,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的别厘。 我是一名探鬼主播房午,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丹允!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起袋倔,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤雕蔽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宾娜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體批狐,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年前塔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚣艇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡华弓,死狀恐怖食零,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寂屏,我是刑警寧澤贰谣,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站迁霎,受9級(jí)特大地震影響吱抚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜考廉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一秘豹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昌粤,春花似錦既绕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至膊升,卻和暖如春怎炊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工评肆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留债查,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓瓜挽,卻偏偏與公主長(zhǎng)得像盹廷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子久橙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容