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. Charles抓https请求详细步骤

    1.电脑上安装好Charles 2.电脑上安装证书 (1)点击Help - SSL Proxying - Install Charlse Root Certificate (2)在电脑上找到证书.此时 ...

  2. Django中发件邮箱的设定

    Django中发件邮箱的设定: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'#邮件发送到邮件服务器 #EMAIL_BACK ...

  3. 解决初次安装PyCharm后 No Python interpreter selected的问题

    原文链接:https://liuzhichao.com/p/1543.html PyCharm 是由JetBrains打造的一款 Python IDE.具有智能代码编辑器,能理解 Python 的特性 ...

  4. map获取数字与int比较

    已知 map.get("id")为数字,如:123问题 id.equals(123) 结果为false而使用 int id = (Integer)map.get("id& ...

  5. Vmware 无法启动虚拟机 -VMware Workstation and Device/Credential Guard are not compatible.

    因为在学习Linux,起初尝试用Hyper-V安装Linux进行学习,之后为了方便和老师的设置一样,所以改装了VMware,所有初始设置先好后发现,虚机机无法启用. VMware也提示不支持CPU虚拟 ...

  6. 跟踪SQL

    在数据库中,找到以下页面,并选择事件中的Tsql下的bath...与stm...

  7. 《Linux就该这么学》第十四天课程

    samba服务的配置文件解读 samba服务解决了Linux系统与Windows系统之间的文件共享问题,是一个非常不错的服务 原创地址:https://www.linuxprobe.com/chapt ...

  8. maven 编码 UTF-8 的不可映射字符

    maven编译时报错,后面发现代码是用GBK编码编写,maven默认是用utf-8来编译.修改pom.xml <build> <plugins> <plugin> ...

  9. Unity3D中AssetBundle应用

    工程中的模型等资源转化为Prefab后,打包成AssetBundle,可以大幅降低资源的空间占有度,并且提高资源加载的效率. 一.AssetBundle的打包 先看下打包Prefab的脚本代码,这段脚 ...

  10. 【慕课网实战】二、以慕课网日志分析为例 进入大数据 Spark SQL 的世界

    MapReduce的局限性: 1)代码繁琐: 2)只能够支持map和reduce方法: 3)执行效率低下: 4)不适合迭代多次.交互式.流式的处理:   框架多样化: 1)批处理(离线):MapRed ...