国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

zookeeper+dubbo實(shí)現(xiàn)java分布式服務(wù)

WalkerXu / 1874人閱讀

摘要:調(diào)用關(guān)系說(shuō)明服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。

ZooKeeper簡(jiǎn)介

ZooKeeper(Zookeeper 下載地址)是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是 Apache Hadoop 的一個(gè)子項(xiàng)目,是Google的Chubby一個(gè)開(kāi)源的實(shí)現(xiàn),主要是用來(lái)解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問(wèn)題,它是集群的管理者,監(jiān)視著集群中各個(gè)節(jié)點(diǎn)的狀態(tài)根據(jù)節(jié)點(diǎn)提交的反饋進(jìn)行下一步合理操作。最終,將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶.
每個(gè)子目錄項(xiàng)如 NameService 都被稱作為znode,和文件系統(tǒng)一樣,我們能夠自由的增加、刪除znode,在一個(gè)znode下增加、刪除子znode,唯一的不同在于znode是可以存儲(chǔ)數(shù)據(jù)的。
客戶端與zookeeper斷開(kāi)連接后,該節(jié)點(diǎn)被刪除,只是Zookeeper給該節(jié)點(diǎn)名稱進(jìn)行順序編號(hào):

命名服務(wù)

配置管理

集群管理

分布式鎖

隊(duì)列管理

Zookeeper命名服務(wù)

在zookeeper的文件系統(tǒng)里創(chuàng)建一個(gè)目錄,即有唯一的path。在我們使用tborg無(wú)法確定上游程序的部署機(jī)器時(shí)即可與下游程序約定好path,通過(guò)path即能互相探索發(fā)現(xiàn)。

Zookeeper的配置管理

程序總是需要配置的,如果程序分散部署在多臺(tái)機(jī)器上,要逐個(gè)改變配置就變得困難。現(xiàn)在把這些配置全部放到zookeeper上去,保存在 Zookeeper 的某個(gè)目錄節(jié)點(diǎn)中,
然后所有相關(guān)應(yīng)用程序?qū)@個(gè)目錄節(jié)點(diǎn)進(jìn)行監(jiān)聽(tīng),一旦配置信息發(fā)生變化,每個(gè)應(yīng)用程序就會(huì)收到 Zookeeper 的通知,
然后從 Zookeeper 獲取新的配置信息應(yīng)用到系統(tǒng)中就好。

tickTime=2000  
dataDir= /zookeeper-3.4.8/data 
dataLogDir=/zookeeper-3.4.8/logs  
clientPort=2181
server.1=IP1:2888:3888
server.2=IP2:2888:3888

參數(shù)說(shuō)明:
tickTime: zookeeper中使用的基本時(shí)間單位, 毫秒值.
dataDir: 數(shù)據(jù)目錄. 可以是任意目錄.
dataLogDir: log目錄, 同樣可以是任意目錄. 如果沒(méi)有設(shè)置該參數(shù), 將使用和#dataDir相同的設(shè)置.
clientPort: 監(jiān)聽(tīng)client連接的端口號(hào).
server.id=host:port:port解析.
每一行此配置表示一個(gè)集群中的一臺(tái)服務(wù)器。其中id為Server ID,用來(lái)標(biāo)識(shí)該機(jī)器在集群中的編號(hào)。同時(shí),在所在服務(wù)器的數(shù)據(jù)目錄(/tmp/zookeeper)下創(chuàng)建一個(gè)myid文件,該文件只有一行內(nèi)容,并且是一個(gè)數(shù)字,就是對(duì)應(yīng)每臺(tái)服務(wù)器的Server ID數(shù)字。
比如server.1=IP1:2888:3888的myid中的內(nèi)容就是1。不同服務(wù)器的ID需要保持不同,并且和zoo.cfg文件中server.id中的id和myid文件的內(nèi)容保持一致。id的取值范圍為1~255。
其中,server.id中配置參數(shù)的第一個(gè)port是集群中其他機(jī)器與Leader之間通信的端口,第二個(gè)port為當(dāng)Leader宕機(jī)或其他故障時(shí),集群進(jìn)行重新選舉Leader時(shí)使用的端口。
按照以上相同步驟,配置集群中的其他機(jī)器。每個(gè)集群的zoo.cfg文件都是相同的,可通過(guò)版本控制或其他工具保證每臺(tái)zookeeper服務(wù)器的配置文件相同。集群中每臺(tái)機(jī)器唯一不同的是server.id對(duì)應(yīng)的myid文件中的數(shù)字不同,需要注意的是一般zookeeper集群由3~5臺(tái)服務(wù)器組成,即2n+1臺(tái)機(jī)器。
詳細(xì)的客戶端命令:https://zhuanlan.zhihu.com/p/...

Dubbo簡(jiǎn)介

Dubbo是阿里旗下的一個(gè)彈性的分布式服務(wù)框架,2012 年,阿里巴巴在 GitHub上開(kāi)源了基于 Java的分布式服務(wù)治理框架?Dubbo,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。
Dubbo透明化的遠(yuǎn)程方法調(diào)用,沒(méi)有API侵入,就能像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,軟負(fù)載均衡及容錯(cuò)機(jī)制,可以在內(nèi)網(wǎng)替代F5等硬件負(fù)載均衡器,降低成本,減少單點(diǎn)。
服務(wù)框架中,與業(yè)務(wù)相關(guān),但與業(yè)務(wù)功能的整合無(wú)關(guān)的組件以外部服務(wù)形式引入(也就是說(shuō)把一些業(yè)務(wù)分離出來(lái),變成一種服務(wù),供其他人調(diào)用該服務(wù))。

調(diào)用關(guān)系說(shuō)明:

服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。

服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。

服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)。

注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。

服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺(tái)調(diào)用。

服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。

Zookeeper+dubbo:

Dubbo的將注冊(cè)中心進(jìn)行抽象,是得它可以外接不同的存儲(chǔ)媒介給注冊(cè)中心提供服務(wù),有ZooKeeper,Memcached,Redis引入了ZooKeeper作為存儲(chǔ)媒介,也就把ZooKeeper的特性引進(jìn)來(lái)。首先是負(fù)載均衡,單注冊(cè)中心的承載能力是有限的,在流量達(dá)到一定程度的時(shí)候就需要分流,負(fù)載均衡就是為了分流而存在的,一個(gè)ZooKeeper群配合相應(yīng)的Web應(yīng)用就可以很容易達(dá)到負(fù)載均衡;資源同步,單單有負(fù)載均衡還不夠,節(jié)點(diǎn)之間的數(shù)據(jù)和資源需要同步,ZooKeeper集群就天然具備有這樣的功能;命名服務(wù),將樹(shù)狀結(jié)構(gòu)用于維護(hù)全局的服務(wù)地址列表,服務(wù)提供者在啟動(dòng)的時(shí)候,向ZK上的指定節(jié)點(diǎn)/dubbo/${serviceName}/providers目錄下寫(xiě)入自己的URL地址,這個(gè)操作就完成了服務(wù)的發(fā)布。其他特性還有Mast選舉,分布式鎖等。

相關(guān)代碼:
spring
Pom.xml


            com.alibaba
            dubbo
            2.8.4
        
        
            com.101tec
            zkclient
            0.9
        
        
            org.javassist
            javassist
            3.20.0-GA
        

Applicationcontext.xml


     
    
    
    
    

springboot
Pom.xml


        com.alibaba
        dubbo
        2.4.10
        
            
                spring
                org.springframework
            
        
    
    
        org.apache.zookeeper
        zookeeper
        3.4.6
        
            
                slf4j-log4j12
                org.slf4j
            
        
    
    
        com.github.sgroschupf
        zkclient
        0.1
    
    
   
    
            io.dubbo.springboot
            spring-boot-starter-dubbo
            1.0.0
        

Application.properties

spring.dubbo.application.name=bootsec
spring.dubbo.registry.address=zookeeper://localhost:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=3100
spring.dubbo.scan=com.emsoft.studentboot

服務(wù)端代碼

#dubbo配置
spring.dubbo.application.name=bootthr
spring.dubbo.registry.address=zookeeper://192.168.31.119:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=3200
spring.dubbo.scan=com.emsoft.stuthr.server 業(yè)務(wù)代碼所在的包名
spring.dubbo.application.registries.timeout=10000
spring.dubbo.application.registries.session=10000

客戶端代碼

spring.dubbo.application.name=bootsec
spring.dubbo.registry.address=zookeeper://localhost:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=3100
spring.dubbo.scan=com.emsoft.studentboot

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/76626.html

相關(guān)文章

  • 超詳細(xì),新手都能看懂 !使用SpringBoot+Dubbo 搭建一個(gè)簡(jiǎn)單的布式服務(wù)

    Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,歡迎各位 Star。 目錄: 使用 SpringBoot+Dubbo 搭建一個(gè)簡(jiǎn)單分布式服務(wù) 實(shí)戰(zhàn)之前,先來(lái)看幾個(gè)重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架構(gòu) 什么是 RPC? 為什么要用 Dubbo? 開(kāi)始實(shí)戰(zhàn) 1 ...

    chengtao1633 評(píng)論0 收藏0
  • 基于Dubbo+ZooKeeper布式服務(wù)實(shí)現(xiàn)

    摘要:調(diào)用流程服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。這就是分布式服務(wù)注冊(cè)中心的由來(lái)。 Dubbo是什么 一款分布式服務(wù)框架 高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案。這里簡(jiǎn)單介紹一下RPC,所謂RPC就是遠(yuǎn)程過(guò)程調(diào)用,全稱為Romate Proce...

    warkiz 評(píng)論0 收藏0
  • 基于Dubbo+ZooKeeper布式服務(wù)實(shí)現(xiàn)

    摘要:調(diào)用流程服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。這就是分布式服務(wù)注冊(cè)中心的由來(lái)。 Dubbo是什么 一款分布式服務(wù)框架 高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案。這里簡(jiǎn)單介紹一下RPC,所謂RPC就是遠(yuǎn)程過(guò)程調(diào)用,全稱為Romate Proce...

    enda 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<