![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Head First Aeron
文章平均质量分 93
BUG_zhentan
这个作者很懒,什么都没留下…
展开
-
Aeron 是如何实现的?—— Ipc 异常情况处理
接上文《Aeron是什么?》《Aeron中这么多空闲策略选哪个?》《Aeron是如何实现的?—— Conductor》《Aeron 是如何实现的?—— Ipc Publication》《Aeron 是如何实现的?—— Ipc Subscription》0. 简介上文分析了 Ipc Subscription 的逻辑,本文继续分析一下 ipc 场景异常情况处理。1. 两个心跳总的来说,Client 与 Driver 之间是通过心跳超时判断对方是否异常。原创 2021-12-14 15:00:01 · 1336 阅读 · 0 评论 -
Aeron 是如何实现的?—— Ipc Subscription
最近我们用 Aeron 实现了 Mesh agent 与 sdk 之间的共享内存通信,但是在使用过程中越来越感觉到 Aeron 框架太重了,其中很大部分功能完全用不到,有些想要自定义的逻辑很难在现有框架中实现。所以我们计划深入到 Aeron 源码中,看看它是如何实现的,最终尝试实现一个轻量的 Mesh 共享内存通信类库。上文分析了 Ipc Publication 的逻辑,本文继续分析 Ipc Subscription 的逻辑。原创 2021-12-08 15:15:45 · 232 阅读 · 0 评论 -
Aeron是如何实现的?—— Ipc Publication
最近我们用 Aeron 实现了 Mesh agent 与 sdk 之间的共享内存通信,但是在使用过程中越来越感觉到 Aeron 框架太重了,其中很大部分功能完全用不到,有些想要自定义的逻辑很难在现有框架中实现。所以我们计划深入到 Aeron 源码中,看看它是如何实现的,最终尝试实现一个轻量的 Mesh 共享内存通信类库。上文分析了 Conductor 的逻辑,本文继续分析 Ipc Publication 的逻辑。1. Driver Conductor - add[Exclusive原创 2021-11-24 15:08:42 · 362 阅读 · 0 评论 -
Aeron是如何实现的?—— Conductor
接上文《Aeron是什么?》《Aeron中这么多空闲策略选哪个?》0. 简介最近我们用 Aeron 实现了 Mesh agent 与 sdk 之间的共享内存通信,但是在使用过程中越来越感觉到 Aeron 框架太重了,其中很大部分功能完全用不到,有些想要自定义的逻辑很难在现有框架中实现。所以我们计划深入到 Aeron 源码中,看看它是如何实现的,最终尝试实现一个轻量的 Mesh 共享内存通信类库。再回过头来看一下这张架构图:Media Driver 组件负责管理数据通过媒介(UDP 或原创 2021-11-10 17:43:58 · 419 阅读 · 0 评论 -
Aeron中这么多空闲策略选哪个?
接上文Aeron提供了一系列等待策略,一般是应用于消息订阅程序,用来定义没有消息可以处理的时候应用线程应该做什么。1. IdleStrategy 类型空闲策略接口定义了两个方法: idle:空闲的动作,比如 sleep; reset:重置内部状态 通过这两个方法就能实现不同的空闲策略。1.1 SleepingIdleStrategy调用 LockSupport.parkNanos(this.sleepPeriodNs) 让出一段 CPU 时间。1.原创 2021-11-02 15:31:50 · 303 阅读 · 0 评论 -
Aeron是什么?
Aeron是一个开源高性能消息传输机制(单向),支持高效可靠的UDP单播、UDP多播和IPC消息传输。1. 架构Aeron 主要由三部分组成:Media Driver、Publications 和 Subscriptions1.1 Media DriverMedia Driver 负责管理 publications 和 subscriptions 所使用的用来发送和接收数据的 Media(UDP或IPC)。各组件作用: Driver Conductor Driver Condu原创 2021-10-27 14:27:33 · 1062 阅读 · 0 评论