ZMQ是一个比较轻量级的消息通信组件,引用官方的说法: “ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ 的明确目标是“成为标准网络协议栈的一部分,之后进入 Linux 内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD 套接字之上的一层封装。ZMQ 让编写高性能网络应用程序极为简单和有趣。”

     ZMQ组件广泛适用于.NET开发领域,其原生版本采用C语言开发,目前已经提供了包括C语言、C++、安卓、IOS、Python、Nodejs等众多语言的版本,而.NET版本实际上是基于C++的移植版本,事实上.NET版本也有多个版本,而目前使用情况较为良好的版本为NETMQ,可以通过Nuget下载并使用,添加到项目中,会新增两个类库,一个为NetMQ.dll,另外一个为SyncIO.dll。暂时未发现.NET Core的移植版本,期待社区或外网的高手能够将其移植成.NET CORE,为社区提供助力。

   目前我们公司已使用ZMQ作为核心通信组件,在后端、客户端等众多应用中使用。基于ZMQ的资料目前非常多,包括官方入门指南等,都可以作为大家入门的重要依据,除此之外,外网也有非常广泛的知识体系,不过基本上都是英语版本,因此,特意编写这个系列,其主要目的是将各类资料进行统一汇总,方便自己的同时,也期待能为其他感兴趣的朋友提供助力。

     总目录的第一部分主要为官方入门指南的详细说明,而第二部分为外网相关资料、以及ZMQ高级知识的汇编,如有考虑不周,或表述不严谨之处,还望大家指出。

  1. 基本概念
    1. 接收和发送
      1. 接收
      2. 发送
      3. 深度阅读
    2. 消息
      1. 消息结构
      2. 创建multipart消息
      3. 读取multipart消息
      4. 完整实例
    3. 传输
      1. 传输协议
      2. TCP
      3. Inproc(进程通信管道)
      4. PGM(实际通用多播)
    4. 清除连接状态
      1. 清除
      2. 为什么需要清除
      3. 延迟关闭参数(Linger)
      4. 如何清除
      5. 测试
  2. 常见组件
    1. Poller轮询
      1. 轮询对象
      2. 应用目标1:提高效率
      3. 应用目标2:数据正确性校验
      4. 示例代码:接收消息
      5. 示例代码:发送消息
      6. 计时器
      7. 新增和移除socket对象和计时器对象
      8. 处理轮询
      9. 复杂示例
      10. 性能
      11. 深度阅读
    2. Actor行动者模型
      1. NetMQ行动者模型
      2. 什么是行动者模型
      3. 多线程数据共享
      4. 行动者模型
      5. 行动者模型示例
    3. Beacon灯塔对象
      1. 灯塔对象
      2. 示例:实现总线
      3. 深度阅读
    4. Timer计时器
      1. 计时器
    5. Queue队列
      1. 队列
    6. Proactor前摄器模型
      1. 前摄器
  3. 常见的几种模式:
    1. Request/Response 请求响应模式
      1. Request/Response说明
      2. 怎么用?
      3. 请求响应-一种阻塞的通信方式
    2. Pub/Sub推送订阅模式
      1. 推送和订阅
      2. 订阅的主题Topics
      3. 订阅顺序
      4. 示例
      5. 其他注意事项
      6. 高缓冲池High water mark
      7. 慢速订阅者Slow subscribers
      8. 后进订阅者Late joining subscribers
    3. Push/Pull 推拉模式
      1. 推送和拉取
      2. 进气门对象-Ventilator
      3. 工作者对象-Worker
      4. Sink对象
      5. 示例
    4. Router-Dealer 路由-点对点模式
      1. 路由和点对点
      2. 路由套接字
      3. 点对点套接字
      4. 示例
    5. XSub-XPub 超级订阅分发模式
      1. 超级订阅者/发布者
      2. 示例
2、高级模式:

 

