springboot+springcloud基于Eureka的注冊和服務(wù)

springcloud帶來的優(yōu)點????

? ? 1.相比于傳統(tǒng)式集中式架構(gòu)來說袜茧,他提供了一種新的架構(gòu)思想步做,相比于原來的架構(gòu)它更容易水平或者垂直的擴展

? ? 2.在編譯時 由于將整個項目拆分成很多小塊,編譯更加的迅速怎炊,方便我們調(diào)試。

? ? 3.在部署的時候,當項目上線彻采,不會因為一個點掛掉整個項目癱瘓,只會單點故障

? ? 4.在大型的互聯(lián)網(wǎng)公司捌归,用到的開發(fā)語言不止一種肛响,拆分成服務(wù)的話,我們只需要調(diào)接口取數(shù)據(jù)即可惜索。

? ? 5.極大程度上的進行了松耦合

? ? 下圖是我理解的分布式架構(gòu)特笋,水平不夠,很片面巾兆。

一個簡單的分布式

springcloud有哪些缺點

? ? 1.拆分項目時的顆粒度不好確定猎物,一個服務(wù)最好只做一件事情虎囚。

? ? 2.對于分布式的架構(gòu)來講,或者說在使用這種微服務(wù)式的架構(gòu)時蔫磨,數(shù)據(jù)的一致性是一個大的問題淘讥。我看了很多篇文章講的都很深奧,也沒有個學習的方向质帅∈嗜啵可以百度搜索一些經(jīng)常用的方式二階段提交和三階段提交,分布式事務(wù)等等煤惩。在大的電商平臺嫉嘀,一般都有對賬的系統(tǒng)以及消息隊列方式或者重試機制(當然重試機制一定要保證接口的正確性以及接口的冪等性,而這個冪等性的度要由自己控制)或者補償機制魄揉。



切入正題剪侮,今天想學習一下springcloud,于是看了一些博文洛退,總結(jié)了一些瓣俯。


項目搭建環(huán)境

? ? 使用開發(fā)工具Eclipse,jdk1.7兵怯,maven


eclipse版本

構(gòu)建項目

? ? 目標:搭建一個maven工程彩匕,其下有兩個子模塊,一個服務(wù)媒区,一個注冊中心

? ????1.? 首先我們搭建一個maven的父工程驼仪,搭就完事兒了。


maven的父工程

? ? 2.我們搭建一個注冊中心袜漩,我們需要用的的組件上Spring Cloud Netflix的Eureka ,eureka是一個服務(wù)注冊和發(fā)現(xiàn)模塊绪爸。

? ? 不多說廢話開搭。

? ? 選中父工程new maven module 這里我直接使用的是jar形式的包

????然后在pom中添加我們需要的依賴宙攻,我不知道為什么簡書一復制xml 就只有文本了奠货,那些標簽全都不能復制過來,希望大神們指導下座掘。


dependency


dependency management


接下來是我們application.yml中的配置递惋,eureka是一個高可用的注冊中心,沒有緩存雹顺,實時發(fā)送心跳包檢測注冊的服務(wù)是否在線丹墨,默認情況下eureka server既是一個server也是一個client,所以在client我們配置的registerwithrureka 為false 和fetchRegistry false都是為了表明自己是一個server嬉愧。

server:

? ? port: 8761

eureka:

? ? instance:

? ? ? ? hostname: localhost

? ? client:

? ??????registerWithEureka: false

? ??????fetchRegistry: false

? ??????serviceUrl:

? ??????????defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/



貼出springboot啟動類的代碼:@EnableEurekaServer表明自己是一個注冊中心

package cn.yiside.eurekaServer;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

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

@SpringBootApplication

@EnableEurekaServerpublic class EurekaServerApplication {

public static void main(String[] args) {

SpringApplication.run(EurekaServerApplication.class, args);

}

}


啟動成功banner樣式的顯示

接下來我們訪問 http://localhost:8761去看一下


springcloud的可視化管理

我們發(fā)現(xiàn)注冊的application沒有任何東西贩挣,因為我們沒有注冊,并且springcloud進入了保護模式

默認情況下,如果Eureka Server在一定時間內(nèi)沒有接收到某個微服務(wù)實例的心跳王财,Eureka Server將會注銷該實例(默認90秒)卵迂。但是當網(wǎng)絡(luò)分區(qū)故障發(fā)生時,微服務(wù)與Eureka Server之間無法正常通信绒净,這就可能變得非常危險了----因為微服務(wù)本身是健康的见咒,此時本不應(yīng)該注銷這個微服務(wù)。

