クラス ZeroMqProxy

java.lang.ObjectSE
org.springframework.integration.zeromq.ZeroMqProxy
実装されたすべてのインターフェース:
AwareBeanNameAwareDisposableBeanInitializingBeanLifecyclePhasedSmartLifecycle

public class ZeroMqProxy extends ObjectSE implements InitializingBean, SmartLifecycle, BeanNameAware, DisposableBean
このクラスは、ZeroMQ プロキシを構成および管理するためのロジックをカプセル化します。提供されたポートまたはランダムに選択されたポートのいずれかを使用して、使用可能なすべてのネットワークインターフェース上の TCP を介してフロントエンドソケットとバックエンドソケットをバインドします。

ZeroMqProxy.Type は、このプロキシとバインドする ZeroMQ ソケットのペアを指定して、ZeroMQ 中間体の可能なパターンを実装します。デフォルトは @link ZeroMqProxy.Type.PULL_PUSH です。

制御ソケットは、"inproc://" + beanName + ".control" アドレスでのスレッド間トランスポートを備えた SocketType.PAIR として公開されます。getControlAddress() から取得できます。ZMQ.PROXY_TERMINATEZMQ.PROXY_PAUSE、/ または ZMQ.PROXY_RESUME コマンドを送信するには、SocketType.PAIR ソケットから同じアプリケーションで使用する必要があります。

何らかの理由でプロキシを起動できない場合は、エラーメッセージが記録され、このコンポーネントは起動されていない状態のままになります。

exposeCaptureSocket オプションを使用すると、追加のキャプチャーデータソケットが SocketType.PUB としてスレッド間トランスポートにバインドされます。特定のトピックの選択はないため、このソケットのすべてのサブスクライバーは、プレーンな ZMQ.SUBSCRIPTION_ALL でサブスクライブする必要があります。このソケットのアドレスは "inproc://" + beanName + ".capture" です。

