在使用redisson消息订阅时,我针对门店商品库存减扣进行订阅的操作(在这里一个商品一个监听队列),当正式投入生产时,发现一直再报Subscribe timeout: (" + timeout + "ms). Increase 'subscriptionsPerConnection' and/or 'subscriptionConnectionPoolSize' parameters.
的错误,索性根据提示翻了翻源码看看原因:
在redisson里先关注一个类:RedisPubSubConnection
该类继承自RedisConnection
,根据名字我们可知它是一个典型的发布与订阅的类。那么在redisson
使用时,会使用PubSubConnectionEntry
进行一次包装:
public class PubSubConnectionEntry {
private final AtomicInteger subscribedChannelsAmount;
private final RedisPubSubConnection conn;
private final ConcurrentMap<ChannelName, SubscribeListener> subscribeChannelListeners = new ConcurrentHashMap<ChannelName, SubscribeListener>();
private final ConcurrentMap&