クラス ZeroMqChannel
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.zeromq.channel.ZeroMqChannel
- 実装されたすべてのインターフェース:
Aware
、BeanFactoryAware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、ComponentSourceAware
、ExpressionCapable
、IntegrationPattern
、NamedComponent
、IntegrationManagement
、TrackableComponent
、MessageChannel
、SubscribableChannel
、InterceptableChannel
ZeroMQ ソケットを介した
SubscribableChannel
の実装。これは、次の 2 つのメッセージングモデルで機能します。- push-pull
。送信されたメッセージは、それぞれの ZeroMQ SocketType.PUSH
および SocketType.PULL
ソケット型ロジックに従ってラウンドロビン方式でサブスクライバーに配信されます。- pub-sub
。送信されたメッセージはすべてのサブスクライバーに配信されます。 このメッセージチャネルは、SocketType.PAIR
型の ZeroMQ ソケットのペアがスレッド間トランスポートバインディングを使用してパブリッシャー(送信操作)とサブスクライバーの間に接続されている場合、ローカルモードで機能します。
分散モードでは、このチャネルを外部で管理されている ZeroMQ プロキシに接続する必要があります。setConnectUrl(String)
は、標準の ZeroMQ 接続文字列である必要がありますが、コロンを超える追加のポートがあり、ZeroMQ プロキシのフロントエンドとバックエンドのソケットペアを表します。例: tcp://localhost:6001:6002
. 別のオプションは、同じアプリケーションで管理される ZeroMqProxy
インスタンスへの参照を提供することです。フロントエンドポートとバックエンドポートはこのプロキシから評価され、それぞれの接続文字列がそれらから構築されます。
このように、このチャネルでの送受信操作は、メッセージングブローカーを介したやり取りに似ています。
このメッセージチャネル実装の内部ロジックは、Mono
、Flux
、Scheduler
API を使用するプロジェクト Reactor に基づいており、スレッドモデルとフロー制御を改善して、同じアプリケーション内でのマルチパブリッシャー(サブスクライバー)通信の同時実行プリミティブを回避します。
- 導入:
- 5.4
- 作成者:
- Artem Bilan
ネストされたクラスのサマリー
クラス org.springframework.integration.channel.AbstractMessageChannel から継承されたネストクラス / インターフェース
AbstractMessageChannel.ChannelInterceptorList
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたネストクラス / インターフェース
IntegrationManagement.ManagementOverrides
フィールドのサマリー
フィールドクラス org.springframework.integration.channel.AbstractMessageChannel から継承されたフィールド
interceptors, meters
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, logger
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたフィールド
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
インターフェース org.springframework.messaging.MessageChannel から継承されたフィールド
INDEFINITE_TIMEOUT
コンストラクターの概要
コンストラクターコンストラクター説明ZeroMqChannel
(org.zeromq.ZContext context) 提供されているプッシュ / プル通信モデルを備えたZContext
に基づいてチャネルインスタンスを作成します。ZeroMqChannel
(org.zeromq.ZContext context, boolean pubSub) 提供されたZContext
と提供された通信モデルに基づいてチャネルインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明void
destroy()
protected boolean
サブクラスはこのメソッドを実装する必要があります。protected void
onInit()
サブクラスは、初期化ロジック用にこれを実装できます。void
setConnectUrl
(StringSE connectUrl) プロキシのフロントエンドおよびバックエンドソケットのコロンを介してポートのペアで ZeroMQ プロキシへの接続を構成します。void
setConsumeDelay
(DurationSE consumeDelay) データが受信されないときに消費を遅らせるには、Duration
SE を指定します。void
setMessageMapper
(BytesMessageMapper messageMapper) ソケットで送信または受信が発生したときにメッセージとの間で変換するBytesMessageMapper
を提供します。void
setSendSocketConfigurer
(ConsumerSE<org.zeromq.ZMQ.Socket> sendSocketConfigurer) パブリッシングソケットを構成するためのConsumer
SE コールバック。void
setSubscribeSocketConfigurer
(ConsumerSE<org.zeromq.ZMQ.Socket> subscribeSocketConfigurer) 消費ソケットを構成するためのConsumer
SE コールバック。void
setZeroMqProxy
(ZeroMqProxy zeroMqProxy) 同じアプリケーションでZeroMqProxy
インスタンスへの参照を指定して、そのポート構成に依存し、プロキシがいつ起動されるかを推測することなく、自然なライフサイクル依存関係を作成します。boolean
subscribe
(MessageHandler handler) boolean
unsubscribe
(MessageHandler handler) クラス org.springframework.integration.channel.AbstractMessageChannel から継承されたメソッド
addInterceptor, addInterceptor, getComponentType, getFullChannelName, getIChannelInterceptorList, getIntegrationPatternType, getInterceptors, getMetricsCaptor, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, removeInterceptor, removeInterceptor, send, send, setDatatypes, setInterceptors, setLoggingEnabled, setMessageConverter, setObservationConvention, setShouldTrack
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたメソッド
getManagedName, getManagedType, getThisAs, setManagedName, setManagedType
インターフェース org.springframework.messaging.MessageChannel から継承されたメソッド
send, send
インターフェース org.springframework.integration.support.context.NamedComponent から継承されたメソッド
getBeanName, getComponentName
フィールドの詳細
DEFAULT_CONSUME_DELAY
コンストラクターの詳細
ZeroMqChannel
public ZeroMqChannel(org.zeromq.ZContext context) 提供されているプッシュ / プル通信モデルを備えたZContext
に基づいてチャネルインスタンスを作成します。- パラメーター:
context
- 使用するZContext
。
ZeroMqChannel
public ZeroMqChannel(org.zeromq.ZContext context, boolean pubSub) 提供されたZContext
と提供された通信モデルに基づいてチャネルインスタンスを作成します。- パラメーター:
context
- 使用するZContext
。pubSub
- コミュニケーションモデル: プッシュ / プルまたは pub/ サブ。
メソッドの詳細
setConnectUrl
プロキシのフロントエンドおよびバックエンドソケットのコロンを介してポートのペアで ZeroMQ プロキシへの接続を構成します。setZeroMqProxy(ZeroMqProxy)
と相互に排他的です。- パラメーター:
connectUrl
-PROTOCOL://HOST:FRONTEND_PORT:BACKEND_PORT
形式の接続文字列。tcp://localhost:6001:6002
setZeroMqProxy
同じアプリケーションでZeroMqProxy
インスタンスへの参照を指定して、そのポート構成に依存し、プロキシがいつ起動されるかを推測することなく、自然なライフサイクル依存関係を作成します。setConnectUrl(String)
と相互に排他的です。- パラメーター:
zeroMqProxy
- 使用するZeroMqProxy
インスタンス
setConsumeDelay
データが受信されないときに消費を遅らせるには、Duration
SE を指定します。- パラメーター:
consumeDelay
- 空のときに消費を遅らせるDuration
SE。デフォルトはDEFAULT_CONSUME_DELAY
です。
setMessageMapper
ソケットで送信または受信が発生したときにメッセージとの間で変換するBytesMessageMapper
を提供します。- パラメーター:
messageMapper
- 使用するBytesMessageMapper
。デフォルトはEmbeddedJsonHeadersMessageMapper
です。
setSendSocketConfigurer
パブリッシングソケットを構成するためのConsumer
SE コールバック。送信ソケットは、ZeroMQ プロキシのフロントエンドソケット(存在する場合)に接続されます。- パラメーター:
sendSocketConfigurer
- 使用するConsumer
SE。
setSubscribeSocketConfigurer
public void setSubscribeSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> subscribeSocketConfigurer) 消費ソケットを構成するためのConsumer
SE コールバック。サブスクライブソケットは、ZeroMQ プロキシのバックエンドソケット(存在する場合)に接続されています。- パラメーター:
subscribeSocketConfigurer
- 使用するConsumer
SE。
onInit
protected void onInit()クラスからコピーされた説明:IntegrationObjectSupport
サブクラスは、初期化ロジック用にこれを実装できます。- オーバーライド:
- クラス
AbstractMessageChannel
のonInit
doSend
クラスからコピーされた説明:AbstractMessageChannel
サブクラスはこのメソッドを実装する必要があります。負でないタイムアウトは、チャネルが容量に達した場合に待機する時間を示します(値が 0 の場合、成功の有無にかかわらずすぐに戻る必要があります)。負のタイムアウト値は、メッセージが受け入れられるか、ブロッキングスレッドが中断されるまでメソッドがブロックされることを示します。- 次で指定:
- クラス
AbstractMessageChannel
のdoSend
- パラメーター:
message
- メッセージ。timeout
- タイムアウト。- 戻り値:
send
が成功した場合は true。
subscribe
- 次で指定:
- インターフェース
SubscribableChannel
のsubscribe
unsubscribe
- 次で指定:
- インターフェース
SubscribableChannel
のunsubscribe
destroy
public void destroy()- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 次で指定:
- インターフェース
IntegrationManagement
のdestroy
- オーバーライド:
- クラス
AbstractMessageChannel
のdestroy