クラス 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と提供された通信モデルに基づいてチャネルインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明voiddestroy()protected booleanサブクラスはこのメソッドを実装する必要があります。protected voidonInit()サブクラスは、初期化ロジック用にこれを実装できます。voidsetConnectUrl(StringSE connectUrl) プロキシのフロントエンドおよびバックエンドソケットのコロンを介してポートのペアで ZeroMQ プロキシへの接続を構成します。voidsetConsumeDelay(DurationSE consumeDelay) データが受信されないときに消費を遅らせるには、DurationSE を指定します。voidsetMessageMapper(BytesMessageMapper messageMapper) ソケットで送信または受信が発生したときにメッセージとの間で変換するBytesMessageMapperを提供します。voidsetSendSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> sendSocketConfigurer) パブリッシングソケットを構成するためのConsumerSE コールバック。voidsetSubscribeSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> subscribeSocketConfigurer) 消費ソケットを構成するためのConsumerSE コールバック。voidsetZeroMqProxy(ZeroMqProxy zeroMqProxy) 同じアプリケーションでZeroMqProxyインスタンスへの参照を指定して、そのポート構成に依存し、プロキシがいつ起動されるかを推測することなく、自然なライフサイクル依存関係を作成します。booleansubscribe(MessageHandler handler) booleanunsubscribe(MessageHandler handler) クラス org.springframework.integration.channel.AbstractMessageChannel から継承されたメソッド
addInterceptor, addInterceptor, getComponentType, getFullChannelName, getIChannelInterceptorList, getIntegrationPatternType, getInterceptors, getMetricsCaptor, getOverrides, isApplicationRunning, 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
データが受信されないときに消費を遅らせるには、DurationSE を指定します。- パラメーター:
consumeDelay- 空のときに消費を遅らせるDurationSE。デフォルトはDEFAULT_CONSUME_DELAYです。
setMessageMapper
ソケットで送信または受信が発生したときにメッセージとの間で変換するBytesMessageMapperを提供します。- パラメーター:
messageMapper- 使用するBytesMessageMapper。デフォルトはEmbeddedJsonHeadersMessageMapperです。
setSendSocketConfigurer
パブリッシングソケットを構成するためのConsumerSE コールバック。送信ソケットは、ZeroMQ プロキシのフロントエンドソケット(存在する場合)に接続されます。- パラメーター:
sendSocketConfigurer- 使用するConsumerSE。
setSubscribeSocketConfigurer
public void setSubscribeSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> subscribeSocketConfigurer) 消費ソケットを構成するためのConsumerSE コールバック。サブスクライブソケットは、ZeroMQ プロキシのバックエンドソケット(存在する場合)に接続されています。- パラメーター:
subscribeSocketConfigurer- 使用するConsumerSE。
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