【问题标题】:How to get size of NATS Streaming Queue?如何获取 NATS 流队列的大小?
【发布时间】:2019-07-29 17:47:55
【问题描述】:

背景:我将使用 OpenFaaS(在 Kubernetes 中运行)进行一些实验,其中我将调用几个异步执行请求。 OpenFaaS 使用 NATS Streaming 将这些请求排队以执行异步函数。

我需要一种方法来确定这个 NATS 流队列的大小,这样我就可以知道队列中有多少项目。是否有获取 NATS 流队列中项目大小或数量的命令?我搜索了 Google 和 NATS 文档,没有发现任何用处。

我确实从here 中找到了显示队列日志的命令kubectl logs deployment/queue-worker -n openfaas;但是,这并不是我想要的(我想要队列中剩余的项目数,而不是队列的完整日志)。

【问题讨论】:

    标签: kubernetes nats-streaming-server openfaas


    【解决方案1】:

    您可以在 NATS 中启用一个monitoring endpoint 来获取多个通用endpoints 来查询哪些可以下到特定频道。

    然后,您需要在 Kubernetes 中为该端点公开一个服务以供外部访问,如果您想更好地控制哪些端点及其公开方式,可能通过 Ingress。

    查看nats-streaming-ft helm 图表中的模板。

    将监控端口添加到您的容器spec

    spec:
      containers:
      - name: nats-streaming
        args:
          - /opt/nats-streaming-server
          - --http_port=8222
    

    并将所选监控端口添加到Service 中的ports 列表中。

    apiVersion: v1
    kind: Service
    metadata:
      name: nats-monitoring
      labels:
        app:  nats
    spec:
      selector:
        app:  nats
      ports:
      - name: monitoring
        protocol: TCP
        port: 8222
    

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2016-08-28
      • 2018-08-19
      • 1970-01-01
      相关资源
      最近更新 更多