问题标签 [nameko]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5871 浏览

python - 我怎样才能结合烧瓶和nameko?

如何结合 Flask Web 应用程序和 Nameko 微服务?

让我给你一些背景。我有基于烧瓶(http://flask.pocoo.org)的网络应用程序。此应用程序可以执行长时间(5-10 分钟)的任务。我希望能够在该应用程序仍在运行时编写附加模块并将其附加到该应用程序。如果我在开发中停止应用程序是可以的,但我不能在生产中停止它。

我对 Nameko ( https://nameko.readthedocs.org ) 没有任何经验,这是解决我问题的最佳方法吗?如果是这样 - 我可以混合使用 Flask 应用程序和 Nameko 微服务吗?

0 投票
1 回答
700 浏览

nameko - 如何更改nameko中的监听端口?

有人用过nameko吗?

在其文档中,我找不到任何有关更改侦听端口的信息:http: //nameko.readthedocs.io/en/stable/built_in_extensions.html#http-get-post

这可能吗?

0 投票
1 回答
21202 浏览

python - 从另一个容器中的服务连接到 rabbitmq docker 容器

我做了很多搜索,但我无法解决这个问题。

我有一个通过以下命令运行的基本 Rabbitmq 容器:

docker run -d --hostname rabbitmqhost --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3-management

我正在使用nameko创建一个连接到该容器的微服务。这是一个基本的微服务模块main.py

该服务运行并使用以下命令从我的主机连接到 rabbitmq:

nameko run main --broker amqp://guest:guest@localhost

我想将服务放入 Docker 容器(称为service_one),但是当我这样做并运行之前的 nameko 命令时,socket.error: [Errno 111] ECONNREFUSED无论我如何尝试链接两个容器,我都会得到。

什么是正确的方法?目的是将每个服务都放在一个容器中,所有服务都通过rabbit相互交谈。谢谢。

0 投票
1 回答
592 浏览

python - eventlet.monkey_patch() 在 docker 容器中破坏 ipdb

所以我正在使用微服务 python 包nameko,它使用eventlet并调用eventlet.monkey_patch()导入来运行服务。

我已经破译,正是这段代码阻止了任何调试尝试ipdb。控制台显示在终端中,ipdb但我无法输入任何内容,必须关闭整个终端会话才能退出进程。

卡住的控制台看起来像: 在此处输入图像描述

如何使用ipdb此功能?

编辑:这个问题似乎发生在 docker 容器中。

0 投票
1 回答
496 浏览

python - Python Nameko 多项目(开发)

我们在项目设置中使用 Flask 和 nameko 和 RabbitMQ。我们将它用于多个项目(我们已经在 2 个月前开始),并且我们在开发时遇到了服务名称的问题。

我们有两个项目 - A 和 B,它们都有 UserService(具有不同的功能):

问题是当我们需要在同一台机器上运行两个项目时,一个用户服务不起作用。准确地说,两者都在工作,但所有请求都由其中一个处理,并且由于它们的结构不同,我们得到了错误。

第一个想法是在服务名称中添加项目前缀,例如A_user_service,但这确实是丑陋的解决方案(rpc部分我们需要调用类似的东西rpc.A_user_service,这很糟糕)。nameko 项目是否有任何类型的命名空间?我们尝试将rpc_excange配置中的参数设置为每个项目不同,但这并不能解决我们遇到的问题。

0 投票
1 回答
232 浏览

python-3.x - nameko可以使用python3吗?

nameko 运行 --config ./foobar.yaml my_app

上面的行默认使用 python2 运行 my_app。我可以将其更改为 python3 吗?文档没有显示此选项,但考虑到您使用 pip3 获得 nameko,这听起来很合理。

0 投票
1 回答
1422 浏览

python - 如何在 nameko 中使用服务运行器?

正如nameko的文档中所写,我运行了这个示例并且它可以工作:

表明:

但是当我在 service_a 中添加一个 rpc 方法,并在配置中添加一个 AMQP_URI 时,它不起作用,看起来它没有连接到 RabbitMQ。我应该怎么办?

当我按 Ctrl+C 时:

0 投票
0 回答
684 浏览

python - Python:带有json序列化的奇怪枚举子类行为

我在尝试使用 Nameko 和 rabbitmq 序列化一些数据以作为参数发送到远程过程到微服务时遇到了一种奇怪的行为:

在名为 的目录下将问题简化为 3 个文件project

serializer.py,自定义 json 编码/解码对象

service.py,基本的微服务

在启动 rabbitMQ docker 实例和 nameko 运行服务后,请按照以下步骤试用Nameko shell :

  • $ docker run -d --hostname rabbit --name my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
  • $ nameko run project.service --broker amqp://guest:guest@localhost
  • $ nameko shell --broker amqp://guest:guest@localhost

这是测试后的shell输出:

似乎在远程过程上反序列化后type(enum_type) == type(CustomEnum)给出了False,在 nameko shell 中尝试它时,它完美地序列化和反序列化 enum 子类类型。这可能与nameko本身对已序列化数据的序列化有关吗?我知道我应该将自定义序列化程序注册到,kombu.serialization.register但我坚持这一点,我想知道为什么会发生这种情况。

0 投票
1 回答
256 浏览

python - Scrapy Nameko DependencyProvider 未爬取页面

我正在使用 scrapy 创建一个示例网络爬虫作为 Nameko 依赖提供程序,但它没有爬取任何页面。下面是代码

这是日志。



在日志中我们可以看到它没有爬取单个页面,预计会爬取一个页面。

然而,如果我创建一个常规CrawlerRunner并抓取页面,我会得到预期的结果{'heading': 'Example Domain'}。下面是代码:

几天来一直在努力解决这个问题,我无法弄清楚何时使用scrapy crawler作为nameko依赖提供程序无法抓取页面。请纠正我哪里出错了。

0 投票
1 回答
414 浏览

windows - 连接被拒绝:nameko 的 AMQP 服务器

场景:我们正在尝试通过 AMQP 服务器使用 nameko 连接到 RabbitMQ。下面是回溯,

我们用来运行的命令,

nameko.yml文件包含以下配置,

操作系统: Windows 10(Python 代码)Linux(RabbitMQ 服务器)

请帮助我们解决这个问题。