クラス CachingConnectionFactory
- java.lang.ObjectSE
-
- org.springframework.amqp.rabbit.connection.AbstractConnectionFactory
-
- org.springframework.amqp.rabbit.connection.CachingConnectionFactory
- 実装されているすべてのインターフェース:
com.rabbitmq.client.ShutdownListener
、EventListenerSE
、ConnectionFactory
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、ApplicationEventPublisherAware
、ApplicationListener<ContextClosedEvent>
@ManagedResource public class CachingConnectionFactory extends AbstractConnectionFactory implements InitializingBean, com.rabbitmq.client.ShutdownListener
(キャッシュモードがCachingConnectionFactory.CacheMode.CHANNEL
(デフォルト) の場合、すべてのcreateConnection()
呼び出しから同じ接続を返し、Connection.close()
への呼び出しを無視してChannel
をキャッシュするConnectionFactory
実装。デフォルトでは、1 つのチャネルのみがキャッシュされ、さらにリクエストされたチャネルが作成され、オンデマンドで破棄されます。並行性の高い環境の場合は、
"channelCacheSize" value
を上げることを検討してください。キャッシュモードが
CachingConnectionFactory.CacheMode.CONNECTION
の場合、各createConnection()
に対して新しい (またはキャッシュされた) 接続が使用されます。接続は"connectionCacheSize" value
に従ってキャッシュされます。このモードでは、接続とチャネルの両方がキャッシュされます。CachingConnectionFactory.CacheMode.CONNECTION
は、キューなどを自動宣言する Rabbit 管理者と互換性がありません。注: この ConnectionFactory では、Connection(s) から取得したすべての Channel を明示的に閉じる必要があります。これはネイティブ Rabbit アクセスコードの通常の推奨事項です。ただし、この ConnectionFactory では、チャネルの再利用を実際に許可するために、その使用が必須です。
Channel.close()
は、空きがある場合はチャネルをキャッシュに戻し、空きがない場合はチャネルを物理的に閉じます。- 作成者:
- Mark Pollack, Mark Fisher, Dave Syer, Gary Russell, Artem Bilan, Steve Powell, Will Droste
ネストされたクラスの要約
ネストされたクラス 修飾子と型 クラス 説明 static class
CachingConnectionFactory.CacheMode
キャッシュモード。static class
CachingConnectionFactory.ConfirmType
パブリッシャーの型は、使用を確認します。クラス org.springframework.amqp.rabbit.connection.AbstractConnectionFactory から継承されたネストクラス / インターフェース
AbstractConnectionFactory.AddressShuffleMode
フィールドのサマリー
クラス org.springframework.amqp.rabbit.connection.AbstractConnectionFactory から継承されたフィールド
DEFAULT_CLOSE_TIMEOUT, logger
コンストラクターの概要
コンストラクター コンストラクター 説明 CachingConnectionFactory()
ホスト名を 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 を作成します。CachingConnectionFactory(URISE uri)
URI
SE を指定して新しい CachingConnectionFactory を作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 void
addConnectionListener(ConnectionListener listener)
void
afterPropertiesSet()
protected void
closeAndClear(CollectionSE<ChannelProxy> theChannels)
protected void
closeChannels(CollectionSE<ChannelProxy> theChannels)
Connection
createConnection()
void
destroy()
基になる共有接続を閉じます。CachingConnectionFactory.CacheMode
getCacheMode()
PropertiesSE
getCacheProperties()
int
getChannelCacheSize()
protected ExecutorServiceSE
getChannelsExecutor()
ターゲットチャネルに使用されるエグゼキュータサービスを決定します。int
getConnectionCacheSize()
PropertiesSE
getPublisherConnectionFactoryCacheProperties()
基になるパブリッシャーサブファクトリからキャッシュプロパティを返します。boolean
isPublisherConfirms()
パブリッシャーの確認が有効になっている場合は true を返します。boolean
isPublisherReturns()
パブリッシャーの return が有効になっている場合は true を返します。boolean
isSimplePublisherConfirms()
シンプルな発行者の確認が有効になっている場合は true を返します。protected void
reset(ListSE<ChannelProxy> channels, ListSE<ChannelProxy> txChannels, MapSE<com.rabbitmq.client.Channel,ChannelProxy> channelsAwaitingAcks)
void
resetConnection()
接続を閉じる。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
setPublisherConfirms(boolean publisherConfirms)
使用すべきではありません。void
setPublisherConfirmType(CachingConnectionFactory.ConfirmType confirmType)
使用する確認型を設定します。デフォルトCachingConnectionFactory.ConfirmType.NONE
。void
setPublisherConnectionFactory(AbstractConnectionFactory publisherConnectionFactory)
カスタムパブリッシャー接続ファクトリを設定します。型はこのファクトリと同じである必要はありません。void
setPublisherReturns(boolean publisherReturns)
void
setSimplePublisherConfirms(boolean simplePublisherConfirms)
使用すべきではありません。StringSE
toString()
クラス org.springframework.amqp.rabbit.connection.AbstractConnectionFactory から継承されたメソッド
addChannelListener, clearConnectionListeners, createBareConnection, doSetPublisherConnectionFactory, 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, setConnectionNameStrategy, setConnectionThreadFactory, setConnectionTimeout, setExecutor, setHost, setPassword, setPort, setRecoveryListener, setRequestedHeartBeat, setShuffleAddresses, setUri, setUri, setUsername, setVirtualHost, shutdownCompleted
コンストラクターの詳細
CachingConnectionFactory
public CachingConnectionFactory()
ホスト名を InetAddress.getLocalHost() から返される値、または getLocalHost() が例外をスローする場合は "localhost" に初期化して、新しい CachingConnectionFactory を作成します。
CachingConnectionFactory
public CachingConnectionFactory(@Nullable StringSE hostname)
ホスト名を指定して新しい CachingConnectionFactory を作成します。- パラメーター:
hostname
- 接続するホスト名
CachingConnectionFactory
public CachingConnectionFactory(int port)
InetAddress.getLocalHost() から返されたホスト名のポートを指定して新しい CachingConnectionFactory を作成するか、getLocalHost() が例外をスローする場合は "localhost" を作成します。- パラメーター:
port
- ポート番号
CachingConnectionFactory
public CachingConnectionFactory(@Nullable StringSE hostNameArg, int port)
ホスト名とポートを指定して、新しい CachingConnectionFactory を作成します。- パラメーター:
hostNameArg
- 接続するホスト名port
- ポート番号
CachingConnectionFactory
public CachingConnectionFactory(URISE uri)
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
- チャネルのキャッシュサイズ。- 関連事項:
setChannelCheckoutTimeout(long)
getChannelCacheSize
public int getChannelCacheSize()
getCacheMode
public CachingConnectionFactory.CacheMode getCacheMode()
setCacheMode
public void setCacheMode(CachingConnectionFactory.CacheMode cacheMode)
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)
setPublisherConfirms
@DeprecatedSE public void setPublisherConfirms(boolean publisherConfirms)
使用すべきではありません。相関データと各メッセージのコールバックを使用して、完全な (相関) パブリッシャー確認を使用します。- パラメーター:
publisherConfirms
- パブリッシャーの全額 return の場合は true- 導入:
- 1.1
- 関連事項:
setSimplePublisherConfirms(boolean)
setSimplePublisherConfirms
@DeprecatedSE public void setSimplePublisherConfirms(boolean simplePublisherConfirms)
使用すべきではありません。シンプルなパブリッシャーの確認を使用して、テンプレートが完了を待つだけです。- パラメーター:
simplePublisherConfirms
- 確認の場合は true。- 導入:
- 2.1
- 関連事項:
setPublisherConfirms(boolean)
isSimplePublisherConfirms
public boolean isSimplePublisherConfirms()
インターフェースからコピーされた説明:ConnectionFactory
シンプルな発行者の確認が有効になっている場合は true を返します。- 次で指定:
- インターフェース
ConnectionFactory
のisSimplePublisherConfirms
- 戻り値:
- simplePublisherConfirms
setPublisherConfirmType
public void setPublisherConfirmType(CachingConnectionFactory.ConfirmType confirmType)
使用する確認型を設定します。デフォルト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
- 関連事項:
setConnectionLimit(int)
setPublisherChannelFactory
public void setPublisherChannelFactory(PublisherCallbackChannelFactory publisherChannelFactory)
PublisherCallbackChannel
インスタンスの作成に使用するファクトリを設定します。- パラメーター:
publisherChannelFactory
- ファクトリ。- 導入:
- 2.1.6
afterPropertiesSet
public void afterPropertiesSet()
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
setConnectionListeners
public void setConnectionListeners(ListSE<? extends ConnectionListener> listeners)
- オーバーライド:
- クラス
AbstractConnectionFactory
のsetConnectionListeners
addConnectionListener
public void addConnectionListener(ConnectionListener listener)
- 次で指定:
- インターフェース
ConnectionFactory
のaddConnectionListener
- オーバーライド:
- クラス
AbstractConnectionFactory
のaddConnectionListener
createConnection
public final Connection createConnection() throws AmqpException
- 次で指定:
- インターフェース
ConnectionFactory
のcreateConnection
- 例外:
AmqpException
destroy
public final void destroy()
基になる共有接続を閉じます。アプリケーションの実行中にresetConnection()
を使用して接続を閉じます。この Bean は DisposableBean を実装しているため、Bean ファクトリは、キャッシュされたシングルトンの破棄時にこれを自動的に呼び出します。
コンテキストが閉じられた後に呼び出された場合、接続ファクトリは接続をサーバー化できなくなります。
- 次で指定:
- インターフェース
DisposableBean
のdestroy
- オーバーライド:
- クラス
AbstractConnectionFactory
のdestroy
resetConnection
public void resetConnection()
接続を閉じます。これは、進行中の操作に影響を与えます。このメソッドが戻った後、必要に応じて新しい接続が作成されます。これは、セカンダリブローカにフェイルオーバーした後、プライマリブローカへの再接続を強制するために使用される場合があります。
reset
protected void reset(ListSE<ChannelProxy> channels, ListSE<ChannelProxy> txChannels, MapSE<com.rabbitmq.client.Channel,ChannelProxy> channelsAwaitingAcks)
closeAndClear
protected void closeAndClear(CollectionSE<ChannelProxy> theChannels)
closeChannels
protected void closeChannels(CollectionSE<ChannelProxy> theChannels)
getCacheProperties
@ManagedAttribute public PropertiesSE getCacheProperties()
getPublisherConnectionFactoryCacheProperties
@ManagedAttribute public PropertiesSE getPublisherConnectionFactoryCacheProperties()
基になるパブリッシャーサブファクトリからキャッシュプロパティを返します。- 戻り値:
- プロパティ。
- 導入:
- 2.0.2
getChannelsExecutor
protected ExecutorServiceSE getChannelsExecutor()
ターゲットチャネルに使用されるエグゼキュータサービスを決定します。- 戻り値:
- それ以外の場合は、デフォルトのサービスが作成されて返されます。
- 導入:
- 1.7.9
toString
public StringSE toString()
- オーバーライド:
- クラス
AbstractConnectionFactory
のtoString