? Eureka Server通過“自我保護模式”來解決這個問題----當Eureka Server節(jié)點在短時間內(nèi)丟失過多客戶端時(可能發(fā)生了網(wǎng)絡(luò)分區(qū)故障)挂疆,那么這個節(jié)點就會進入自我保護模式改览。一旦進入該模式,Eureka Server就會保護服務(wù)注冊表中的信息缤言,不再刪除服務(wù)注冊表中的數(shù)據(jù)(也就是不會注銷任何微服務(wù))宝当。當網(wǎng)絡(luò)故障恢復后,該Eureka Server節(jié)點會自動退出自我保護模式胆萧。

自我保護模式是一種對網(wǎng)絡(luò)異常的安全保護措施庆揩。使用自我保護模式,而已讓Eureka集群更加的健壯跌穗、穩(wěn)定订晌。

在Spring Cloud中,可以使用eureka.server.enable-self-preservation=false來禁用自我保護模式

這個問題并不影響我們繼續(xù)去進行接下來的步驟蚌吸,所以繼續(xù)锈拨。

3.我們要搭建一個服務(wù),并且將其注冊到注冊中心中羹唠。

類似于注冊中心的搭建模式推励,但是啟動類和配置要有一些變化

啟動類代碼

@RestController注解是集成了controller和ajax的默認注解,需要導入jackson包

package cn.yiside.eurakaClient;

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

@RestController

@EnableEurekaClient

public class EurakaClientApplication {

public static void main(String[] args) {

SpringApplication.run(EurakaClientApplication.class, args);

}

@Value(value="${server.port}")

private String port;

@RequestMapping("hi")

public String sayHi(@RequestParam String name){

return "你好"+name+"我來自"+port;

}

}



application.yml配置如下

表示我們注冊的地址肉迫,以及我們這個服務(wù)的端口和發(fā)布到注冊中心的服務(wù)名

eureka:

? ??client:

????????serviceUrl:? ??????

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

server:

? ? port: 8762

spring:

? ? application:

? ? ? ? name: service-sayHi


啟動我們的服務(wù)。


注冊服務(wù)成功

Status顯示UP表示服務(wù)正常稿黄,可以使用喊衫。其它取值DOWN、OUT_OF_SERVICE杆怕、UNKNOWN等族购,只有UP的微服務(wù)會被請求。

訪問我們的服務(wù)陵珍,看展示效果


訪問成功




今天只學習了Eureka 注冊中心 springCloud還有很多要學寝杖,加油。

以下是后期需要學習的springcloud的其他組件

分布式/版本化/集中化配置 - spring cloud config?服務(wù)注冊發(fā)現(xiàn) -Netflix Eureka?

路由 -Netflix Zuul?服務(wù)之間的點對點調(diào)用(Service-to-service calls)

?負載均衡-Netflix Ribbon?

斷路器 -Netflix Hystrix?分布式消息

五大核心組件:

服務(wù)注冊發(fā)現(xiàn) -Netflix Eureka

配置中心-?spring cloud config

負載均衡-Netflix Ribbon

斷路器 -Netflix Hystrix

路由(網(wǎng)關(guān)) -Netflix Zuul

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末互纯,一起剝皮案震驚了整個濱河市瑟幕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖只盹,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辣往,死亡現(xiàn)場離奇詭異,居然都是意外死亡殖卑,警方通過查閱死者的電腦和手機站削,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孵稽,“玉大人许起,你說我怎么就攤上這事∑邢剩” “怎么了园细?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長睦袖。 經(jīng)常有香客問我珊肃,道長,這世上最難降的妖魔是什么馅笙? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任伦乔,我火速辦了婚禮,結(jié)果婚禮上董习,老公的妹妹穿的比我還像新娘烈和。我一直安慰自己,他們只是感情好皿淋,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布招刹。 她就那樣靜靜地躺著,像睡著了一般窝趣。 火紅的嫁衣襯著肌膚如雪疯暑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天哑舒,我揣著相機與錄音妇拯,去河邊找鬼。 笑死洗鸵,一個胖子當著我的面吹牛越锈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膘滨,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼甘凭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了火邓?” 一聲冷哼從身側(cè)響起丹弱,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤德撬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蹈矮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砰逻,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年泛鸟,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝠咆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡北滥,死狀恐怖刚操,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情再芋,我是刑警寧澤菊霜,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站济赎,受9級特大地震影響鉴逞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜司训,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一构捡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧壳猜,春花似錦勾徽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咒钟,卻和暖如春吹由,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朱嘴。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工溉知, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腕够。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像舌劳,于是被迫代替她去往敵國和親帚湘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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