- 博客(17)
- 收藏
- 关注
原创 Aeron:Aeron Agent
Aeron Agent 是一个 Java 代理,用于提供 Aeron、Aeron Archive 和 Aeron Cluster 中发生的运行时低级日志信息。这些日志语句包括从高级管理员事件到大容量数据帧事件。在调试 Archive 和 Cluster 问题时,Aeron Agent 的日志数据尤其有用。
2024-06-17 22:36:28 790
原创 Aeron:两个代理之间的单向IPC(One-way IPC between two agents)
本例展示了如何通过 IPC 在调度于不同线程的两个代理之间传输缓冲区。在继续学习本示例之前,最好先复习一下,因为该示例展示的是 IPC 通信,没有增加代理的复杂性。读者还应熟悉。
2024-06-17 22:18:25 837
原创 Aeron:Common Errors
Aeron 遇到的大多数问题通常都是由于资源问题造成的,如 CPU 资源不足、磁盘 I/O 速度慢、内存分页等。Linux 提供了许多工具来帮助诊断这些问题,其中一些工具将在部分进行介绍。
2024-06-17 21:52:59 744
原创 Aeron:Aeron Tooling
在上面运行的示例中,顶部会话没有积压数据,而底部会话有 65373 字节的未清积压数据。Stream Stat 位于 Aeron samples 目录中,可从 aeron-all jar 启动,如下所示。Log Inspector 位于 Aeron samples 文件夹中,可从 aeron-all jar 启动,如下所示。Aeron Stat 输出来自 Aeron 的关键计数器,以及所有活动流和最近活动流的位置和关键计数器。请注意,少量损失是相当常见的。,指的是订阅的连接位置—在本例中,订阅在位置 0。
2024-06-17 19:33:11 697
原创 Aeron:Multi-Destination-Cast
Multi-Destination-Cast(MDC)是一种功能,允许 Aeron 从单个 Publication 同时向多个目的地传送数据。Multiple-Destination-Cast是 Aeron 的一项高级功能,本指南将介绍如何开发一个简单示例的基本知识。
2024-06-17 08:57:21 1001
原创 Aeron:Position
Aeron 的位置并不完全取决于应用数据的位置,Aeron 头和填充数据也包含在位置中。反过来,报文头和填充数据的数量也直接受 MTU 长度的影响,因为提供给 Publication 的数据是按照给定的 MTU 长度处理的。如果报文长度超过 MTU 长度(减去报文头),报文将被分割成 MTU 大小的报文,并添加额外的报文头和填充数据。这种与 MTU 的直接联系就是为什么发布(publication)和订阅 (subscription )MTU 必须始终完全一致的原因。)中的 Aeron 发布(
2024-05-05 17:30:53 902
原创 Aeron:Log Buffers & Images
cleancleanactiveactive在典型运行过程中,术语(term)从clean到active再到dirty的循环。当每个术语(term)完成一个循环时,Term IDs 会递增。当向publication提供信息时,会创建一个,并将和信息数据写入日志缓冲区(log buffer)的一个术语(term)中。向订阅()提供数据时,有时您会收到显示admin action操作的响应。当 Aeron 忙于轮换术语(term)时,就会发生admin action操作。
2024-05-05 13:08:26 875
原创 Aeron:Publications & Subscriptions
在 Aeron 中,Publications是应用程序用于发送数据的主要对象,而Subscriptions则用于接收数据。在继续学习本节内容之前,建议您先熟悉直接缓冲区(注:Aeron 的一个常见误解是在 Publications & Subscriptions 中使用哪个地址。在定义通道时,publications 需要使用目标订阅的地址(subscription's address)。另一种思路是:向 publications 成功提供数据后,数据会被推送到subscription。
2024-04-27 17:10:13 1939 1
原创 Aeron:Channels, Streams and Sessions
创建 Publication & Subscription对时,必须定义 Channel和 Stream ID。通道与标准的 TCP/IP 配置非常相似,至少包括一个 IP 地址和端口。但是,Aeron 并非 TCP/IP,您可以选择使用同一通道来传输不同的数据流,这就是 Stream ID。当您通过特定的 Stream ID从 Aeron Channel接收数据时,如果只有一个数据源,那么数据源是显而易见的。但如果该 Channel和 Stream ID。
2024-04-27 16:30:21 578
原创 Aeron:Media Driver
在继续阅读之前,读者应先熟悉部分的内容。Media Driver组件负责管理通过Media(UDP 或 IPC)发送和接收任何活动publications和/或subscriptions的数据。Media Driver非常灵活,可以根据大多数情况进行配置,从高性能、最小延迟到宽松、低资源环境。虽然Media Driver在概念上类似于分布式消息代理(message broker),但它缺少一些消息代理(message broker)可能具有的功能。
2024-04-21 16:47:49 1049
原创 Aeron:基础示例
第 1 行指定和Subscriber进行通信的channel,基于 Aeron URL 方式定义,本例中的channel为 IPC channel,另请参阅的内容。第 2 行指定要通过发送的信息。第 3 行指定了要使用的空闲策略,在本例中,空闲轮询时,SleepingIdleStrategy会将线程停等 1 us,默认值。第 4 行提供了一个堆外的不安全缓冲区,用于保存要发送的信息,为简单起见,分配了 256 字节,当然也可以减少。
2024-04-20 11:27:27 1619
原创 Aeron:概述
Aeron 能以可预测的延迟跨进程或网络边界高效复制有序的日志缓冲区,Aeron API 提供三个主要交互点 -和。Media Driver目前支持UDP和IPC传输,如果必要的驱动程序和硬件可供使用,则 UDP 套接字交互协议可以转移到。Aeron Archive 为数据流提供磁盘备份存储;Aeron 集群允许开发人员构建基于 RAFT 协议的容错服务;
2024-04-14 09:19:34 547
原创 Aeron:编译安装Media Driver(Windows)
有条件的情况下,依旧推荐翻墙进行编译安装,少踩坑Windows编译安装为最后一篇编译安装示例,但建议使用Mac或Linux相关环境进行实际开发验证,部分参数调优Linux更具优势。
2024-04-09 00:06:27 735
原创 Aeron:编译安装Media Driver(Ubuntu)
进入cppbuild/Release/binaries/# 带打印输出配置运行Media Driver……Ubuntu和CentOS编译安装Media Driver大同小异,当然能翻墙最好,不用踩坑Ubuntu对于Linux桌面端可能更多,但推荐CentOS进行实践,性能更稳定(追求极致性能推荐RedHat商用版,实践性能可能更优)
2024-04-07 00:23:41 638
原创 Aeron:编译安装Media Driver(CentOS)
进入目录,执行# 进入/cppbuild/Release/binaries目录……有部分gradle依赖阿里云未同步,若能翻墙,可以忽略附件部分,反之建议先下载附件替换之后再编译安装可能安装编译有警告信息,只要没中断,可以先忽略,一般情况下,在实践中也使用不到,但如果非常在意,也可以将依赖安装,使用yum安装之前,需yum update(dnf有一个包找不到,可能已过期)
2024-04-04 11:12:44 1804
原创 Aeron:编译安装Media Driver(Mac)
目录:/cppbuild/Release/binaries# 运行示例若能翻墙进行搭建,相对较容易,参考aeron cookbook示例即可(),也是首选方案,可以快速搭建完成,快速上手实践国内环境需调整maven相关配置进行编译构建最后,。
2024-04-01 00:13:16 552
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人