亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

什么是微服務(wù)?

微服務(wù)就是把原本臃腫的一個(gè)項(xiàng)目的所有模塊拆分開來并做到互相沒有關(guān)聯(lián),甚至可以不使用同一個(gè)數(shù)據(jù)庫。 比如:項(xiàng)目里面有User模塊和Power模塊,但是User模塊和Power模塊并沒有直接關(guān)系,僅僅只是一些數(shù)據(jù)需要交互,那么就可以吧這2個(gè)模塊單獨(dú)分開來,當(dāng)user需要調(diào)用power的時(shí)候,power是一個(gè)服務(wù)方,但是power需要調(diào)用user的時(shí)候,user又是服務(wù)方了, 所以,他們并不在乎誰是服務(wù)方誰是調(diào)用方,他們都是2個(gè)獨(dú)立的服務(wù),這時(shí)候,微服務(wù)的概念就出來了。

經(jīng)典問題:微服務(wù)和分布式的區(qū)別

談到區(qū)別,我們先簡單說一下分布式是什么,所謂分布式,就是將偌大的系統(tǒng)劃分為多個(gè)模塊(這一點(diǎn)和微服務(wù)很像)部署到不同機(jī)器上(因?yàn)橐慌_(tái)機(jī)器可能承受不了這么大的壓力或者說一臺(tái)非常好的服務(wù)器的成本可能夠好幾臺(tái)普通的了),各個(gè)模塊通過接口進(jìn)行數(shù)據(jù)交互,其實(shí) 分布式也是一種微服務(wù)。 因?yàn)槎际前赡K拆分開來變?yōu)楠?dú)立的單元,提供接口來調(diào)用,那么 他們本質(zhì)的區(qū)別在哪呢? 他們的區(qū)別主要體現(xiàn)在“目標(biāo)”上, 何為目標(biāo),就是你這樣架構(gòu)項(xiàng)目要做到的事情。 分布式的目標(biāo)是什么? 我們剛剛也看見了, 就是一臺(tái)機(jī)器承受不了的,或者是成本問題 , 不得不使用多臺(tái)機(jī)器來完成服務(wù)的部署, 而微服務(wù)的目標(biāo) 只是讓各個(gè)模塊拆分開來,不會(huì)被互相影響,比如模塊的升級(jí)亦或是出現(xiàn)BUG等等...

講了這么多,可以用一句話來理解:分布式也是微服務(wù)的一種,而微服務(wù)他可以是在一臺(tái)機(jī)器上。

微服務(wù)與Spring-Cloud的關(guān)系(區(qū)別)

微服務(wù)只是一種項(xiàng)目的架構(gòu)方式,或者說是一種概念,就如同我們的MVC架構(gòu)一樣, 那么Spring-Cloud便是對(duì)這種技術(shù)的實(shí)現(xiàn)。

微服務(wù)一定要使用Spring-Cloud嗎?

我們剛剛說過,微服務(wù)只是一種項(xiàng)目的架構(gòu)方式,如果你足夠了解微服務(wù)是什么概念你就會(huì)知道,其實(shí)微服務(wù)就算不借助任何技術(shù)也能實(shí)現(xiàn),只是有很多問題需要我們解決罷了例如:負(fù)載均衡,服務(wù)的注冊(cè)與發(fā)現(xiàn),服務(wù)調(diào)用,路由。。。。等等等等一系列問題,所以,Spring-Cloud 就出來了,Spring-Cloud將處理這些問題的的技術(shù)全部打包好了,就類似那種開袋即食的感覺。。

Spring-Cloud項(xiàng)目的搭建

因?yàn)閟pring-cloud是基于spring-boot項(xiàng)目來的,所以我們項(xiàng)目得是一個(gè)spring-boot項(xiàng)目,至于spring-boot項(xiàng)目,這節(jié)我們先不討論,這里要注意的一個(gè)點(diǎn)是spring-cloud的版本與spring-boot的版本要對(duì)應(yīng)下圖:

現(xiàn)在程序員最火的微服務(wù)架構(gòu)與SpringCloud,你真的弄清楚了嗎?

 

在我這里我的版本是這樣的

spring-boot:

 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.0.2.RELEASE</version>
 </parent>

spring-cloud:

 <dependencyManagement>
 <dependencies>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-dependencies</artifactId>
 <version>Finchley.SR2</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 </dependencies>
 </dependencyManagement>

當(dāng)你項(xiàng)目里面有這些依賴之后,你的spring cloud項(xiàng)目已經(jīng)搭建好了(初次下載spring-cloud可能需要一點(diǎn)時(shí)間)

Spring-Cloud組件:

eureka:

eureka是什么?

eureka是Netflix的子模塊之一,也是一個(gè)核心的模塊,eureka里有2個(gè)組件,一個(gè)是EurekaServer(一個(gè)獨(dú)立的項(xiàng)目) 這個(gè)是用于定位服務(wù)以實(shí)現(xiàn)中間層服務(wù)器的負(fù)載平衡和故障轉(zhuǎn)移,另一個(gè)便是EurekaClient(我們的微服務(wù))它是用于與Server交互的,可以使得交互變得非常簡單:只需要通過服務(wù)標(biāo)識(shí)符即可拿到服務(wù)。

