标签: nsq

Docker容器上的分布式系统NSQ拓扑模式

是否可以使用Docker复制" 拓扑模式 " 的最后一个示例中描述的"NSQ实时分布式消息传递平台" ?有没有人有dockerfile或图像示例?

deployment go lxc docker nsq

7
推荐指数
1
解决办法
1118
查看次数

如何将数据库与微服务(和新服务)同步?

我正在开发一个具有微服务架构的网站,每个服务都拥有一个数据库.数据库存储微服务所需的数据.


Post,Video服务需要用户信息,所以两个服务都订阅了NEW_USER_EVENT.

NEW_USER_EVENT时候,那里已经注册的新用户将被触发.

在此输入图像描述

一旦服务收到NEW_USER_EVENT,他们就将传入的用户信息放到他们自己的每个数据库中.所以他们可以在不询问User服务的情况下做事.

在此输入图像描述

到现在为止还挺好.但问题出现了:

  • 如果我要创建新服务怎么办?如何获取注册用户信息并将其置于新服务中?

也许我可以从现有服务中获取信息.但事件由消息队列(NSQ)推送.

如果我要从其中一个微服务中复制数据,我如何确定哪个服务具有最新的用户信息?(因为有些服务没有收到最新的活动)

在此输入图像描述


阅读更多:

关于微服务最难的部分:您的数据

微服务简介,第4部分:依赖关系和数据共享

mysql database message-queue nsq microservices

6
推荐指数
1
解决办法
1481
查看次数

Golang 和 NSQ(bitly)

这里有点菜鸟,但我似乎无法在任何地方找到任何示例或帮助。我有一个 NSQ 的工作实例,可以注册任务、消费者等。不幸的是我最初没有设置系统。我想做的是弄清楚如何激活 NSQ 提供的一些内置命令行工具( nsq_to_file 、 nsq_tail 等)。我找到了有关如何解雇它们的文档,但不知道从哪里解雇它们。

当我尝试时,nsq_tail --channel=MyTestChannel --topic=test --lookupd-http-address=127.0.0.1:4161我得到 nsq_tail 命令未找到。我唯一知道的另一件事是,在我们的环境中 NSQ 由 docker 管理。任何帮助/朝正确方向推动都会很棒。谢谢!

go nsq

5
推荐指数
1
解决办法
1424
查看次数

NSQ 消息的最大大小是多少?

我正在针对特定项目使用 NSQ ( http://nsq.io/ ) 进行评估。这个想法是建立一个数据管道,其中每个步骤都是一个作业,并且状态理想地位于消息正文中。

这让我开始思考潜在的最大消息大小。我找不到有关该主题的任何文档。可以是任意尺寸吗?我想如果消息太大而无法放入内存,则会影响性能。

nsq

5
推荐指数
2
解决办法
3025
查看次数

nsq 无法通过连接到 nsqlookupd 来消费消息

我尝试使用 docker-compose 来运行 nsq,docker-compose.yml如下:

version: '3'
services:
  nsqlookupd:
    image: nsqio/nsq
    command: /nsqlookupd
    ports:
      - "4160:4160"
      - "4161:4161"
  nsqd:
    image: nsqio/nsq
    command: /nsqd --lookupd-tcp-address=nsqlookupd:4160
    depends_on:
      - nsqlookupd
    ports:
      - "4150:4150"
      - "4151:4151"
  nsqadmin:
    image: nsqio/nsq
    command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
    depends_on:
      - nsqlookupd
    ports:
      - "4171:4171"
Run Code Online (Sandbox Code Playgroud)

我使用的是nsq客户端go-nsq来生成和消费消息,消息可以通过直接连接nsqd来消费,但是不能通过连接nsqlookupd来消费:

consumer.ConnectToNSQD("127.0.0.1:4150")  # success (output the consumed messages)

consumer.ConnectToNSQLookupd("127.0.0.1:4161")   # failed

2018/01/31 16:39:12 ERR    1 [test/liu] (967fcc2c88ae:4150) error connecting to nsqd - dial tcp: i/o timeout
Run Code Online (Sandbox Code Playgroud)

我可以连接到 nsqlookup 实例:

?  test_nsq curl http://127.0.0.1:4161/ping …
Run Code Online (Sandbox Code Playgroud)

go docker nsq go-nsq docker-compose

2
推荐指数
1
解决办法
2145
查看次数

Kubernetes 获取端点

我有一组提供 nsqlookupd 服务的 pod。现在我需要每个 nsqd 容器同时拥有一个要连接的 nsqlookupd 服务器列表(而服务每次都指向不同的)。我得到的类似的东西

kubectl describe service nsqlookupd
...
Endpoints: ....
Run Code Online (Sandbox Code Playgroud)

但我想将它放在我的部署定义中的一个变量中,或者以某种方式来自 nsqd 容器中

nsq kubernetes

1
推荐指数
1
解决办法
5118
查看次数