我需要在跨平台应用程序套件上做出架构决策。我基本上想尝试解耦模块的新方法,并使用 ZeroMQ 实现网络 I/O,因为我知道它是进程内、进程间和网络应用程序的消息队列。但我不确定它如何适合我的情况。
如果有人能在我下周阅读他们那本有趣的书之前澄清几件事,我将不胜感激:http://zguide.zeromq.org/page:all
我已经检查了这些问题,但没有得到我的答案:
我的要求:
老办法
至于桌面后端(控制台应用程序),几年前,我的第一步是基于观察者/命令模式编写多线程架构:
然后,我需要实现线程安全的消息队列,并且不可避免地要在调度程序和一堆命令类之间进行耦合,这些命令类本质上只是这些执行器行为的html" target="_blank">函数包装。用C语言,这将是一大堆样板代码。
验证的新方法
但现在是2019年,所以我希望减少手写代码,并尝试一些新的东西。对于ZeroMQ,我想看看我的期望是否成立。我很想。。。
我的期望合理吗?
如果刚接触 ZeroMQ 域,请随时查看此内容,最好先了解一下“不到五秒的 ZeroMQ 原则”,然后再深入了解更多详细信息
上面提到的一篇文章提出了一个假设,即:
ZeroMQ基于这样的假设,即存在一个而(1)…
循环,它被插入其中
是完全错误的,误导了任何架构(Architecture)规划/评估工作。
ZeroMQ是一个功能丰富的信令/消息传递元平面,它旨在为应用程序级代码提供大量服务,可以在低级上享受智能、复杂、高效处理的信令/消息传递基础设施的轻量级重用,无论是用于进程内、进程间和节点间多代理分布式方式,都使用许多已经可用的传输级协议来实现这一目标:
{inproc://|ipc://|tipc://|vmci://|tcp://|pgm://|epgm://|udp://}
我的要求:
c
ZeroMQ:[PASSED]Windows和macOS上的桌面主机,作为分离的控制台后端和GUI前端;后端必须用C编写;c
ZeroMQ:[PASSED]iOS和Android上的移动来宾,后端用C编写;tcp
ZeroMQ:[PASSED]桌面使用TCP与移动通信;我很乐意...
我的期望合理吗?
井:
[通过]队列:内置ZeroMQ
[NICEHAVE]调度程序:为任何通用分布式多代理范围的生态系统自动生成(但在不久的将来很难预料)
[已通过] : 简化的网络 I/O - ZeroMQ 提供了所有抽象的传输类相关服务,这些服务隐藏在信令/消息传递元平面的透明使用中,
因此应用程序代码喜欢“只是”{ .send() | .poll() | .recv() }
[PASSED]:将GUI与ParcPlace-Systems开创的MVC架构的任何其他部分分离。自 ZeroMQ v2.11 以来,使用它作为通过 TCP/IP 网络的(远)远程键盘,甚至可以集成到基于参与者的 GUI 中,例如 Tkinter-GUI 参与者可以很好地服务于这种分布式本地可视化/远程分布式控制器/远程分布式模型。如果移动终端 O/S 对本地可视化 MVC 组件引入了更复杂的约束,则应与领域专家就该特定 O/S 属性进行验证。到目前为止,ZeroMQ信令/消息传递元平面尚未被认为包含任何约束本身。
[通过]: LATENCY-ZeroMQ从一开始就被设计为提供最终的低延迟,这是必须的。鉴于它可以为高频传输生态系统提供支持,桌面/移动系统在所有访问的传输O/S处理延迟的E2E一次性累积意义上的限制要少几个数量级。
问题内容: 我通过阅读一些博客和介绍材料开始使用docker。 我的理解是docker可以将单个应用程序包装到标准化容器中。容器提供了一个沙箱,应用程序需要运行的所有必需资源,并且内部的应用程序始终位于该容器中。这意味着我可以将容器运送到任何地方(不同类型的OS甚至是云平台),并且仍然可以正确运行。 如果我的理解是正确的,那是否意味着微软可以将其办公服包装到一个容器中,并且可以在mac os或li
ASP 应用程序可在运行 Windows NT 4.0 或 Windows 95 及其更新版本的操作系统的计算机上运行。另外,可在 Macintosh 上运行 streamline 版本的 ASP。因为在 Windows 95 和 Macintosh 上的 Personal Web Server 是为个人发布设计的,所以在对 ASP 应用的支持方面有些不同。您可以在 Windows NT Work
我有两个应用程序在同一台服务器上运行。一个是c应用程序,另一个是运行在vertx上的java web服务器。Web服务器希望向C部件发送请求并获得响应。ZeroMq似乎是一个执行进程间通信的解决方案。它是通往vertx的桥梁(https://github.com/dano/vertx-zeromq),但没有那么好的记录。 我想知道我认为这座桥能做些什么: C zeroMq socket type是
问题内容: 在回答这个关于在CGFloat上为所有架构进行编译的早期问题时,我提出了以下解决方案: (针对那些已经感到困惑的人的背景信息:对于32位架构,CGFloat是“ float”类型,对于64位架构(即,编译目标),CGFloat是“ double”,这就是为什么仅使用其中之一或不使用它的原因编译,具体取决于目标体系结构。请注意,您似乎无法用于条件编译,只能使用体系结构标志…) 现在,有关
我有一个关于用户访问另一个用户创建的数据的问题。下面我将用一个案例来解释。 我使用的是Realm移动平台。该应用程序使用Realm Auth允许用户通过电子邮件、谷歌和facebook帐户进行注册。此时此刻,我正在使用以下URL作为域:。。。“:9080/~/name”。 我将尝试用下面的例子来解释我想要实现的目标。想象一下我有UserA和UserB。一旦用户在应用程序中注册(使用SyncUser
在学习这本书的过程中,你已经掌握了很多关于 Git 的命令。虽然这些是在学习过程中不可缺少的,但是版本控制的核心并不是让你学习所有的命令和参数。 当你掌握一些基本的概念,再加上一个带有用户图形界面的应用程序的帮助,就可以让你的日常工作变得更加简单。一个最大的好处就是它会为你提供了一个可视化的用户操作界面。 在桌面应用程序中,很多任务使用起来会更加容易和更方便。并且你也不需要记住那几十个繁琐的 Gi