基于.NET框架的消息通信组件ZMQ资料汇编-总目录的更多相关文章

  1. ZeroMQ——一个轻量级的消息通信组件

    ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关 ...

  2. ZeroMQ——一个轻量级的消息通信组件 C#

    ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件" ...

  3. 过年了,基于Vue做一个消息通知组件

    前言 今天除夕,在这里祝大家新年快乐!!!今天在这个特别的日子里我们做一个消息通知组件,好,我们开始行动起来吧!!!项目一览 效果很简单,就是这种的小卡片似的效果. 我们先开始写UI页面,可自定义消息 ...

  4. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录

    ABP相关岗位招聘:给热爱.NET新技术和ABP框架的朋友带来一个高薪的工作机会 ABP交流会录像视频:ABP架构设计交流群-7月18日上海线下交流会的内容分享(有高清录像视频的链接) 代码自动生成: ...

  5. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录(转)

    出处:http://www.cnblogs.com/mienreal/p/4528470.html ABP相关岗位招聘:给热爱.NET新技术和ABP框架的朋友带来一个高薪的工作机会 ABP交流会录像视 ...

  6. Asp.net 面向接口可扩展框架之消息队列组件

    消息队列对大多数人应该比较陌生.但是要提到MQ听说过的人会多很多.MQ就是英文单词"Message queue"的缩写,翻译成中文就是消息队列(我英语差,翻译错了请告知). PS: ...

  7. C++对象间通信组件,让C++对象“无障碍交流”

    介绍 这是很久之前的一个项目了,最近刚好有些时间,就来总结一下吧! 推荐初步熟悉项目后阅读本文: https://gitee.com/smalldyy/easy-msg-cpp 从何而来 这要从我从事 ...

  8. 基于scrapy框架输入关键字爬取有关贴吧帖子

    基于scrapy框架输入关键字爬取有关贴吧帖子 站点分析 首先进入一个贴吧,要想达到输入关键词爬取爬取指定贴吧,必然需要利用搜索引擎 点进看到有四种搜索方式,分别试一次,观察url变化 我们得知: 搜 ...

  9. 分享一个Linux C++消息通信框架TCPSHM

    由于本人从事行业关系,Linux环境下的低延迟通信是我关注的技术之一.要达到极端的低延迟,当然同机器内IPC比网络通信快,而Linux IPC方式中无疑是共享内存延迟最低.不过相对于TCP这种通用的通 ...

随机推荐

  1. Linux花生壳使用篇

    1. 下载花生壳     2. 找到Linux版本的进行下载       3.安装,Linux版本的新版本是采用SN码的形式     4. 这个是花生壳的启动命令相关的     注释:如果有使用之前的 ...

  2. python基础之Day18

    一.序列化概念 什么是序列化? 内存中的数据结构转成中间格式(json(所有编程语言通用)和pickle)存储到硬盘或基于网络状态 反序列化: 硬盘网络传来的数据格式转换成内存的数据结构 为什么 1. ...

  3. [ES]elasticsearch章5 ES的分词(二)

    Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将 ...

  4. vue中v-for的使用

    本人正在开始学习Vue,每天写写基础的记录,希望对大家有帮助,如有错误还望指出,我也是一个小白,也希望大家能一起进步 v-for指令的使用: 1.循环普通数组 item in list 中的item是 ...

  5. js 选择指定区域

    /根据id 选择特定区域function SelectRange(id) { var div = document.getElementById(id); var controlRange; if ( ...

  6. Scikit-learn 安装

    Scikit-Learn 3 pip 安装 如果安装了Python,没有安装pip,使用Windows + R,输入cmd,回车打开命令行,输入 python -m pip install -U pi ...

  7. # 2019-2020-4 《Java 程序设计》第六周总结

    2019-2020-4 <Java 程序设计>第六周知识总结 第七章:内部类与异常类 1.内部类 (1)类可以有两种重要的成员:成员变量和方法,类还可以有一种成员:内部类. (2)java ...

  8. css样式表的知识点总结

    css总的来说有三种css样式可供选择: 1,行内样式表 行内样式表,直接写在了html文件的元素中,例如: <div style="color:red;"></ ...

  9. 用idea部署maven-web项目

    项目部署时,需要加一步: 我们需要添加一个archetypeCatalog=internal.这个参数的意义是让这个maven项目的骨架不要到远程下载而是本地获取.如果你没加这个参数,那么项目创建可能 ...

  10. 学以致用三十二-----python中函数的括号使用

    一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大看困惑. 今天来总结下. class aaa(): y = 'you' def __init__( ...