• 程序端口被占用分析


    这几天弄测试环境和SIT环境。在一台服务器上部署了多台tomcat,后面重启的时候总是报dubbo服务的端口被占用。于是开始查

    被占用的端口为20883

    1.查看端口情况

    netstat -apn

    通过上面的命令我们可以看到本地 20883端口是被使用了的,对应的进程号及进程是 13323/java

    2.我们通过管道过滤下可以看得更清楚

    netstat -apn|grep 20883

    可以发现本地端口使用有一个20883,进程13323/java

    远程端口使用有2个,进程分别为 13323/java , 12879/java

    分析知道我部署的应用时存在dubbo+zookeeper的,上面的 20883 是zookeeper的默认端口,

    也就是说远程端口使用的 20883 是zookeeper对外提供的默认端口,有2个进程是由于我部署了2台tomcat应用。

     3.分析端口

    netstat -apn|grep "10.24.64.151"

    可以看到10.24.64.151这台服务器的 20883 端口被java程序的不同进程号使用2次。可以明确是2台tomcat在使用。

    那么本地使用的20883端口呢,将20883拿到我本地项目中搜索

     继续搜索在哪里使用

    4.解决问题

     找到了,发现这个端口是本地服务对外提供的dubbo服务的端口号,而我部署的2台tomcat里面部署的应用是一样的,那么就存在这个问题,

    本地机器对外提供20883作为dubbo服务端口,而启动了2台,那么就会将20883绑定2次,当然第一次没问题,第二次的时候发现本地端口

    20883被占用,其实dubbo这个端口既然是本地分配出来对外提供的,别人也不需要知道端口号,所以我直接修改2台应用中dubbo的端口号,

    分配不同的端口不就行了。

    重新分配之后再次启动,ok没问题了。

    ######################################另一种解决方式##################################

    根据端口找进程号
    netstat -anlp | grep 8701
    根据进程号找启动路径
    ll /proc/4525/cwd

    ######################################另一种解决方式##################################

  • 相关阅读:
    如何节省 1TB 图片带宽?解密极致图像压缩
    微信亿级用户异常检测框架的设计与实践
    一文带你深度解析腾讯云直播答题方案
    kafka数据迁移实践
    揭密微信跳一跳小游戏那些外挂
    从蓝光到4K,腾讯视频高码率下载背后的技术
    GridControl列自动匹配宽度
    access的逻辑类型
    NPOI Excel类
    Access sql语句创建表及字段类型
  • 原文地址:https://www.cnblogs.com/yun965861480/p/6272448.html
Copyright © 2020-2023  润新知