最近上手新的項目,使用到了springboot分布式架構.單純構架springboot項目,項目正常啟動訪問8080端口;
后來在項目中集成了redis和dubbo,再次啟動項目,提示8080端口被占用:
Description: The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured. Action: Verify the connector’s configuration, identify and stop any process that’s listening on port 8080, or configure this application to listen on another port.
正式開始了排查之路:
cmd命令進入doc窗口:
1.輸入 netstat -nao 查看目前使用中的端口信息
再次輸入命令: tasklist|findstr "13932"
發現java.exe占用着8080端口.結束進程,然后再次啟動springboot項目
項目再次啟動失敗,提示8080端口被占用,好吧,再次排查
關掉本地redis 和zookeeper,正常啟動項目,項目提示redis未連接,打開redis,項目提示dubbo服務端未找到,ok,打開zookeeper,老問題再次出現,8080端口被占用,程序啟動失敗;
cmd進入doc查看,又是java.exe.好吧,這鍋又扔給了java.exe
第二次啟動的時候發現,不開啟zookeeper,項目會提示服務找不到.一開啟則直接8080端口被占用.會不會是zookeeper惹的禍導致讓java.exe來背這個鍋?
這次咱們反着來,在任務管理器找到java.exe然后結束進程,現在8080端口是沒有被占用的了.關閉程序,只啟動zookeeper,然后doc命令去查看端口使用情況
罪魁禍首被咱們抓現形了,8080端口被占用了......
好吧,總算找到真凶了,zookeeper終於肯站出來背鍋了
zookeeper最近的版本中有個內嵌的管理控制台是通過jetty啟動,也會占用8080 端口。
ok,現在就是解決問題的時候了,網上給了很多修改配置文件更換端口的方法,而我選擇了最直接的辦法,降版本.
去官網下載3.4的版本然后再次啟動項目.嗯...整個世界都變乖了