使用主题时,servicebus连接发生ETIMEOUT错误

时间:2019-02-07 21:35:19

标签: node.js azure azureservicebus

我正在创建与Servicebus的5个连接,并将它们放在一个数组中。然后,随着新消息的不断出现,我从阵列获得了一个连接,并使用它们来发送消息。当我启动服务并运行负载测试时,它工作正常。我离开服务理想状态一段时间,然后再次运行相同的负载测试,开始出现此错误。 import pandas as pd import numpy as np #to plot within notebook import matplotlib.pyplot as plt 'exec(%matplotlib inline)' #setting figure size from matplotlib.pylab import rcParams rcParams['figure.figsize'] = 20,10 #for normalizing data from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler(feature_range=(0, 1)) #read the file df = pd.read_csv('NSE-TATAGLOBAL (5).csv') #print the head df.head() #setting index as date df['Date'] = pd.to_datetime(df.Date,format='%Y-%m-%d') df.index = df['Date'] #sorting data = df.sort_index(ascending=True, axis=0) #creating a separate dataset new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date', 'Close']) for i in range(0,len(data)): new_data['Date'][i] = data['Date'][i] new_data['Close'][i] = data['Close'][i] #split into train and validation train = new_data[:987] valid = new_data[987:] x_train = train.drop('Close', axis=1) y_train = train['Close'] x_valid = valid.drop('Close', axis=1) y_valid = valid['Close'] #implement linear regression from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(x_train,y_train) #make predictions and find the rmse preds = model.predict(x_valid) rms=np.sqrt(np.mean(np.power((np.array(y_valid)-np.array(preds)),2))) rms #plot valid['Predictions'] = 0 valid['Predictions'] = preds valid.index = new_data[987:].index train.index = new_data[:987].index plt.plot(train['Close']) plt.plot(valid[['Close', 'Predictions']])

我不确定这是否是缓存连接并重用它们的好方法,这可能会导致此问题,或者是导致此问题的其他原因。

connect ETIMEDOUT xxx.xxx.xxx.xxx\\n    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14)

我不确定现在应该选择哪个路由来解决此超时错误。

2 个答案:

答案 0 :(得分:0)

查看azure-sdk-for-node的源代码,特别是这些行的顺序

SDK仅通过其REST API向Service Bus执行REST请求。因此,我并不认为合并这些对象真的有帮助。

在SDK使用的request npm模块引起的那个时间点,超时似乎是一个真正的超时。

您可能可以尝试使用newer SDK,该引擎在幕后使用amqp连接到服务总线。请注意,此SDK处于预览状态。

答案 1 :(得分:0)

正如PramodValavalala-MSFT在另一个答案中提到的@azure/service-bus SDK一样,@azure/service-bus SDK的主要版本7.0.0(已在预览中)取决于AMQP,最近已发布。

ServiceBusClient的每个实例代表一个连接,ServiceBusClient下的所有方法都使用相同的连接。