前言
說(shuō)到
redis,可能大家的腦海中蹦出的關(guān)鍵詞是:NoSQL、KV、高性能、緩存等。但今天的文章從另一個(gè)角度——微服務(wù)來(lái)展開。這篇文章的起因也是源自一次面試經(jīng)歷,在面試一位來(lái)自陌陌的候選人(就是那個(gè)交友的陌陌)時(shí),他提到一點(diǎn)讓我覺(jué)得很有意思,他說(shuō)redis在陌陌被使用的非常廣泛,除了常規(guī)的緩存外,某些場(chǎng)景下也當(dāng)NoSQL數(shù)據(jù)庫(kù)來(lái)使用,還用redis作為微服務(wù)的注冊(cè)中心,甚至連RPC的調(diào)用協(xié)議都用了redis協(xié)議。
注冊(cè)中心
最早了解到redis可以作為注冊(cè)中心是從dubbo的源碼中看到,但一直也沒(méi)有過(guò)多的了解,因?yàn)閺臎](méi)聽說(shuō)哪家公司使用redis來(lái)做服務(wù)發(fā)現(xiàn)。在dubbo中使用redis來(lái)做服務(wù)發(fā)現(xiàn)還是挺簡(jiǎn)單的,引入jedis依賴,將注冊(cè)中心地址改為redis地址即可:
?redis.clients
?jedis
?2.9.0
dubbo.registry.address=redis://127.0.0.1:6379
注冊(cè)上來(lái)的數(shù)據(jù)是這樣,類型是hash
/dubbo/${service}/${category}
如
/dubbo/com.newboo.sample.api.DemoService/consumers
/dubbo/com.newboo.sample.api.DemoService/providers
hash數(shù)據(jù)結(jié)構(gòu)下保存的key是注冊(cè)上來(lái)的url,value是過(guò)期時(shí)間
127.0.0.1:6379>?hgetall?/dubbo/com.newboo.sample.api.DemoService/providers
1)?"dubbo://172.23.233.142:20881/com.newboo.sample.api.DemoService?anyhost=true