• rabbit 在.net 环境下偶现(大概率):None of the specified endpoints were reachable 异常


    项目使用的 rabbit  RabbitMQ.Client, Version=5.0.0.0 

    最近项目用户量上来后,偶现 None of the specified endpoints were reachable 异常

    解决方案:修改MQ请求的超时时间(参数TimeoutMilliseconds 由之前的30秒改成默认10秒,个别调用时间5秒)  发布后系统稳定

      /// <summary>
            /// 
            /// </summary>
            /// <param name="jsonStr"></param>
            /// <param name="className"></param>
            /// <param name="actionName"></param>
            /// <param name="authCode"></param>
            /// <returns></returns>
    public static string SendMessage(string jsonStr, string className, string actionName, string authCode, int timeout = 10000)
            {
    
                if (cf.HostName == null || string.IsNullOrWhiteSpace(cf.HostName) || cf.HostName == "localhost")
                {
                    cf.HostName = hostName;
                    cf.VirtualHost = virtualHost;
                    cf.UserName = userName;
                    cf.Password = password;
                }
    using (IConnection conn = cf.CreateConnection())
                {
                    using (IModel ch = conn.CreateModel())
                    {
    
                        var requst = new RMQRequest
                        {
                            ClassName = className,
                            ActionName = actionName,
                            JStr = jsonStr,
                            Timestamp = DateTime.Now
                        };
     object[] reqobj = new object[1];
    
                        reqobj[0] = JsonConvert.SerializeObject(requst);
    
                        SimpleRpcClient client = new SimpleRpcClient(ch, authCode);
                        client.TimeoutMilliseconds = timeout;
                        client.TimedOut += new EventHandler(TimedOutHandler);
                        client.Disconnected += new EventHandler(DisconnectedHandler);
                        var reply = client.Call(reqobj);
     if (reply == null)
                        {
                            return null;
                        }
                        else
                        {
                            return reply[0].ToString();
                        }
    
                    }
                }
            }
    

      

  • 相关阅读:
    安装win7 ubuntu双系统
    idea maven打jar包
    mongodb入门
    mongodb备份与恢复
    使用cmd时cd命令失效
    vue 项目中使用阿里巴巴矢量图标库iconfont
    vue img标签用法
    vue 点击当前元素改变样式
    vue 路由跳转传参
    iview table绑定双击事件
  • 原文地址:https://www.cnblogs.com/WQ1992/p/12100854.html
Copyright © 2020-2023  润新知