Failed to bind NettyServer on /169.254.116.120:20880, cause: Failed to bind to: /0.0.0.0:20880解決方案

昨天在搭建dubbo+zookeeper項目時,兩次用同一個端口20880做爲提供者,結果是端口號被佔用。web

網上得解決方法有不少:tomcat

方案1:是改dubboprovider.xml裏端口號將20880改爲別的端口好比如20881app

方案2:直接關閉以前20880端口提供的服務,即重複使用20880webapp

方案3:修改tomcat裏server.xml裏的屬性將ide

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">修改成:spa

<Host appBase="webapps" autoDeploy="false" deployOnStartup="false" name="localhost" unpackWARs="true">server


可是以上方案都不太令我滿意,由於理論上同一個服務能夠有多個提供者。因而去dubbo的官網尋找解決方法,仍是找到了比較優雅的解決方式:xml

貼出截圖一張以供思考:blog

 

 因此接下來目的已經很明確——將provider.xml裏port=20880屬性值修改成-1class

<dubbo:protocol name="dubbo" port="-1"></dubbo:protocol>

 這樣能夠解決同一個端口號佔用的問題,並且同一個服務有多個提供者,再來一張效果圖:

 能夠看到端口號的確是從20880開始遞增,不過還有一點須要思考,就是這麼多端口自動生成,該如何維護。若是您有更好的觀點,歡迎補充>>>

相關文章
相關標籤/搜索