クラス 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(@Nullable StringSE hostname) ホスト名を指定して新しい CachingConnectionFactory を作成します。CachingConnectionFactory(@Nullable StringSE hostNameArg, int port) ホスト名とポートを指定して、新しい CachingConnectionFactory を作成します。URISE を指定して新しい CachingConnectionFactory を作成します。メソッドのサマリー
修飾子と型メソッド説明voidaddConnectionListener(ConnectionListener listener) voidprotected voidcloseAndClear(CollectionSE<ChannelProxy> theChannels) protected voidcloseChannels(CollectionSE<ChannelProxy> theChannels) final Connectionfinal voiddestroy()基になる共有接続を閉じます。intprotected ExecutorServiceSEターゲットチャネルに使用されるエグゼキュータサービスを決定します。intintgetPhase()基になるパブリッシャーサブファクトリからキャッシュプロパティを返します。booleanパブリッシャーの確認が有効になっている場合は true を返します。booleanパブリッシャーの return が有効になっている場合は true を返します。booleanbooleanシンプルな発行者の確認が有効になっている場合は true を返します。protected voidreset(DequeSE<ChannelProxy> channels, DequeSE<ChannelProxy> txChannels, MapSE<com.rabbitmq.client.Channel, ChannelProxy> channelsAwaitingAcks) void接続を閉じる。voidsetCacheMode(CachingConnectionFactory.CacheMode cacheMode) voidsetChannelCacheSize(int sessionCacheSize) キャッシュで維持するチャネルの数。voidsetChannelCheckoutTimeout(long channelCheckoutTimeout) チャネルチェックアウトのタイムアウトを設定します。voidsetConnectionCacheSize(int connectionCacheSize) voidsetConnectionLimit(int connectionLimit) キャッシュモード CONNECTION 使用時の接続制限を設定します。voidsetConnectionListeners(ListSE<? extends ConnectionListener> listeners) voidsetPublisherChannelFactory(PublisherCallbackChannelFactory publisherChannelFactory) PublisherCallbackChannelインスタンスの作成に使用するファクトリを設定します。void使用する確認型を設定します。デフォルトCachingConnectionFactory.ConfirmType.NONE。voidsetPublisherConnectionFactory(@Nullable AbstractConnectionFactory publisherConnectionFactory) カスタムパブリッシャー接続ファクトリを設定します。型はこのファクトリと同じである必要はありません。voidsetPublisherReturns(boolean publisherReturns) voidstart()voidstop()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, 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, isPauseable, 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
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 - 戻り値:
- publisherConfirms.
isPublisherReturns
public boolean isPublisherReturns()インターフェースからコピーされた説明:ConnectionFactoryパブリッシャーの return が有効になっている場合は true を返します。- 次で指定:
- インターフェース
ConnectionFactoryのisPublisherReturns - 戻り値:
- publisherReturns.
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
stop
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