導入:
5.4
作成者:
Artem Bilan, Christian Tzolov
関連事項:
  • ZMQ.proxy(ZMQ.Socket, ZMQ.Socket, ZMQ.Socket)
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static enum
  • フィールドのサマリー

    インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド

    DEFAULT_PHASE
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
    ZeroMqProxy(org.zeromq.ZContext context)
    提供されている ZContext および ZeroMqProxy.Type.PULL_PUSH をデフォルトモードとして使用して、ZeroMqProxy インスタンスを作成します。
    ZeroMqProxy(org.zeromq.ZContext context, ZeroMqProxy.Type type)
    提供された ZContext および ZeroMqProxy.Type に基づいて ZeroMqProxy インスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    void
    int
    このプロキシがまだ開始されていない場合は、バックエンドソケットがバインドされているポートまたは null を返します。
    このプロキシがまだ開始されていない場合、または captureAddress が false の場合は、inproc キャプチャーソケットがバインドされているアドレスまたは null を返します。
    このプロキシがまだ開始されていない場合は、inproc 制御ソケットがバインドされているアドレスまたは null を返します。
    int
    フロントエンドソケットがバインドされているポートを返すか、このプロキシがまだ開始されていない場合は 0 を返します。
    int
    boolean
    boolean
    void
    setAutoStartup(boolean autoStartup)
    void
    setBackendPort(int backendPort)
    プロキシのバックエンドソケットに固定ポートを指定します。
    void
    setBackendSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> backendSocketConfigurer)
    ConsumerSE を提供して、セキュリティなどの任意のオプションを使用してプロキシバックエンドソケットを構成します。
    void
    void
    setExposeCaptureSocket(boolean exposeCaptureSocket)
    プロキシデータのキャプチャーソケットをバインドして公開するかどうか。
    void
    setFrontendPort(int frontendPort)
    プロキシのフロントエンドソケットに固定ポートを指定します。
    void
    setFrontendSocketConfigurer(ConsumerSE<org.zeromq.ZMQ.Socket> frontendSocketConfigurer)
    ConsumerSE を提供して、セキュリティなどの任意のオプションでプロキシフロントエンドソケットを構成します。
    void
    setPhase(int phase)
    void
    ZeroMQ プロキシループを実行するようにエグゼキュータを設定します。
    void
    void

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド

    stop
  • コンストラクターの詳細

    • ZeroMqProxy

      public ZeroMqProxy(org.zeromq.ZContext context)
      提供されている ZContext および ZeroMqProxy.Type.PULL_PUSH をデフォルトモードとして使用して、ZeroMqProxy インスタンスを作成します。
      パラメーター:
      context - 使用する ZContext 
    • ZeroMqProxy

      public ZeroMqProxy(org.zeromq.ZContext context, ZeroMqProxy.Type type)
      提供された ZContext および ZeroMqProxy.Type に基づいて ZeroMqProxy インスタンスを作成します。
      パラメーター:
      context - 使用する ZContext 
      type - 使用する ZeroMqProxy.Type
  • メソッドの詳細

    • setProxyExecutor

      public void setProxyExecutor(ExecutorSE proxyExecutor)
      ZeroMQ プロキシループを実行するようにエグゼキュータを構成します。スレッドは、ZeroMQ プロキシループが終了するまで保持されます。デフォルトでは、内部 Executors.newSingleThreadExecutor() インスタンスが使用されます。
      パラメーター:
      proxyExecutor - ZeroMQ プロキシループに使用する ExecutorSE
    • setFrontendPort

      public void setFrontendPort(int frontendPort)
      プロキシのフロントエンドソケットに固定ポートを指定します。
      パラメーター:
      frontendPort - 使用するポート。0 より大きくなければなりません
    • setBackendPort

      public void setBackendPort(int backendPort)
      プロキシのバックエンドソケットに固定ポートを指定します。
      パラメーター:
      backendPort - 使用するポート。0 より大きくなければなりません
    • setFrontendSocketConfigurer

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

      public void setBackendSocketConfigurer(@Nullable ConsumerSE<org.zeromq.ZMQ.Socket> backendSocketConfigurer)
      ConsumerSE を提供して、セキュリティなどの任意のオプションを使用してプロキシバックエンドソケットを構成します。
      パラメーター:
      backendSocketConfigurer - バックエンドソケットのコンフィギュレータ
    • setExposeCaptureSocket

      public void setExposeCaptureSocket(boolean exposeCaptureSocket)
      プロキシデータのキャプチャーソケットをバインドして公開するかどうか。
      パラメーター:
      exposeCaptureSocket - プロキシのキャプチャーソケットをバインドする場合は true
    • setBeanName

      public void setBeanName(StringSE beanName)
      次で指定:
      インターフェース BeanNameAwaresetBeanName 
    • setAutoStartup

      public void setAutoStartup(boolean autoStartup)
    • setPhase

      public void setPhase(int phase)
    • getType

      public ZeroMqProxy.Type getType()
    • getFrontendPort

      public int getFrontendPort()
      フロントエンドソケットがバインドされているポートを返すか、このプロキシがまだ開始されていない場合は 0 を返します。
      戻り値:
      フロントエンドソケットのポートまたは 0
    • getBackendPort

      public int getBackendPort()
      このプロキシがまだ開始されていない場合は、バックエンドソケットがバインドされているポートまたは null を返します。
      戻り値:
      バックエンドソケットのポートまたは 0
    • getControlAddress

      @Nullable public StringSE getControlAddress()
      このプロキシがまだ開始されていない場合は、inproc 制御ソケットがバインドされているアドレスまたは null を返します。
      戻り値:
      制御ソケットのアドレスまたは null
    • getCaptureAddress

      @Nullable public StringSE getCaptureAddress()
      このプロキシがまだ開始されていない場合、または captureAddress が false の場合は、inproc キャプチャーソケットがバインドされているアドレスまたは null を返します。
      戻り値:
      キャプチャーソケットまたは null のアドレス
    • isAutoStartup

      public boolean isAutoStartup()
      次で指定:
      インターフェース SmartLifecycleisAutoStartup 
    • getPhase

      public int getPhase()
      次で指定:
      インターフェース PhasedgetPhase 
      次で指定:
      インターフェース SmartLifecyclegetPhase 
    • afterPropertiesSet

      public void afterPropertiesSet()
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • start

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

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

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

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy