0MQ宗旨
先来看《Implementing distributed applications with 0MQ and some other bad guys...》。用0MQ去实现分布应用,或者用其它坏东西。
我们希望应用的伸缩性以及复杂度的关系,分布应用从单线程到多线程到多节点,复杂度是平滑收敛的。得实际上是指数增长,多节点下极复杂。
0MQ意味 0中间人(Message broker),0迟延(尽可能),0管理(服务),0成本,0浪费。
网上尤其是百度搜出一堆国内的贴,欢喜将0MQ和其它Message Broker产品混在一起比较,并评价适应性最差没有他们想要的功能。因为0MQ压根就不是Message Broker,并且明确宗旨是Zero Broker和Zero administration,你要的功能请自行实现。0MQ在软件构架中不是扮演Broker的角色。
更高层次的sokcet。为什么不是Message Broker,又要强调Message Queue,首先Queue在异步中需要。然后Message Queue是为了设计高并发模型,erlang中进程(纤程)之间不共享数据,以消息形式进行通讯。0MQ旨在定义高层次上的通讯模型,线程间,进程间,节点间都是以同一种协议进行消息(队列)通讯。目标成为linux内核一部分。其中0MQ内部使用mailbox进行(io)线程间,内部对象间的消息通讯。详细请参看前面的文章《0MQ底层队列设计》。
当然地,0MQ就必须是跨平台的,多(编程)语言支持的,并且是开源的。
后面就是简单展示0MQ如何支持基本的消息模型(Message Patterns).
0MQ之于sockets好比python之于c++。
https://www.slideshare.net/fcrippa/europycon2011-implementing-distributed-application-using-zeromq
0MQ宗旨的更多相关文章
- ZeroMQ接口函数之 :zmq - 0MQ 轻量级消息传输内核
官方网址:http://api.zeromq.org/4-0:zmq zmq(7) 0MQ Manual - 0MQ/3.2.5 Name zmq – ØMQ 轻量级消息传输内核 Synopsis # ...
- 0mq 入门 (转)
最近做后台发现很多地方需要队列,我用东西一般有两个要求: 1) 够傻够简单. 2) 有源码,能看又能改. 最后相中了0mq,下面介绍如何安装和写个简单的例子.一. linux平台: ...
- DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端
最近头脑里面一直在想怎么样让能让大家基于DIOCP上写出稳定的服务端程序.很多朋友问我,你DIOCP稳定吗,我可以用他来做三层服务器吗? 当时我是这样回答的,我只能保证DIOCP底层通信的稳定. 说实 ...
- 0MQ是会阻塞的,不要字面上看到队列就等同非阻塞。
如果你是希望通过0MQ来做缓冲队列,非阻塞的效果,那你就必须清楚 0MQ Socket是会阻塞,你要搞清楚0MQ Socket与队列的关系. 官方协议文档规定了,一部分类型的 0MQ Socket为不 ...
- 0MQ 事件驱动 以及 poller
底层IO事件,以及借用socket poller的上层0MQ socket事件. 先来看用于底层和上层的两种poller. 这是用于底层io事件的poller_t,每个socket_base_t都关联 ...
- 0MQ底层队列设计
ypipe_t has a yqueue_t. pipe_t relates two ypipe(s).pipe_t就是0MQ框架内使用的底层队列. yqueue_t的设计目的. yqueue_t 的 ...
- 0MQ文档导读
1. 先结合RabbitMQ Tutorials,弄清0MQ socket的各种类型. 1.1. 0MQ PAIR 对应 RabbitMQ Tutorials的 "Hello world&q ...
- Tript协议|伯尔尼公约|著作权|立法宗旨|自动保护|著作权集体管理|
知识产权 国际条约: Tript协议是国际性公约,<与贸易有关的知识产权协定>(英文:Agreement on Trade-Related Aspects of Intellectual ...
- UI设计--->全心全意为人民服务的宗旨---->注重客户体验--->软件持久的生命力
UI即User Interface(用户界面)的简称.UI设计是指对软件的人机交互.操作逻辑.界面美观的整体设计.好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适简单.自由,充分体现 ...
随机推荐
- docker-以安装软件的方式介绍docker部分命令的使用
[root@ipha-dev71- docker]# docker search python # 搜索镜像 [root@ipha-dev71- docker]# docker pull centos ...
- C#详解类型,变量与对象
本节内容: 1.什么是类型(Type) 2.类型在C#语言中的作用 3.C#语言的类型系统 4.变量.对象与内存 1.什么是类型(type) 类型又名数据类型(Date Type),是数据在内存中存储 ...
- 从零开始把项目发布到Nuget仓库中心
从零开始把项目发布到Nuget仓库中心 我的项目地址 https://github.com/Ants-double/dasuan ### 前期准备 下载并注册nuget帐号 下载地址 https:// ...
- Mysql数据库(六)视图
一.视图是由数据库中的一个表或多个表导出的虚拟表.其作用是方便用户对数据的操作. 1.视图的概念 2.视图的作用 二.创建视图 创建视图是指在已经存在的数据表上建立视图.视图可以建立在一张表中,也可以 ...
- 【spock】单测竟然可以如此丝滑
0. 为什么人人都讨厌写单测 在之前的关于swagger文章里提到过,程序员最讨厌的两件事,一件是别人不写文档,另一件就是自己写文档.这里如果把文档换成单元测试也同样成立. 每个开发人员都明白单元测试 ...
- MySQL的基础与安装
一.数据库概述 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 2.数据库的主要特点: ⑴ 实现数据共享 数据共享包含 ...
- 转:NFS原理详解
原文:http://atong.blog.51cto.com/2393905/1343950 一.NFS介绍 1)什么是NFS 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录.NFS ...
- AndroidOS体系结构
首先上图一张 对照着图,我们再来看Android 系统的体系结构就爽多了.我们从底层向上进行分析. 一.Linux 内核层 Linux Kernel 基于linux2.6.其核心系统服务如安全性.内存 ...
- 识别手写数字增强版100% - pytorch从入门到入道(一)
手写数字识别,神经网络领域的“hello world”例子,通过pytorch一步步构建,通过训练与调整,达到“100%”准确率 1.快速开始 1.1 定义神经网络类,继承torch.nn.Modul ...
- setAccessible()方法
在java代码中,我们经常使用private来控制类中成员变量的访问权限,在类的外边我们一般使用get方法获取私有成员变量的值,但是如果类中没有get方法,但我们又想获取该类私有成员变量的值,该怎么办 ...