热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高性能通信库NanoMsg框架详解与应用概述

本文详细解析了高性能通信库NanoMsg的框架及其应用场景。其中,BUS模式支持多对多的简单通信方式,消息会传递给所有直接连接的节点。REQREP模式则适用于构建无状态的服务集群,用于处理用户的请求,每个请求都需要一个相应的响应。

NanoMsg简介:
NanoMsg是一个Socket的通讯库,使用C语言编写实现的,这样就可以适用于多种操作系统,而且几乎不需要什么依赖,可扩展并且能易于使用。
Nanomsg提供了几种常见的通信模式 ( 也称为“可扩展性协议” ) 是构建分布式系统的基本框架。 通过组合它们,可以创建广 泛的分布式应用程序。

可扩展性协议类型

类型说明PAIR简单的一对一沟通BUS简单的多对多通信REQREP允许构建无状态集群来处理用户请求PUBSUB将消息分发给订阅消息的用户PIPELINE汇总来自多个来源的消息,并在许多目的点之间进行负载平衡SURVEY允许一次查询多个应用程序的状态

1、PAIR模式:
简单的一对一沟通,Client1只能同时连接Client2,通讯时的send是不阻塞的,而recv是阻塞的,直到recv超时或者接到到对方的send。

2、BUS模式:
简单的多对多通信,在此模式中,消息被发送到每个直接连接的对等点。

3、REQREP模式:
允许构建集群的无状态服务来处理用户请求。每个req请求都需要rep响应,类似http协议(一应一答)。

4、PUBSUB模式:
发布者向订阅者推送消息。只有订阅该频道的订阅者才能收到该频道的消息。

5、PIPELINE模式:
聚合来自多个来源的消息,并在多个目的地之间进行负载平衡。Client1只能send,Client2只能recv。

6、SURVEY模式:
查询多个应用的状态。这种模式对于服务发现和投票算法非常有用。

支持的传输机制

名称说明INPROC进程内的传输(线程,模块等之间)IPC在单个机器上的进程间传输TCP通过TCP的网络传输

链接: NanoMsg源码地址.

参考网址:
https://www.oschina.net/p/nanomsg ;
https://my.oschina.net/u/4582134/blog/4378097 ;

快三大小单双稳赚买法类似http协议(一应一答)。

4、PUBSUB模式:
发布者向订阅者推送消息。只有订阅该频道的订阅者才能收到该频道的消息。

5、PIPELINE模式:
聚合来自多个来源的消息,并在多个目的地之间进行负载平衡。Client1只能send,Client2只能recv。

6、SURVEY模式:
查询多个应用的状态。这种模式对于服务发现和投票算法非常有用。

支持的传输机制

名称说明INPROC进程内的传输(线程,模块等之间)IPC在单个机器上的进程间传输TCP通过TCP的网络传输

链接: NanoMsg源码地址.

参考网址:
https://www.oschina.net/p/nanomsg ;
https://my.oschina.net/u/4582134/blog/4378097 ;


推荐阅读
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
author-avatar
sdfasdfqg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有