摘要: Zero-Copy ZeroMQ的消息API允许您直接从应用程序缓冲区发送和接收消息,而无需复制数据。我们称之为零拷贝,它可以在某些应用程序中提高性能。 在以高频率发送大块内存(数千字节)的特定情况下,应该考虑使用零复制。对于短消息或较低的消息率,使用零复制将使您的代码更混乱和更复杂,没有可衡量的好 阅读全文
posted @ 2021-09-26 09:44 水色天空 阅读(47) 评论(0) 推荐(0) 编辑
摘要: Node Coordination 当您想要协调网络上的一组节点时,PAIR套接字将不能很好地工作。这是线程和节点策略不同的少数领域之一。基本上,节点来来去去,而线程通常是静态的。如果远程节点离开并返回,PAIR套接字不会自动重新连接。 线程和节点之间的第二个显著区别是,线程的数量通常是固定的,但节 阅读全文
posted @ 2021-09-26 09:21 水色天空 阅读(24) 评论(0) 推荐(0) 编辑
摘要: Multithreading with ZeroMQ 你应该遵循一些规则,以编写愉快的多线程代码ZeroMQ: 在线程中单独隔离数据,不要在多个线程中共享数据。唯一的例外是ZeroMQ上下文,它是线程安全的。 不要使用互斥、临界区、信号量等经典并发机制。这些是ZeroMQ应用程序中的一个反模式。 在 阅读全文
posted @ 2021-09-24 09:29 水色天空 阅读(31) 评论(0) 推荐(0) 编辑
摘要: Signaling Between Threads (PAIR Sockets) 这是一个经典的ZeroMQ多线程模式: 1. 两个线程使用共享上下文在inproc上进行通信。 2. 父线程创建一个套接字,将其绑定到inproc:@<*>@端点,然后* /启动子线程,将上下文传递给它。 3. 子线程 阅读全文
posted @ 2021-09-24 09:29 水色天空 阅读(16) 评论(0) 推荐(0) 编辑
摘要: Handling Interrupt Signals 现实的应用程序需要在被Ctrl-C或SIGTERM等其他信号中断时干净地关闭。默认情况下,这些命令会杀死进程,这意味着消息不会被刷出,文件不会被干净地关闭,等等。 程序提供了s_catch_signals(),它捕获Ctrl-C (SIGINT) 阅读全文
posted @ 2021-09-24 08:29 水色天空 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 枚举: enum EnumRadio { 否,是 } 转换器: 1 [ValueConversion(typeof(EnumRadio), typeof(bool))] 2 class EnumRadioConverter : IValueConverter 3 { 4 public object 阅读全文
posted @ 2021-09-22 15:49 水色天空 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 在.net reactor项目中,一次加密一个dll文件就可以了,不要加载一堆。 阅读全文
posted @ 2021-09-21 18:20 水色天空 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 有一些简单的规则,从POSIX约定开始: Methods that create objects return NULL if they fail. Methods that process data may return the number of bytes processed, or -1 o 阅读全文
posted @ 2021-09-20 12:05 水色天空 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Handling Errors and ETERM ZeroMQ的错误处理理念是快速失败和弹性的结合。我们认为,流程应该尽可能容易受到内部错误的攻击,并尽可能健壮地抵御外部攻击和错误。打个比方,如果一个活细胞检测到一个内部错误,它就会自我毁灭,但它会用一切可能的手段抵抗来自外部的攻击。 当ZeroM 阅读全文
posted @ 2021-09-20 12:04 水色天空 阅读(32) 评论(0) 推荐(0) 编辑
摘要: Messaging Patterns 内建的ZeroMQ模式有4种: Request-reply, 它将一组客户端连接到一组服务。这是一个远程过程调用和任务分发模式。 Pub-sub, 它将一组发布者连接到一组订阅者。这是一种数据分发模式。 Pipeline, 它以扇出/扇入模式连接节点,可以有多个 阅读全文
posted @ 2021-09-19 10:00 水色天空 阅读(53) 评论(0) 推荐(0) 编辑