クラス ZeroMqMessageHandler

実装されているすべてのインターフェース:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareLifecycleOrderedComponentSourceAwareExpressionCapableOrderableIntegrationPatternNamedComponentIntegrationManagementManageableLifecycleTrackableComponentReactiveMessageHandler

public class ZeroMqMessageHandler extends AbstractReactiveMessageHandler implements ManageableLifecycle
ZeroMq ソケット経由でメッセージを公開するための AbstractReactiveMessageHandler 実装。SocketType.PAIRSocketType.PUBSocketType.PUSH のみがサポートされています。このコンポーネントはソケットをバインドまたは接続できます。

SocketType.PUB が使用される場合、topicExpression はリクエストメッセージに対して評価され、null でない場合はトピックフレームを ZeroMq メッセージに挿入します。サブスクライバー側は、実際のデータを解析する前に、最初にトピックフレームを受信する必要があります。

リクエストメッセージのペイロードが ZMsg の場合、変換やトピックの抽出は行われません。ZMsg はそのままソケットに送信され、再利用できるように破棄されることはありません。

導入:
5.4
作成者:
Artem Bilan, Alessio Matricardi
  • コンストラクターの詳細

    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context)
      提供された ZContext に基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      導入:
      6.4
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, org.zeromq.SocketType socketType)
      提供された ZContext と SocketType に基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      socketType - 使用する SocketTypeSocketType.PAIRSocketType.PUBSocketType.PUSH のみがサポートされています。
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, StringSE connectUrl)
      提供された ZContext と接続文字列に基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      connectUrl - ソケットを接続する URL。
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, int port)
      提供された ZContext とバインディングポートに基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      port - ZeroMq ソケットを TCP 経由でバインドするポート。
      導入:
      6.4
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, SupplierSE<StringSE> connectUrl)
      提供されている ZContext および接続文字列サプライヤーに基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      connectUrl - ソケットを接続する URL のサプライヤー。
      導入:
      5.5.9
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, StringSE connectUrl, org.zeromq.SocketType socketType)
      提供された ZContext、接続文字列、SocketType に基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      connectUrl - ソケットを接続する URL。
      socketType - 使用する SocketTypeSocketType.PAIRSocketType.PUBSocketType.PUSH のみがサポートされています。
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, int port, org.zeromq.SocketType socketType)
      提供された ZContext、バインディングポート、および SocketType に基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      port - ZeroMq ソケットを TCP 経由でバインドするポート。
      socketType - 使用する SocketTypeSocketType.PAIRSocketType.PUBSocketType.PUSH のみがサポートされています。
      導入:
      6.4
    • ZeroMqMessageHandler

      public ZeroMqMessageHandler(org.zeromq.ZContext context, SupplierSE<StringSE> connectUrl, org.zeromq.SocketType socketType)
      提供されている ZContext、接続文字列サプライヤー、SocketType に基づいてインスタンスを作成します。
      パラメーター:
      context - ソケットの作成に使用する ZContext
      connectUrl - ソケットを接続する URL のサプライヤー。
      socketType - 使用する SocketTypeSocketType.PAIRSocketType.PUBSocketType.PUSH のみがサポートされています。
      導入:
      5.5.9
  • メソッドの詳細

    • setMessageMapper

      public void setMessageMapper(OutboundMessageMapper<byte[]> messageMapper)
      OutboundMessageMapper を提供して、リクエストメッセージを byte[] に変換し、ZeroMq ソケットに送信します。Message.getPayload() が ZMsg のインスタンスである場合は無視されます。
      パラメーター:
      messageMapper - 使用する OutboundMessageMapper
    • setMessageConverter

      public void setMessageConverter(MessageConverter messageConverter)
      ZeroMq ソケットに送信するためにリクエストメッセージを byte[] に変換するための MessageConvertermessageMapper の代替として)を提供します。Message.getPayload() が ZMsg のインスタンスである場合は無視されます。
      パラメーター:
      messageConverter - 使用する MessageConverter
    • setSocketConfigurer

      public void setSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> socketConfigurer)
      ConsumerSE を提供して、セキュリティなどの任意のオプションでソケットを構成します。
      パラメーター:
      socketConfigurer - ソケットオプションのコンフィギュレーター。
    • setTopic

      public void setTopic(StringSE topic)
      SocketType.PUB ソケットがサブスクリプションへのメッセージの配布に使用するトピックを指定します。サポートされている他のすべての SocketType では無視されます。
      パラメーター:
      topic - 使用するトピック。
    • setTopicExpression

      public void setTopicExpression(Expression topicExpression)
      SpEL 式を指定して、SocketType.PUB がサブスクリプションへのメッセージの配布に使用するトピックを評価します。サポートされている他のすべての SocketType では無視されます。
      パラメーター:
      topicExpression - 公開するトピックを評価する式。
    • wrapTopic

      public void wrapTopic(boolean wrapTopic)
      SocketType.PUB ソケットがサブスクリプションにメッセージを配信するために使用するトピックが、追加の空のフレームでラップされる必要があるかどうかを指定します。サポートされている他のすべての SocketType では無視されます。この属性は、デフォルトで true に設定されています。
      パラメーター:
      wrapTopic - トピックを追加の空フレームで囲む必要がある場合は true です。
      導入:
      6.2.6
    • getBoundPort

      public int getBoundPort()
      このメッセージプロデューサーがまだ開始されていないか、ソケットが接続されている場合は、ソケットがバインドされているポートを返します。バインドされていません。
      戻り値:
      ソケットまたは 0 のポート。
      導入:
      6.4
    • getComponentType

      public StringSE getComponentType()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。
      次で指定:
      インターフェース NamedComponentgetComponentType 
      オーバーライド:
      クラス MessageHandlerSupportgetComponentType 
    • onInit

      protected void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス IntegrationObjectSupportonInit 
    • start

      public void start()
      次で指定:
      インターフェース Lifecyclestart 
      次で指定:
      インターフェース ManageableLifecyclestart 
    • stop

      public void stop()
      次で指定:
      インターフェース Lifecyclestop 
      次で指定:
      インターフェース ManageableLifecyclestop 
    • isRunning

      public boolean isRunning()
      次で指定:
      インターフェース LifecycleisRunning 
      次で指定:
      インターフェース ManageableLifecycleisRunning 
    • handleMessageInternal

      protected reactor.core.publisher.Mono<VoidSE> handleMessageInternal(Message<?> message)
      次で指定:
      クラス AbstractReactiveMessageHandlerhandleMessageInternal 
    • destroy

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy 
      次で指定:
      インターフェース IntegrationManagementdestroy 
      オーバーライド:
      クラス MessageHandlerSupportdestroy