异常现象

     1.登录超时

     

Rancher调试微服务_zookeeper

    2.查看nginx的日志

      

Rancher调试微服务_zookeeper_02

       10.42.2.23的ip不是gateway的ip  最新的gateway的pod的ip 10.42.2.29

     

Rancher调试微服务_nginx_03

       

Rancher调试微服务_zookeeper_04

   nginx通过servicename访问gateway的时候总是解析成上一个失效的ip地址 导致nginx访问网关超时.nginx通过redis做了会话保持缓存了gateway的ip.这种情况重新部署一下nginx的pod即可

  网关找不到后台对应服务

      

Rancher调试微服务_zookeeper_05

      

Rancher调试微服务_启动应用_06

   设置启动参数配置

      

Rancher调试微服务_启动应用_07

      

Rancher调试微服务_zookeeper_08

      

Rancher调试微服务_nginx_09

      这样便可以通过网关把请求转发到后台对应的服务

      docker构建镜像的时候不要使用缓存指令

       

Rancher调试微服务_zookeeper_10

       --no-cache

      java 启动命令的设置规则

      

Rancher调试微服务_启动应用_11

      -jar 和 -name 必须单独用引号括起来 不能和后面的参数混在一起

           

Rancher调试微服务_zookeeper_12

               

Rancher调试微服务_zookeeper_13

               启动容器的时候指定工作目录即可

进程问题查询

       

Rancher调试微服务_启动应用_14

        在主机上总是有一个root用户启动的jlostash的进程 而且被杀掉后会一直自动重新创建

        lsof -p 23140

        

Rancher调试微服务_zookeeper_15

       有可能是docker容器在自动启动这个进程

       

Rancher调试微服务_zookeeper_16

      删除pod控制器即可停止对应的进程

前后台进程启动方式的区别

        如果启动应用后需要一直保持当前应用一直在线就必须以前台方式运行 比如docker容器.如果启动应用后是通过进程检测的方式来检查服务是否正常那么就必须以后台方式启动应用

        如果是后台方式启动 那么在启动完成自己后还可以继续执行后面的指令    如果是以前台方式运行 那么有可能由于当前进程处于等待状态导致后面的指令无法执行或者子进程无法启动

            后台方式启动

            

Rancher调试微服务_nginx_17

           前台方式启动

             /usr/bin/java  -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAM

           

Rancher调试微服务_启动应用_18

zookeeper连接出现异常

        

Rancher调试微服务_nginx_19

       不管怎么重启zookeeper都会出现上面的连接异常  zookeeper一旦重新启动 原来的客户端却一直连接着zk服务端导致客户端不断的尝试连接zk造成大量的无效连接

          

Rancher调试微服务_nginx_20

    kafka配置

        

Rancher调试微服务_启动应用_21

docker容器中的时间不同步

        是因为docker容器所在的主机时间不对 虽然时区中国时区CST 但是具体的小时还是错误的

        

Rancher调试微服务_启动应用_22

        

Rancher调试微服务_启动应用_23

注册中心服务名称配置

      如果不指定注册中心的服务名称,就会用pod的名称来注册到注册中心.Pod的名称一旦变化就无法重新访问后端服务

      

Rancher调试微服务_zookeeper_24