dubbo服務(wù)開發(fā)流程,運(yùn)行流程?zookeeper注冊(cè)中心的作用?
使用流程:
第一步:要在系統(tǒng)中使用dubbo應(yīng)該先搭建一個(gè)注冊(cè)中心,一般推薦使用zookeeper。
第二步:有了注冊(cè)中心然后是發(fā)布服務(wù),發(fā)布服務(wù)需要使用spring容器和dubbo標(biāo)簽來發(fā)布服務(wù)。并且發(fā)布服務(wù)時(shí)需要指定注冊(cè)中心的位置。
第三步:服務(wù)發(fā)布之后就是調(diào)用服務(wù)。一般調(diào)用服務(wù)也是使用spring容器和dubbo標(biāo)簽來引用服務(wù),這樣就可以在客戶端的容器中生成一個(gè)服務(wù)的代理對(duì)象,在action或者Controller中直接調(diào)用service的方法即可。
Zookeeper注冊(cè)中心的作用主要就是注冊(cè)和發(fā)現(xiàn)服務(wù)的作用。類似于房產(chǎn)中介的作用,在系統(tǒng)中并不參與服務(wù)的調(diào)用及數(shù)據(jù)的傳輸。
redis為什么可以做緩存?項(xiàng)目中使用redis的目的是什么?redis什么時(shí)候使用?
1)Redis是key-value形式的nosql數(shù)據(jù)庫(kù)??梢钥焖俚亩ㄎ坏剿檎业膋ey,并把其中的value取出來。并且redis的所有的數(shù)據(jù)都是放到內(nèi)存中,存取的速度非常快,一般都是用來做緩存使用。
2)項(xiàng)目中使用redis一般都是作為緩存來使用的,緩存的目的就是為了減輕數(shù)據(jù)庫(kù)的壓力提高存取的效率。
3)在互聯(lián)網(wǎng)項(xiàng)目中只要是涉及高并發(fā)或者是存在大量讀數(shù)據(jù)的情況下都可以使用redis作為緩存。當(dāng)然redis提供豐富的數(shù)據(jù)類型,除了緩存還可以根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景來決定redis的作用。例如使用redis保存用戶的購(gòu)物車信息、生成訂單號(hào)、訪問量計(jì)數(shù)器、任務(wù)隊(duì)列、排行榜等。
activeMQ在項(xiàng)目中如何應(yīng)用的?
Activemq在項(xiàng)目中主要是完成系統(tǒng)之間通信,并且將系統(tǒng)之間的調(diào)用進(jìn)行解耦。例如在添加、修改商品信息后,需要將商品信息同步到索引庫(kù)、同步緩存中的數(shù)據(jù)以及生成靜態(tài)頁(yè)面一系列操作。在此場(chǎng)景下就可以使用activemq。一旦后臺(tái)對(duì)商品信息進(jìn)行修改后,就向activemq發(fā)送一條消息,然后通過activemq將消息發(fā)送給消息的消費(fèi)端,消費(fèi)端接收到消息可以進(jìn)行相應(yīng)的業(yè)務(wù)處理。
activeMQ如果數(shù)據(jù)提交不成功怎么辦?
Activemq有兩種通信方式,點(diǎn)到點(diǎn)形式和發(fā)布訂閱模式。如果是點(diǎn)到點(diǎn)模式的話,如果消息發(fā)送不成功此消息默認(rèn)會(huì)保存到activemq服務(wù)端知道有消費(fèi)者將其消費(fèi),所以此時(shí)消息是不會(huì)丟失的。
如果是發(fā)布訂閱模式的通信方式,默認(rèn)情況下只通知一次,如果接收不到此消息就沒有了。這種場(chǎng)景只適用于對(duì)消息送達(dá)率要求不高的情況。如果要求消息必須送達(dá)不可以丟失的話,需要配置持久訂閱。每個(gè)訂閱端定義一個(gè)id,在訂閱是向activemq注冊(cè)。發(fā)布消息和接收消息時(shí)需要配置發(fā)送模式為持久化。此時(shí)如果客戶端接收不到消息,消息會(huì)持久化到服務(wù)端,直到客戶端正常接收后為止
Redis在其中是怎么用的?起了什么作用?
redis中存儲(chǔ)的都是key-value格式的。拿商品數(shù)據(jù)來說,key就是商品id,value是商品相關(guān)信息的json數(shù)據(jù)。
在商城系統(tǒng)中當(dāng)并發(fā)量比較高,頻繁的對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀操作的時(shí)候都需要添加緩存。例如頁(yè)面中內(nèi)容數(shù)據(jù)的緩存、商品數(shù)據(jù)的緩存以及用戶數(shù)據(jù)的緩存等。
做商品數(shù)據(jù)的緩存時(shí),因?yàn)樯唐返臄?shù)據(jù)量很大,而且緩存是把數(shù)據(jù)保存到內(nèi)存中,此時(shí)不可能把所有的商品數(shù)據(jù)都放到緩存中。所以需要設(shè)置商品數(shù)據(jù)緩存的有效期,當(dāng)用戶訪問到非熱點(diǎn)數(shù)據(jù)后,此數(shù)據(jù)放到緩存中,當(dāng)緩存到期后就從緩存中刪除,而且長(zhǎng)時(shí)間不會(huì)添加到緩存。而熱點(diǎn)數(shù)據(jù)一旦從緩存中刪除會(huì)馬上又添加到緩存。這樣可以提高緩存的利用率,同時(shí)也減輕了數(shù)據(jù)庫(kù)的壓力。
以上就是長(zhǎng)沙牛耳教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java互聯(lián)網(wǎng)面試之電商java筆試題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java筆試題