gitee.com/woood2/luca@v1.0.4/test/reconnect.md (about)

     1  ### 测试内容
     2  针对依赖的外部组件,关闭一段时间,然后重启,观察Go框架能否脱离人工干预自动重连
     3  
     4  ### consul
     5  - client有缓存机制,即使consul关闭阶段,也不影响gRPC请求
     6  - consul关闭阶段,client定期轮询server状态的请求失败,并打印日志
     7  - consul重启后client与server能够自动恢复正常
     8  
     9  ### mysql
    10  - mysql关闭时,gorm框架输出一条日志:closing bad idle connection: EOF
    11  - mysql关闭阶段,执行sql语句会立即返回err,输出日志: dial tcp [::1]:3306: connect: connection refused
    12  - mysql重启后,执行sql语句恢复正常,说明gorm库能够自动恢复连接
    13  
    14  ### mongo
    15  - mongo关闭时,执行insert操作,等待较长时间之后返回err: dial tcp [::1]:27017: connect: connection refused
    16  - 在具体的insert语句上,传入带有1秒timeout的context对象,能够快速返回err
    17  - mongo重启后,执行insert操作恢复正常,说明mongo-driver库能够自动恢复连接
    18  
    19  ### redis
    20  - redis关闭时,执行cmd立即返回err:dial tcp 127.0.0.1:6379: connect: connection refused
    21  - redis关闭时,cron主实例因为无法续签终止进程,cron副实例不断竞选保持进程
    22  - redis重启后,cron副实例竞选成功,恢复正常,说明go-redis库能够自动恢复连接
    23  
    24  ### kafka
    25  - kafka关闭时,sendMessage立即输出日志并返回err:kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
    26  - kafka重启后,sendMessage保持一段时间断路状态(自带断路器),随后恢复正常,说明producer能够自动恢复连接
    27  - kafka关闭时,consumerGroup.Consume方法会退出,反复重试,直到kafka重启,这段逻辑是我在consumer入口DIY的
    28  
    29  ### zipkin
    30  - zipkin关闭时,框架会不断重试,并且输出日志:failed to send the request: Post "http://10.78.202.136:9411/api/v2/spans": dial tcp [::1]:9411: connect: connection refused
    31  - zipkin重启后,自动恢复正常
    32  - zipkin在生产环境默认使用NewNoopReporter,更没影响了