前言
說到
redis,可能大家的腦海中蹦出的關(guān)鍵詞是:NoSQL、KV、高性能、緩存等。但今天的文章從另一個角度——微服務(wù)來展開。這篇文章的起因也是源自一次面試經(jīng)歷,在面試一位來自陌陌的候選人(就是那個交友的陌陌)時,他提到一點(diǎn)讓我覺得很有意思,他說redis在陌陌被使用的非常廣泛,除了常規(guī)的緩存外,某些場景下也當(dāng)NoSQL數(shù)據(jù)庫來使用,還用redis作為微服務(wù)的注冊中心,甚至連RPC的調(diào)用協(xié)議都用了redis協(xié)議。
注冊中心
最早了解到redis可以作為注冊中心是從dubbo的源碼中看到,但一直也沒有過多的了解,因為從沒聽說哪家公司使用redis來做服務(wù)發(fā)現(xiàn)。在dubbo中使用redis來做服務(wù)發(fā)現(xiàn)還是挺簡單的,引入jedis依賴,將注冊中心地址改為redis地址即可:
?redis.clients
?jedis
?2.9.0
dubbo.registry.address=redis://127.0.0.1:6379
注冊上來的數(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是注冊上來的url,value是過期時間
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