更新時(shí)間:2022-10-08 10:22:43 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2978次
相信大家對(duì)什么是Dubbo已經(jīng)有所了解,dubbo框架一共支持9種協(xié)議。其中,默認(rèn)的,也是最常用的,那就是dubbo協(xié)議。
既然是網(wǎng)絡(luò)協(xié)議,那么,必然要有端口號(hào)。
所以,在使用dubbo協(xié)議暴露服務(wù)時(shí),需要配置dubbo端口。
dubbo協(xié)議的默認(rèn)端口是20880。
springboot配置:
dubbo:
application:
name: omsbase-provider
registry:
address: zookeeper://192.168.40.84:${embedded.zookeeper.port}
# address: zookeeper://127.0.0.1:2181
protocol:
name: dubbo
port: 20888
一個(gè)應(yīng)用程序啟動(dòng)后,dubbo即開啟端口偵聽請(qǐng)求。
linux服務(wù)器上查看dubbo端口:
[root@chuxing-service ~]# netstat -tunpl|grep 20880
tcp6 0 0 :::20880 :::* LISTEN 16074/java
[root@chuxing-service ~]# netstat -tunpl|grep 2088*
tcp6 0 0 :::20880 :::* LISTEN 16074/java
tcp6 0 0 :::20881 :::* LISTEN 15588/java
tcp6 0 0 :::20888 :::* LISTEN 6983/java
通過各個(gè)dubbo端口對(duì)應(yīng)的pid,我們來看看相應(yīng)的主進(jìn)程應(yīng)用:
[root@chuxing-service ~]# ps -ef|grep 16074
root 12630 11879 0 09:50 pts/1 00:00:00 grep --color=auto 16074
root 16074 1 0 Apr26 ? 00:04:31 java -Xms2g -Xmx4g -Djava.awt.headless=true -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -server -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=85 -Xnoclassgc -Xverify:none -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -jar /www/service/car-pub-server-provider/bin/../car-pub-server-provider.jar
[root@chuxing-service ~]# ps -ef|grep 15588
root 12666 11879 0 09:50 pts/1 00:00:00 grep --color=auto 15588
root 15588 1 0 Apr26 ? 00:03:44 java -Xms2g -Xmx4g -Djava.awt.headless=true -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -server -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=85 -Xnoclassgc -Xverify:none -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -jar /www/service/bosskg-server-provider/bin/../bosskg-server-provider.jar
netstat -apn/netstat -n
[root@chuxing-service ~]# netstat -apn |grep 20880
tcp6 0 0 :::20880 :::* LISTEN 16074/java
tcp6 0 0 192.168.40.84:50120 192.168.40.84:20880 ESTABLISHED 10974/java
tcp6 0 0 192.168.40.84:20880 192.168.40.84:36100 ESTABLISHED 16074/java
tcp6 0 0 192.168.40.84:36104 192.168.40.84:20880 ESTABLISHED 6983/java
tcp6 0 0 192.168.40.84:20880 192.168.40.84:50120 ESTABLISHED 16074/java
tcp6 0 0 192.168.40.84:36100 192.168.40.84:20880 ESTABLISHED 7726/java
tcp6 0 0 192.168.40.84:20880 192.168.40.84:36104 ESTABLISHED 16074/java
[root@chuxing-service ~]# netstat -n |grep 20880
tcp6 0 0 192.168.40.84:50120 192.168.40.84:20880 ESTABLISHED
tcp6 0 0 192.168.40.84:20880 192.168.40.84:36100 ESTABLISHED
tcp6 0 0 192.168.40.84:36104 192.168.40.84:20880 ESTABLISHED
tcp6 0 0 192.168.40.84:20880 192.168.40.84:50120 ESTABLISHED
tcp6 0 0 192.168.40.84:36100 192.168.40.84:20880 ESTABLISHED
tcp6 0 0 192.168.40.84:20880 192.168.40.84:36104 ESTABLISHED
注意:因?yàn)槎丝诓荒苤貜?fù),所以,當(dāng)一臺(tái)服務(wù)器上同時(shí)存在多個(gè)應(yīng)用要暴露dubbo服務(wù)時(shí),需要指定不同的協(xié)議端口。否則的話,程序起不來。
我們可以這樣模擬:一個(gè)使用了dubbo提供服務(wù)的應(yīng)用程序,本地將其啟動(dòng)。此時(shí),指定的端口將被占用。如果我們?cè)龠\(yùn)行一個(gè)testcase方法時(shí),就會(huì)發(fā)現(xiàn)啟動(dòng)失敗,提示指定的dubbo端口已經(jīng)被占用。異常信息:
2020-04-24 16:26:33.231 [main] ERROR org.springframework.boot.SpringApplication:858 - Application run failed
org.apache.dubbo.rpc.RpcException: Fail to start server(url: dubbo://10.8.0.58:20888/com.emax.omsbase.rpcapi.modules.enterprise.service.EnterpriseService?anyhost=true&application=omsbase-provider&bean.name=ServiceBean:com.emax.omsbase.rpcapi.modules.enterprise.service.EnterpriseService&bind.ip=10.8.0.58&bind.port=20888&channel.readonly.sent=true&codec=dubbo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&interface=com.emax.omsbase.rpcapi.modules.enterprise.service.EnterpriseService&methods=checkEnterprise,saveEnterprise,saveEnterpriseProductConfig,queryIndustryType1,getPage,selectLoginAcc,queryIndustryType2,updateEnterpriseById,updateEntStatusByEntId,resetEntAccountPasswordByEntId,openEnterpriseByEntId,updateEnterpriseProductConfigById,updateEnterpriseBillConfigById&pid=21060&qos.enable=false®ister=true&release=2.7.3&side=provider&timeout=15000×tamp=1587716790773) Failed to bind NettyServer on /10.8.0.58:20888, cause: Address already in use: bind
...
Caused by: org.apache.dubbo.remoting.RemotingException: Failed to bind NettyServer on /10.8.0.58:20888, cause: Address already in use: bind
...
Caused by: java.net.BindException: Address already in use: bind
以上就是關(guān)于“Dubbo協(xié)議端口的介紹”,大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Dubbo教程,里面的課程內(nèi)容由淺到深,細(xì)致全面,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743