标签分类 热门分类
当前位置:首页 > 网络与数据通信电子书 > ZeroMQ电子书网盘下载
ZeroMQ:云时代极速消息通信库 ZeroMQ:云时代极速消息通信库
cjf_wei

cjf_wei 提供上传

资源
40
粉丝
7
喜欢
204
评论
7

    ZeroMQ:云时代极速消息通信库 PDF 高清版

    ZeroMQ电子书
    • 发布时间:

    给大家带来的一篇关于ZeroMQ相关的电子书资源,介绍了关于ZeroMQ、云时代、通信库方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小79 MB,亨特金斯编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.1,更多相关的学习资源可以参阅 网络与数据通信电子书、等栏目。

  • ZeroMQ:云时代极速消息通信库 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1Trz9HSCjngmG48EiUWtHR
  • 提取码:yzj3
  • 《ZeroMQ:云时代极速消息通信库》介绍ZeroMQ 的API、套接字和模式的使用。通过建立应用程序来讲解如何使用ZeroMQ 编程技术构建多线程应用程序,并创建自己的消息传递架构。《ZeroMQ:云时代极速消息通信库》设计了大量工作实例来实现请求- 应答模式的高级使用和容错性,并对发布- 订阅模式的性能、可靠性、状态分发与监控进行了扩展。

    《ZeroMQ:云时代极速消息通信库》面向的读者是希望制作大规模分布式软件的专业程序员和有志于这方面研究的专业人士,旨在帮助他们解决大规模、可扩展、低成本、高效率的问题,书中还展现了ZeroMQ所需的网络和分布式计算概念。

    目录

    • 前言 xix
    • 第1部分 学习如何使用φMQ 来开展工作
    • 第1章 基础知识 3
    • 修复这个世界 3
    • 本书的读者对象 5
    • 获取示例 5
    • 问过就必有收获 5
    • 在字符串上的小注解 10
    • 版本报告 12
    • 获得消息 12
    • 分而治之 16
    • 用φMQ 编程 21
    • 获取正确的上下文 22
    • 执行彻底的退出 22
    • 为什么我们需要φMQ 23
    • 套接字的可扩展性 27
    • 从φMQ v2.2 升级到φMQ v3.2 28
    • 警告:不稳定的典范! 29
    • 第2章 套接字和模式 31
    • 套接字API 32
    • 把套接字接入网络拓扑 32
    • 使用套接字来传输数据 34
    • 单播传输 35
    • φMQ 不是一个中性载体 35
    • I/O 线程 36
    • 消息传递模式 37
    • 高级别消息传递模式 38
    • 处理消息 38
    • 处理多个套接字 41
    • 多部分消息 44
    • 中间层及代理 45
    • 动态发现问题 46
    • 共享队列(DEALER 和ROUTER 套接字) 48
    • φMQ 的内置代理功能 53
    • 传输桥接 55
    • 处理错误和ETERM 56
    • 处理中断信号 61
    • 检测内存泄漏 63
    • 使用φMQ 编写多线程程序 64
    • 线程间信令(PAIR 套接字) 69
    • 节点协调 71
    • 零拷贝 75
    • 发布- 订阅消息封包 76
    • 高水位标记 78
    • 消息丢失问题的解决方案 80
    • 第3章 高级请求- 应答模式 83
    • 请求- 应答机制 83
    • 简单的应答封包 84
    • 扩展的应答封包 84
    • 这有什么好处呢 87
    • 请求- 应答套接字回顾 88
    • 请求- 应答组合 88
    • REQ 到REP 组合 89
    • DEALER 到REP 组合 89
    • REQ 到ROUTER 组合 90
    • DEALER 到ROUTER 组合 90
    • DEALER 到DEALER 组合 90
    • ROUTER 到ROUTER 组合 90
    • 无效组合 91
    • 探索ROUTER 套接字 91
    • 身份和地址 92
    • ROUTER 错误处理 .93
    • 负载均衡模式 94
    • ROUTER 代理和REQ 工人 95
    • ROUTER 代理及DEALER 工人 97
    • 负载均衡的消息代理 98
    • 用于φMQ 的一个高级别的API 105
    • 高级别API 的特点 107
    • CZMQ 高级别API 108
    • 异步客户端/ 服务器模式 115
    • 能够工作的示例:跨代理路由 120
    • 建立详情 120
    • 单集群架构 121
    • 扩展到多个集群 122
    • 联盟与对等比较 124
    • 命名规范 126
    • 状态流原型 127
    • 本地流和云端流原型 130
    • 总结 137
    • 第4章 可靠的请求- 应答模式 147
    • 什么是“可靠性” 147
    • 可靠性设计 148
    • 客户端可靠性(懒惰海盗模式) 149
    • 基本可靠队列(简单海盗模式) 154
    • 健壮的可靠队列(偏执海盗模式) 157
    • 信号检测 166
    • 置若罔闻地将它关闭 166
    • 单向信号检测 167
    • 乒乓信号检测 167
    • 针对偏执海盗的信号检测 168
    • 合同和协议 170
    • 面向服务的可靠队列(管家模式) 170
    • 异步管家模式 195
    • 服务发现 201
    • 幂等服务 203
    • 断开连接的可靠性(泰坦尼克模式) 203
    • 高可用性对(双星模式) 216
    • 详细需求 218
    • 避免脑裂症状 220
    • 双星实现 221
    • 双星反应器 228
    • 无代理可靠性(自由职业者模式) 234
    • 模型一:简单的重试和故障转移 235
    • 模型二:粗暴猎枪屠杀 238
    • 模式三:复杂和讨厌的 244
    • 结论 256
    • 第5章 高级发布- 订阅模式 257
    • 发布- 订阅模式的优点和缺点 257
    • 发布- 订阅跟踪(特浓咖啡模式) 259
    • 最后一个值缓存 262
    • 慢速订阅者检测(自杀蜗牛模式) 267
    • 高速订阅者(黑盒模式) 270
    • 可靠的发布- 订阅(克隆模式) 272
    • 集中式与分散式 273
    • 将状态表示为键- 值对 273
    • 得到带外的快照 284
    • 重新发布来自客户端的更新 290
    • 处理子树 295
    • 临时值 298
    • 使用反应器 306
    • 在双星模式中添加可靠性 311
    • 集群的散列映射协议 321
    • 构建一个多线程栈和API 325
    • 第2部分 使用φMQ 的软件工程
    • 第6章 φMQ 社区 341
    • φMQ 社区的架构 342
    • 如何制作真正的大型架构 343
    • 软件架构的心理学 344
    • 合同 346
    • 过程 348
    • 疯狂,美丽,并且容易 348
    • 陌生人,遇见陌生人 349
    • 无限的财富 349
    • 照管和培育 350
    • φMQ 过程:C4 351
    • 语言 351
    • 目标 352
    • 热身 354
    • 许可和所有权 355
    • 对补丁程序的要求 356
    • 开发过程 357
    • 建立稳定的版本 361
    • 公共合同的演变 362
    • 一个实际例子 364
    • Git 分支是有害的 368
    • 简单性与复杂性的对比 369
    • 更改延迟 369
    • 学习曲线 369
    • 出故障的成本 369
    • 前期协调 369
    • 可扩展性 370
    • 惊奇和期望 370
    • 参与的经济学 370
    • 在冲突中的强壮性 370
    • 隔离的保证 370
    • 能见度 371
    • 结论 371
    • 为创新而设计 371
    • 双桥传说 371
    • φMQ 的路线图是如何失去的 372
    • 垃圾桶化的设计 374
    • 复杂化的设计 376
    • 简约化的设计 377
    • 职业倦怠 379
    • 成功模式 380
    • 懒惰的完美主义者 381
    • 仁慈暴君 381
    • 天和地 381
    • 门户开放 381
    • 大笑的小丑 382
    • 留心的将军 382
    • 社会工程师 382
    • 不朽的园丁 382
    • 滚石 382
    • 海盗帮 383
    • 快闪族 383
    • 加那利看守 383
    • 执行绞刑的刽子手 383
    • 历史学家 383
    • 煽动者 384
    • 神秘人 384
    • 第7章 使用φMQ 的高级架构 385
    • 用于弹性设计的面向消息模式 386
    • 第1步:内部化的语义 387
    • 第2步:描绘一个粗略的架构 387
    • 第3步:决定合同 388
    • 第4步:编写一个最小的端到端解决方案 388
    • 第5步:解决一个问题,然后重复 389
    • Unprotocol 389
    • 合同是艰难的 390
    • 如何编写Unprotocol 391
    • 为什么使用GPLv3 的公开规范 392
    • 使用ABNF 393
    • 廉价或讨厌的模式 393
    • 序列化数据 395
    • φMQ 组帧 396
    • 序列化语言 396
    • 序列化库 397
    • 手写的二进制序列化 399
    • 代码生成 400
    • 传输文件 406
    • 状态机 417
    • 使用SASL 认证 424
    • 大型文件发布:FileMQ 426
    • 为什么要制作FileMQ 426
    • 最初的设计切片:API 426
    • 最初的设计切片:协议 427
    • 构建和尝试FileMQ 429
    • 内部架构 430
    • 公共API 431
    • 设计说明 432
    • 配置 433
    • 文件稳定性 434
    • 递交通知 434
    • 符号链接 435
    • 恢复和后期加入者 435
    • 测试用例:曲目工具 437
    • 得到一个官方端口号 439
    • 第8章 分布式计算的框架 441
    • 用于现实世界的设计 442
    • 无线网络的秘密生活 443
    • 为什么网状网络现在还没出现 444
    • 一些物理知识 445
    • 现状是什么 446
    • 结论 448
    • 发现 448
    • 通过原始套接字先发制人的发现 448
    • 使用UDP 广播协同发现 450
    • 一台设备上的多个节点 455
    • 设计API 456
    • 关于UDP 的更多内容 465
    • 分拆一个库项目 466
    • 点对点消息传递 467
    • UDP 信标帧 467
    • 真正的对等连接(和谐模式) 469
    • 检测失踪 471
    • 群发消息 472
    • 测试与模拟 474
    • 使用断言 474
    • 前期测试 475
    • Zyre 测试仪 476
    • 测试结果 479
    • 跟踪活动 481
    • 处理阻塞节点 481
    • 分布式日志记录和监视 484
    • 一个合理的最小实现 485
    • 协议断言 488
    • 二进制日志记录协议 489
    • 内容分发 490
    • 编写Unprotocol 493
    • 结论 494
    • 第9章 后记 497
    • 番外篇 497
    • Rob Gagnon 的故事 497
    • Tom van Leeuwen 的故事 497
    • Michael Jakl 的故事 498
    • Vadim Shalts 的故事 498
    • 本书是如何诞生的 499
    • 消除摩擦 500
    • 许可 502
    • 索引 503

    上一篇:删除:大数据取舍之道  下一篇:数据挖掘:概念、模型、方法和算法

    展开 +

    收起 -

     
    ZeroMQ 相关电子书
    关于ZeroMQ的学习笔记
    网友NO.287035

    关于numpy中np.nonzero()函数用法的详解

    np.nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数。一般来说,通过help(np.nonzero)能够查看到该函数的解析与例程。但是,由于例程为英文缩写,阅读起来还是很费劲,因此,本文将其英文解释翻译成中文,便于理解。 解释 nonzero(a) 返回数组a中非零元素的索引值数组。 (1) 只有a中非零元素才会有索引值,那些零值元素没有索引值; (2) 返回的索引值数组是一个2维tuple数组,该tuple数组中包含一维的array数组。其中,一维array向量的个数与a的维数是一致的。 (3) 索引值数组的每一个array均是从一个维度上来描述其索引值。比如,如果a是一个二维数组,则索引值数组有两个array,第一个array从行维度来描述索引值;第二个array从列维度来描述索引值。 (4) 该np.transpose(np.nonzero(x)) 函数能够描述出每一个非零元素在不同维度的索引值。 (5) 通过a[nonzero(a)]得到所有a中的非零值 #a是1维数组 a = [0,2,3] b = np.nonzero(a) print(np.array(b).ndim) print(b) 结果: 2 (array([1, 2], dtype=int64),) 说明:索引1和索引2的位置上元素的值非零。 #a是2维数组 a = np.array([[0,0,3],[0,0,0],[0,0,9]]) b = np.nonzero(a) print(np.array(b).ndim) print(b) print(np.transpose(np.nonzero(a))) 结果: 2 (array([0, 2], dtype=int64), array([2, 2], dtype=int64)) [[0 2] [2 2]] 说明: (1)……

    网友NO.679887

    浅谈Java消息队列总结篇(ActiveMQ、RabbitMQ、ZeroMQ、Kafka)

    一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式 a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。 b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10次(1000/100) 小结:如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶……

    网友NO.627384

    JavaScript使用ZeroClipboard操作剪切板

    一、ZeroClipboard下载地址 为大家提供细一些ZeroClipboard的下载地址: Zero Clipboard 开源的 JavaScript+flash 复制库类 基于ZeroClipboard实现的网站内容复制粘贴JS特效源码 zeroclipboard 用js与flash实现的复制到剪切板的文件 二、添加js引用 script src="../Assets/js/jquery-1.8.3.min.js"/script script src="../Assets/js/ZeroClipboard/ZeroClipboard.js"/script 三、初始化插件 $(function () { InitCopyToClipboard('btnCopyToClipBoard'); });//将内容复制到剪切板function InitCopyToClipboard(btnId) {ZeroClipboard.setMoviePath("../Assets/js/ZeroClipboard/ZeroClipboard.swf"); //设置flash文件在项目中的位置 var clip = new ZeroClipboard.Client(); // 新建一个对象clip.setHandCursor(true);clip.addEventListener('onmouseup', function (client) { //创建监听 // 可以在这儿写一个方法处理相应的事件逻辑 clip.setText('要复制到剪切板中的内容'); });clip.glue(btnId); //将flash覆盖至指定ID的DOM上//窗口大小发生变化时从新将flash覆盖至制定的id上,否则位置不对应导致点击时没反应bind(window, "resize", function () { clip.reposition();});return false;}/************************************ * 添加事件绑定 * @param obj : 要绑定事件的元素 * @param type : 事件名称。不加 "on". 如 : "click" 而不是 "onclick". * @param fn : 事件处理函数 ************************************/function bind(obj, type, fn) {if (obj.attachEvent) {obj['e' + t……

    网友NO.282506

    ZeroClipboard.js使用一个flash复制多个文本框

    ZeroClipboard.js是一个支持复制和粘贴的JavaScript插件,目前官方已经到2.x的版本了,但不支持IE9以下的浏览器,而如果要兼容,则可以使用1.x的版本,我使用的是最开始的一个版本:1.0.7的。该版本支持IE7和IE8,今天主要介绍如何使用一个flash支持多个复制文本。 一般我们需要复制一个地方的时候,大多都使用下面这个代码新建一个对象: div id="J_pop_share" input id="J_video_iframe1" value="iframe src="http://caibaojian.com/book/"/iframe" / button id="J_copy_btn1"复制/button/div 单个: var clip = null;//ZeroClipboard.Client对象 var current_id = null;//当前所在的文本元素id //指定ZeroClipboard.swf位置ZeroClipboard.setMoviePath(location.protocol+"//club.pcauto.com.cn/js/ZeroClipboard.swf"); clip = new ZeroClipboard.Client();//创建ZeroClipboard.Client对象 clip.setHandCursor(true);//鼠标移动到元素上之后显示手型 clip.glue('J_copy_btn1','J_pop_share');clip.setText($('#J_video_iframe1').val());//添加复制成功之后的操作 clip.addEventListener('complete', function() { alert('复制成功'); }); 如果有多个的话,是不是需要新建四个flash对象呢?可能没尝试过的人会这么做,这篇文章分享另外一种做法,就是在上面这个flash的基础上,当移动到另外一个按钮时,改变flash的位置和复制的文本。 多个文本的HTML代码: div id="J_pop_share" div input id="J_video_iframe1" ……

    网友NO.127389

    python中numpy.zeros(np.zeros)的使用方法

    翻译: 用法:zeros(shape, dtype=float, order='C') 返回:返回来一个给定形状和类型的用0填充的数组; 参数:shape:形状 dtype:数据类型,可选参数,默认numpy.float64 dtype类型: t ,位域,如t4代表4位 b,布尔值,true or false i,整数,如i8(64位) u,无符号整数,u8(64位) f,浮点数,f8(64位) c,浮点负数, o,对象, s,a,字符串,s24 u,unicode,u24 order:可选参数,c代表与c语言类似,行优先;F代表列优先 例子: np.zeros(5)array([ 0., 0., 0., 0., 0.])np.zeros((5,), dtype=np.int)array([0, 0, 0, 0, 0])np.zeros((2, 1))array([[ 0.], [ 0.]])s = (2,2)np.zeros(s)array([[ 0., 0.], [ 0., 0.]])np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtypearray([(0, 0), (0, 0)], dtype=[('x', 'i4'), ('y', 'i4')])########################################################zeros(shape, dtype=float, order='C')Return a new array of given shape and type, filled with zeros.Parameters----------shape : int or sequence of ints Shape of the new array, e.g., ``(2, 3)`` or ``2``.dtype : data-type, optional The desired data-type for the array, e.g., `numpy.int8`. Default is `numpy.float64`.order : {'C', 'F'}, optional Whether to store multidimensional data in C- or Fortran-contiguous (row- or column-wise) order in memory.Returns-------out : ndarray Array of zeros with the given shape, dtype, and order.See Also--------zeros_like : Return an array of zeros with shape and type of input.ones_like : Return an array ……

    Copyright 2018-2020 xz577.com 码农之家

    电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

    鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com

    上传资源(网友、会员均可提供)

    查看最新会员资料及资源信息