一、前言
在Dubbo中接口類(lèi)并不能唯一確定一個(gè)服務(wù)职烧,在dubbo中接口+服務(wù)分組+版本號(hào)才能唯一確定一個(gè)服務(wù)废累,本文就來(lái)講解下服務(wù)分組和版本號(hào)的使用。
二冶共、服務(wù)分組
當(dāng)一個(gè)接口有多種實(shí)現(xiàn)時(shí)乾蛤,可以用 group 區(qū)分。
-
服務(wù)提供方:
image.png
上面配置在服務(wù)提供方法提供了com.test.UserServiceBo接口的兩套實(shí)現(xiàn)捅僵,服務(wù)分組分別為olddubbo,newdubbo家卖。
-
服務(wù)消費(fèi)方
image.png
上面配置在服務(wù)消費(fèi)方消費(fèi)com.test.UserServiceBo接口的兩套實(shí)現(xiàn),服務(wù)分組分別為olddubbo,newdubbo庙楚。
需要注意的是消費(fèi)方只能消費(fèi)與自己服務(wù)分組相同的提供方的服務(wù)上荡,這里userServiceOld生成的是服務(wù)提供方分組為olddubbo的接口的代理。
userServiceNew生成的是服務(wù)提供方分組為newdubbo的接口的代理馒闷。
三酪捡、服務(wù)版本
當(dāng)同一個(gè)服務(wù)分組的接口實(shí)現(xiàn)叁征,出現(xiàn)不兼容升級(jí)時(shí),可以用版本號(hào)過(guò)渡沛善,版本號(hào)不同的服務(wù)相互間不引用航揉。
可以按照以下的步驟進(jìn)行版本遷移:
- 在低壓力時(shí)間段,先升級(jí)一半提供者為新版本
- 再將所有消費(fèi)者升級(jí)為新版本
- 然后將剩下的一半提供者升級(jí)為新版本
比如:
- 服務(wù)提供方
服務(wù)提供方法在分組dubbo下提供了兩個(gè)版本號(hào)的服務(wù)
- 服務(wù)消費(fèi)方
同理需要注意的是服務(wù)消費(fèi)方只能消費(fèi)與自己接口+分組+版本一致的服務(wù)提供方的服務(wù)金刁。
四帅涂、總結(jié)
dubbo中唯一確定一個(gè)服務(wù)的是接口+服務(wù)分組+版本號(hào),服務(wù)提供方和消費(fèi)方提供和消費(fèi)服務(wù)時(shí)候顯示的配置服務(wù)分組和版本號(hào)是一個(gè)最佳實(shí)踐尤蛮。
歡迎大家加入知識(shí)星球媳友,在知識(shí)星球里面我們會(huì)深入討論Java并發(fā)編程,以及JUC包源碼产捞;Java類(lèi)加載器原理;Spring,Springboot,Tomcat醇锚,Dubbo等開(kāi)源框架的使用以及源碼剖析;分享作者從畢業(yè)到現(xiàn)在一路走來(lái)的學(xué)習(xí)經(jīng)驗(yàn)坯临,如何高效學(xué)習(xí)焊唬,如何閱讀源碼;討論職業(yè)面試時(shí)候會(huì)經(jīng)常遇到的問(wèn)題以及如何作答看靠,讀者可以識(shí)別下面二維碼加入: