クラス CachingConnectionFactory
- 実装されたすべてのインターフェース:
com.rabbitmq.client.ShutdownListener
、EventListenerSE
、ConnectionFactory
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、ApplicationEventPublisherAware
、ApplicationListener<ContextClosedEvent>
、Lifecycle
、Phased
、SmartLifecycle
CachingConnectionFactory.CacheMode.CHANNEL
(デフォルト) の場合、すべての createConnection()
呼び出しから同じ接続を返し、Connection.close()
への呼び出しを無視して Channel
をキャッシュする ConnectionFactory
実装。 デフォルトでは、1 つのチャネルのみがキャッシュされ、さらにリクエストされたチャネルが作成され、オンデマンドで破棄されます。並行性の高い環境の場合は、"channelCacheSize" value
を上げることを検討してください。
キャッシュモードが CachingConnectionFactory.CacheMode.CONNECTION
の場合、各 createConnection()
に対して新しい (またはキャッシュされた) 接続が使用されます。接続は "connectionCacheSize" value
に従ってキャッシュされます。このモードでは、接続とチャネルの両方がキャッシュされます。
CachingConnectionFactory.CacheMode.CONNECTION
は、キューなどを自動宣言する Rabbit 管理者と互換性がありません。
注: この ConnectionFactory では、接続から取得したすべてのチャネルを明示的に閉じる必要があります。いずれにせよ、これはネイティブ Rabbit アクセスコードに対する通常の推奨事項です。ただし、この ConnectionFactory では、実際にチャネルを再利用できるようにするために、その使用が必須です。Channel.close()
は、余裕がある場合はチャネルをキャッシュに戻し、余裕がない場合はチャネルを物理的に閉じます。
- 作成者:
- Mark Pollack, Mark Fisher, Dave Syer, Gary Russell, Artem Bilan, Steve Powell, Will Droste, Leonardo Ferreira
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static enum
キャッシュモード。static enum
パブリッシャーの型は、使用を確認します。クラス org.springframework.amqp.rabbit.connection.AbstractConnectionFactory から継承されたネストクラス / インターフェース
AbstractConnectionFactory.AddressShuffleMode, AbstractConnectionFactory.DefaultChannelCloseLogger
フィールドサマリー
クラス org.springframework.amqp.rabbit.connection.AbstractConnectionFactory から継承されたフィールド
DEFAULT_CLOSE_TIMEOUT, logger
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
コンストラクターコンストラクター説明ホスト名を InetAddress.getLocalHost() から返される値、または getLocalHost() が例外をスローする場合は "localhost" に初期化して、新しい CachingConnectionFactory を作成します。CachingConnectionFactory
(int port) InetAddress.getLocalHost() から返されたホスト名のポートを指定して新しい CachingConnectionFactory を作成するか、getLocalHost() が例外をスローする場合は "localhost" を作成します。CachingConnectionFactory
(com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory) 指定されたターゲット ConnectionFactory の新しい CachingConnectionFactory を作成します。CachingConnectionFactory
(StringSE hostname) ホスト名を指定して新しい CachingConnectionFactory を作成します。CachingConnectionFactory
(StringSE hostNameArg, int port) ホスト名とポートを指定して、新しい CachingConnectionFactory を作成します。URI
SE を指定して新しい CachingConnectionFactory を作成します。メソッドのサマリー
修飾子と型メソッド説明void
addConnectionListener
(ConnectionListener listener) void
protected void
closeAndClear
(CollectionSE<ChannelProxy> theChannels) protected void
closeChannels
(CollectionSE<ChannelProxy> theChannels) final Connection
final void
destroy()
基になる共有接続を閉じます。int
protected ExecutorServiceSE
ターゲットチャネルに使用されるエグゼキュータサービスを決定します。int
int
getPhase()
基になるパブリッシャーサブファクトリからキャッシュプロパティを返します。boolean
パブリッシャーの確認が有効になっている場合は true を返します。boolean
パブリッシャーの return が有効になっている場合は true を返します。boolean
boolean
シンプルな発行者の確認が有効になっている場合は true を返します。protected void
reset
(DequeSE<ChannelProxy> channels, DequeSE<ChannelProxy> txChannels, MapSE<com.rabbitmq.client.Channel, ChannelProxy> channelsAwaitingAcks) void
接続を閉じる。void
setCacheMode
(CachingConnectionFactory.CacheMode cacheMode) void
setChannelCacheSize
(int sessionCacheSize) キャッシュで維持するチャネルの数。void
setChannelCheckoutTimeout
(long channelCheckoutTimeout) チャネルチェックアウトのタイムアウトを設定します。void
setConnectionCacheSize
(int connectionCacheSize) void
setConnectionLimit
(int connectionLimit) キャッシュモード CONNECTION 使用時の接続制限を設定します。void
setConnectionListeners
(ListSE<? extends ConnectionListener> listeners) void
setPublisherChannelFactory
(PublisherCallbackChannelFactory publisherChannelFactory) PublisherCallbackChannel
インスタンスの作成に使用するファクトリを設定します。void
使用する確認型を設定します。デフォルトCachingConnectionFactory.ConfirmType.NONE
。void
setPublisherConnectionFactory
(AbstractConnectionFactory publisherConnectionFactory) カスタムパブリッシャー接続ファクトリを設定します。型はこのファクトリと同じである必要はありません。void
setPublisherReturns
(boolean publisherReturns) void
start()
void
stop()
toString()
クラス org.springframework.amqp.rabbit.connection.AbstractConnectionFactory から継承されたメソッド
addChannelListener, clearConnectionListeners, createBareConnection, doSetPublisherConnectionFactory, getAddresses, getApplicationContext, getApplicationEventPublisher, getBeanName, getChannelListener, getCloseTimeout, getConnectionListener, getConnectionNameStrategy, getContextStopped, getDefaultHostName, getExecutorService, getHost, getPort, getPublisherConnectionFactory, getRabbitConnectionFactory, getUsername, getVirtualHost, hasPublisherConnectionFactory, onApplicationEvent, removeConnectionListener, setAddresses, setAddressResolver, setAddressShuffleMode, setApplicationContext, setApplicationEventPublisher, setBeanName, setChannelListeners, setCloseExceptionLogger, setCloseTimeout, setConnectionCreatingBackOff, setConnectionNameStrategy, setConnectionThreadFactory, setConnectionTimeout, setExecutor, setHost, setPassword, setPort, setRecoveryListener, setRequestedHeartBeat, setUri, setUri, setUsername, setVirtualHost, shutdownCompleted
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.context.ApplicationListener から継承されたメソッド
supportsAsyncExecution
インターフェース com.rabbitmq.client.ShutdownListener から継承されたメソッド
shutdownCompleted
インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
isAutoStartup, stop
コンストラクターの詳細
CachingConnectionFactory
public CachingConnectionFactory()ホスト名を InetAddress.getLocalHost() から返される値、または getLocalHost() が例外をスローする場合は "localhost" に初期化して、新しい CachingConnectionFactory を作成します。CachingConnectionFactory
ホスト名を指定して新しい CachingConnectionFactory を作成します。- パラメーター:
hostname
- 接続するホスト名
CachingConnectionFactory
public CachingConnectionFactory(int port) InetAddress.getLocalHost() から返されたホスト名のポートを指定して新しい CachingConnectionFactory を作成するか、getLocalHost() が例外をスローする場合は "localhost" を作成します。- パラメーター:
port
- ポート番号
CachingConnectionFactory
ホスト名とポートを指定して、新しい CachingConnectionFactory を作成します。- パラメーター:
hostNameArg
- 接続するホスト名port
- ポート番号
CachingConnectionFactory
URI
SE を指定して新しい CachingConnectionFactory を作成します。- パラメーター:
uri
- 接続を構成する amqp uri- 導入:
- 1.5
CachingConnectionFactory
public CachingConnectionFactory(com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory) 指定されたターゲット ConnectionFactory の新しい CachingConnectionFactory を作成します。- パラメーター:
rabbitConnectionFactory
- ターゲット ConnectionFactory
メソッドの詳細
setPublisherConnectionFactory
public void setPublisherConnectionFactory(@Nullable AbstractConnectionFactory publisherConnectionFactory) クラスからコピーされた説明:AbstractConnectionFactory
カスタムパブリッシャー接続ファクトリを設定します。型はこのファクトリと同じである必要はありません。- オーバーライド:
- クラス
AbstractConnectionFactory
のsetPublisherConnectionFactory
- パラメーター:
publisherConnectionFactory
- ファクトリ。
setChannelCacheSize
public void setChannelCacheSize(int sessionCacheSize) キャッシュで維持するチャネルの数。デフォルトでは、チャネルはオンデマンドで (無制限に) 割り当てられ、これは最大キャッシュサイズを表します。利用可能なチャネルを制限するには、setChannelCheckoutTimeout(long)
を参照してください。- パラメーター:
sessionCacheSize
- チャネルのキャッシュサイズ。- 関連事項:
getChannelCacheSize
public int getChannelCacheSize()getCacheMode
setCacheMode
getConnectionCacheSize
public int getConnectionCacheSize()setConnectionCacheSize
public void setConnectionCacheSize(int connectionCacheSize) setConnectionLimit
public void setConnectionLimit(int connectionLimit) キャッシュモード CONNECTION 使用時の接続制限を設定します。制限に達し、アイドル状態の接続がなくなると、channelCheckoutTimeLimit
を使用して、接続がアイドル状態になるのを待ちます。- パラメーター:
connectionLimit
- 限界。- 導入:
- 1.5.5
isPublisherConfirms
public boolean isPublisherConfirms()インターフェースからコピーされた説明:ConnectionFactory
パブリッシャーの確認が有効になっている場合は true を返します。- 次で指定:
- インターフェース
ConnectionFactory
のisPublisherConfirms
- 戻り値:
- パブリッシャー確認。
isPublisherReturns
public boolean isPublisherReturns()インターフェースからコピーされた説明:ConnectionFactory
パブリッシャーの return が有効になっている場合は true を返します。- 次で指定:
- インターフェース
ConnectionFactory
のisPublisherReturns
- 戻り値:
- パブリッシャーが return します。
setPublisherReturns
public void setPublisherReturns(boolean publisherReturns) isSimplePublisherConfirms
public boolean isSimplePublisherConfirms()インターフェースからコピーされた説明:ConnectionFactory
シンプルな発行者の確認が有効になっている場合は true を返します。- 次で指定:
- インターフェース
ConnectionFactory
のisSimplePublisherConfirms
- 戻り値:
- simplePublisherConfirms
setPublisherConfirmType
使用する確認型を設定します。デフォルトCachingConnectionFactory.ConfirmType.NONE
。- パラメーター:
confirmType
- 確認型。- 導入:
- 2.2
setChannelCheckoutTimeout
public void setChannelCheckoutTimeout(long channelCheckoutTimeout) チャネルチェックアウトタイムアウトを設定します。0 より大きい場合、channelCacheSize
が単純なキャッシュサイズではなく、接続ごとに使用可能なチャネルの総数になるという点で、チャネル制限が有効になります。channelCacheSize
を変更しても、既存の接続の制限には影響しないことに注意してください。destroy()
を呼び出して、新しい制限で新しい接続を作成します。1.5.5 以降、キャッシュモードが CONNECTION の場合の接続の取得にも適用されます。
- パラメーター:
channelCheckoutTimeout
- ミリ秒単位のタイムアウト。デフォルト 0 (チャネル制限は無効)。- 導入:
- 1.4.2
- 関連事項:
setPublisherChannelFactory
PublisherCallbackChannel
インスタンスの作成に使用するファクトリを設定します。- パラメーター:
publisherChannelFactory
- ファクトリ。- 導入:
- 2.1.6
getPhase
public int getPhase()- 次で指定:
- インターフェース
Phased
のgetPhase
- 次で指定:
- インターフェース
SmartLifecycle
のgetPhase
afterPropertiesSet
public void afterPropertiesSet()- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
start
public void start()stop
public void stop()isRunning
public boolean isRunning()setConnectionListeners
- オーバーライド:
- クラス
AbstractConnectionFactory
のsetConnectionListeners
addConnectionListener
- 次で指定:
- インターフェース
ConnectionFactory
のaddConnectionListener
- オーバーライド:
- クラス
AbstractConnectionFactory
のaddConnectionListener
createConnection
- 次で指定:
- インターフェース
ConnectionFactory
のcreateConnection
- 例外:
AmqpException
destroy
public final void destroy()基になる共有接続を閉じます。アプリケーションの実行中にresetConnection()
を使用して接続を閉じます。この Bean は DisposableBean を実装しているため、Bean ファクトリは、キャッシュされたシングルトンの破棄時にこれを自動的に呼び出します。
コンテキストが閉じられた後に呼び出された場合、接続ファクトリは接続をサーバー化できなくなります。
- 次で指定:
- インターフェース
DisposableBean
のdestroy
- オーバーライド:
- クラス
AbstractConnectionFactory
のdestroy
resetConnection
public void resetConnection()接続を閉じます。これは、進行中の操作に影響を与えます。このメソッドが戻った後、必要に応じて新しい接続が作成されます。これは、セカンダリブローカにフェイルオーバーした後、プライマリブローカへの再接続を強制するために使用される場合があります。- 次で指定:
- インターフェース
ConnectionFactory
のresetConnection
reset
protected void reset(DequeSE<ChannelProxy> channels, DequeSE<ChannelProxy> txChannels, MapSE<com.rabbitmq.client.Channel, ChannelProxy> channelsAwaitingAcks) closeAndClear
closeChannels
getCacheProperties
getPublisherConnectionFactoryCacheProperties
基になるパブリッシャーサブファクトリからキャッシュプロパティを返します。- 戻り値:
- プロパティ。
- 導入:
- 2.0.2
getChannelsExecutor
ターゲットチャネルに使用されるエグゼキュータサービスを決定します。- 戻り値:
- それ以外の場合は、デフォルトのサービスが作成されて返されます。
- 導入:
- 1.7.9
toString
- オーバーライド:
- クラス
AbstractConnectionFactory
のtoString