與spring-cloud的關(guān)系:

Spring Cloud 封裝了 Netflix 公司開發(fā)的 Eureka 模塊來實(shí)現(xiàn)服務(wù)注冊(cè)和發(fā)現(xiàn)(可以對(duì)比Zookeeper)。

Eureka 采用了 C-S 的設(shè)計(jì)架構(gòu)。Eureka Server 作為服務(wù)注冊(cè)功能的服務(wù)器,它是服務(wù)注冊(cè)中心。

而系統(tǒng)中的其他微服務(wù),使用 Eureka 的客戶端連接到 Eureka Server并維持心跳連接。這樣系統(tǒng)的維護(hù)人員就可以通過 Eureka Server 來監(jiān)控系統(tǒng)中各個(gè)微服務(wù)是否正常運(yùn)行。SpringCloud 的一些其他模塊(比如Zuul)就可以通過 Eureka Server 來發(fā)現(xiàn)系統(tǒng)中的其他微服務(wù),并執(zhí)行相關(guān)的邏輯。

角色關(guān)系圖:

現(xiàn)在程序員最火的微服務(wù)架構(gòu)與SpringCloud,你真的弄清楚了嗎?

 

如何使用?

在spring-cloud項(xiàng)目里面加入依賴:

eureka客戶端:

 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>
eureka服務(wù)端:
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
 </dependency>

eureka服務(wù)端項(xiàng)目里面加入以下配置:

server:
port: 3000
eureka:
server:
 enable-self-preservation: false #關(guān)閉自我保護(hù)機(jī)制
 eviction-interval-timer-in-ms: 4000 #設(shè)置清理間隔(單位:毫秒 默認(rèn)是60*1000)
instance:
 hostname: localhost
lient:
 registerWithEureka: false #不把自己作為一個(gè)客戶端注冊(cè)到自己身上
 fetchRegistry: false #不需要從服務(wù)端獲取注冊(cè)信息(因?yàn)樵谶@里自己就是服務(wù)端,而且已經(jīng)禁用自己注
冊(cè)了)
 serviceUrl:
 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka

當(dāng)然,不是全部必要的,這里只是把我這里的配置copy過來了

然后在spring-boot啟動(dòng)項(xiàng)目上 加入注解:@EnableEurekaServer 就可以啟動(dòng)項(xiàng)目了

@EnableEurekaServer
@SpringBootApplication
public class AppEureka {
 public static void main(String[] args) {
 SpringApplication.run(AppEureka.class);
 }
}

如果看見這個(gè)圖片,那么說明你就搭建好了:

現(xiàn)在程序員最火的微服務(wù)架構(gòu)與SpringCloud,你真的弄清楚了嗎?

 

這個(gè)警告只是說你把他的自我保護(hù)機(jī)制關(guān)閉了

eureka客戶端配置:

server:
port: 6000
eureka:
然后在客戶端的spring-boot啟動(dòng)項(xiàng)目上 加入注解:@EnableEurekaClient 就可以啟動(dòng)項(xiàng)目了 這里就不截圖了我們
直接來看效果圖:
這里我們能看見 名字叫server-power的(圖中將其大寫了) id為 power-1的服務(wù) 注冊(cè)到我們的Eureka上面來了
至此,一個(gè)簡單的eureka已經(jīng)搭建好了。
當(dāng)然 這篇咱們先講應(yīng)用, 源碼文章以后再更新, 或者大家騰訊課堂搜魯班學(xué)院 我會(huì)在里面免費(fèi)的公開課上講到
Spring Cloud 以及Eureka的源碼
client:
 serviceUrl:
 defaultZone: http://localhost:3000/eureka/ #eureka服務(wù)端提供的注冊(cè)地址 參考服務(wù)端配
置的這個(gè)路徑
instance:
 instance-id: power-1 #此實(shí)例注冊(cè)到eureka服務(wù)端的唯一的實(shí)例ID
 prefer-ip-address: true #是否顯示IP地址
 leaseRenewalIntervalInSeconds: 10 #eureka客戶需要多長時(shí)間發(fā)送心跳給eureka服務(wù)器,表明它仍
然活著,默認(rèn)為30 秒 (與下面配置的單位都是秒)
 leaseExpirationDurationInSeconds: 30 #Eureka服務(wù)器在接收到實(shí)例的最后一次發(fā)出的心跳后,需要
等待多久才可以將此實(shí)例刪除,默認(rèn)為90秒
spring:
application:
 name: server-power #此實(shí)例注冊(cè)到eureka服務(wù)端的name

然后在客戶端的spring-boot啟動(dòng)項(xiàng)目上 加入注解:@EnableEurekaClient 就可以啟動(dòng)項(xiàng)目了 這里就不截圖了,我們直接來看效果圖:

現(xiàn)在程序員最火的微服務(wù)架構(gòu)與SpringCloud,你真的弄清楚了嗎?

 

這里我們能看見 名字叫server-power的(圖中將其大寫了) id為 power-1的服務(wù) 注冊(cè)到我們的Eureka上面來了

至此,一個(gè)簡單的eureka已經(jīng)搭建好了。

分享到:
標(biāo)簽:微服 架構(gòu)
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定