我想知道通过zeromq公开库的最佳方法是什么。说,我在一台机器上安装了一个机器学习库(mll),我在另一台机器上运行了一个zeromq代理。现在,如果我有一个需要在mll中调用函数的zeromq客户端,它怎么能通过代理来实现呢。
我想知道我需要采取的步骤,以便以通用方式为图书馆工作。
答案 0 :(得分:0)
基本上你需要一个“监听器”从ZMQ中获取数据并将其提供给你的机器学习后端代码,然后将结果发送回请求者。
有很多设计选择,例如在客户端和服务器之间用于序列化数据的格式(JSON?YAML?Pickle?Thrift?...),以及如何编码请求和请求选项。但考虑到所有事情,这是一个非常简单的ZMQ用法。
当您需要功能更丰富,更完整,更强大等设计时,问题就出现了 - 例如多线程或多进程服务器,多机可扩展性,安全用户/请求身份验证和授权,作业报告等和仪表板,或工作检查点。所有这些“额外”都是常见的“网络作业调度程序”或“(企业)消息代理”功能,这些功能往往与Celery或RQ等软件包开箱即用。
如果您不想使用完整的“消息代理中间件”路径,您可以首先检查其他人的基于ZMQ的轻量级职务代理的设计,例如this one from Jeff Knupp。