Aeron
=====
[![Gitter](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/real-logic/Aeron?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) To chat with other Aeron users and the contributors.
[![Javadocs](https://www.javadoc.io/badge/io.aeron/aeron-all.svg)](https://www.javadoc.io/doc/io.aeron/aeron-all)
[![Build Status](https://travis-ci.org/real-logic/aeron.svg?branch=master)](https://travis-ci.org/real-logic/aeron)
[![GitHub](https://img.shields.io/github/license/real-logic/Aeron.svg)](https://github.com/real-logic/aeron/blob/master/LICENSE)
[![Code Quality: Java](https://img.shields.io/lgtm/grade/java/g/real-logic/aeron.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/real-logic/aeron/context:java)
[![Code Quality: C/C++](https://img.shields.io/lgtm/grade/cpp/g/real-logic/aeron.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/real-logic/aeron/context:cpp)
[![Total Alerts](https://img.shields.io/lgtm/alerts/g/real-logic/aeron.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/real-logic/aeron/alerts)
Efficient reliable UDP unicast, UDP multicast, and IPC message transport. Java and C++ clients are available in this
repository, and a [.NET client](https://github.com/AdaptiveConsulting/Aeron.NET) is available from a 3rd party. All
three clients can exchange messages across machines, or on the same machine via IPC, very efficiently. Message streams
can be recorded by the [Archive](https://github.com/real-logic/aeron/tree/master/aeron-archive) module to persistent
storage for later, or real-time, replay.
Performance is the key focus. Aeron is designed to be the highest throughput with the lowest and most predictable
latency possible of any messaging system. Aeron integrates with
[Simple Binary Encoding (SBE)](https://github.com/real-logic/simple-binary-encoding) for the best possible performance
in message encoding and decoding. Many of the data structures used in the creation of Aeron have been factored out to
the [Agrona](https://github.com/real-logic/agrona) project.
For details of usage, protocol specification, FAQ, etc. please check out the
[Wiki](https://github.com/real-logic/aeron/wiki).
For those who prefer to watch a video then try [Aeron Messaging](https://www.youtube.com/watch?v=tM4YskS94b0) from
StrangeLoop 2014. Things have advanced quite a bit with performance and features but the basic design still applies.
For the latest version information and changes see the [Change Log](https://github.com/real-logic/aeron/wiki/Change-Log)
with Java **downloads** at [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Caeron).
### How do I use Aeron?
1. [Java Programming Guide](https://github.com/real-logic/aeron/wiki/Java-Programming-Guide)
1. [C++11 Programming Guide](https://github.com/real-logic/aeron/wiki/Cpp-Programming-Guide)
1. [Best Practices Guide](https://github.com/real-logic/aeron/wiki/Best-Practices-Guide)
1. [Monitoring and Debugging](https://github.com/real-logic/aeron/wiki/Monitoring-and-Debugging)
1. [Configuration Options](https://github.com/real-logic/aeron/wiki/Configuration-Options)
1. [Channel Specific Configuration](https://github.com/real-logic/aeron/wiki/Channel-Configuration)
1. [Aeron Archive (Durable/Persistent Stream Storage)](https://github.com/real-logic/aeron/wiki/Aeron-Archive)
### How does Aeron work?
1. [Transport Protocol Specification](https://github.com/real-logic/aeron/wiki/Transport-Protocol-Specification)
1. [Design Overview](https://github.com/real-logic/aeron/wiki/Design-Overview)
1. [Design Principles](https://github.com/real-logic/aeron/wiki/Design-Principles)
1. [Flow Control Semantics](https://github.com/real-logic/aeron/wiki/Flow-and-Congestion-Control)
1. [Media Driver Operation](https://github.com/real-logic/aeron/wiki/Media-Driver-Operation)
### How do I hack on Aeron?
1. [Hacking on Aeron](https://github.com/real-logic/aeron/wiki/Hacking-on-Aeron)
1. [Performance Testing](https://github.com/real-logic/aeron/wiki/Performance-Testing)
Build
-----
### Java Build
The project is built with [Gradle](http://gradle.org/) using this
[build.gradle](https://github.com/real-logic/aeron/blob/master/build.gradle) file.
You require the following to build Aeron:
* [JDK 8](https://adoptopenjdk.net/index.html) or later, Java versions before 1.8.0_65 are very buggy and can cause tests to fail. Aeron is tested and supported on Java 8 & Java 11.
You must first build and install [Agrona](https://github.com/real-logic/agrona) and
[Simple Binary Encoding (SBE)](https://github.com/real-logic/simple-binary-encoding) into the local maven repository **if** the current master for Aeron depends on changes to Agrona or SBE. However we will try to not have this as the typical case.
```shell
$ ./gradlew
```
After Agrona & SBE are compiled and installed, then you can build Aeron.
Full clean and build of all modules
```shell
$ ./gradlew
```
### C++ Build
You require the following to build the C++ API for Aeron:
* 3.1.3 or higher of [CMake](http://www.cmake.org/)
* C++11 supported compiler for the supported platform
* C11 supported compiler for the supported platform
* Requirements to build [HdrHistogram_c](https://github.com/HdrHistogram/HdrHistogram_c). HdrHistogram requires
`zlib.h` currently. So on Ubuntu:
```shell
$ sudo apt-get install libz-dev
```
__Note__: Aeron is supported on Linux, Mac, and Windows. Windows builds require Visual Studio and are being developed
with Visual Studio 2017 with 64-bit builds only. Cygwin, MSys, etc. may work, but are not maintained at this time.
Windows builds require 7z to unzip the zlib source archive.
For convenience, a script is provided that does a full clean, build, and test of all targets as a Release build.
```shell
$ ./cppbuild/cppbuild
```
If you are comfortable with using CMake, then a full clean, build, and test looks like:
```shell
$ mkdir -p cppbuild/Debug
$ cd cppbuild/Debug
$ cmake ../..
$ cmake --build . --clean-first
$ ctest
```
#### C Media Driver
By default, the C Media Driver is built as part of the C++ Build. However, it can be disabled via the CMake
option `BUILD_AERON_DRIVER` being set to `OFF`.
__Note__: C Media Driver is currently only supported on Mac and Linux (Windows version is experimental).
For dependencies and other information, see the
[README](https://github.com/real-logic/aeron/blob/master/aeron-driver/src/main/c/README.md).
#### Documentation
If you have doxygen installed and want to build the Doxygen doc, there is a nice `doc` target that can be used.
```shell
$ make doc
```
#### Packaging
If you would like a packaged version of the compiled API, there is the `package` target that uses CPack. If the doc
has been built previous to the packaging, it will be included. Packages created are "TGZ;STGZ", but can be changed
by running `cpack` directly.
```shell
$ make package
```
Running Samples
---------------
Start up a media driver which will create the data and conductor directories. On Linux, this will probably be in
`/dev/shm/aeron` or `/tmp/aeron`.
```shell
$ java -cp aeron-samples/build/libs/samples.jar io.aeron.driver.MediaDriver
```
Alternatively, specify the data and conductor directories. The following example uses the shared memory 'directory' on
Linux, but you could just as easily point to the regular filesystem.
```shell
$ java -cp aeron-samples/build/libs/samples.jar -Daeron.dir=/dev/shm/aeron io.aeron.driver.MediaDriver
```
You can run the `BasicSubscriber` from a command line. On Linux, this will be pointing to the `/dev/shm` shared memory
directory, so be sure your `MediaDriver` is doing the same!
```shell
$ java -cp aeron-samples/build/libs/samples.jar io.aeron.samples.BasicSubscriber
```
You can run the `BasicPublisher` from a command line. On Linux, this will be pointing to the `/dev/shm` shared memory
directory, so be sure your `MediaDriver` is doin
没有合适的资源?快使用搜索试试~ 我知道了~
aeron-driver-0.2.1.zip
共977个文件
java:518个
h:187个
cpp:85个
需积分: 10 0 下载量 11 浏览量
2019-09-26
02:18:22
上传
评论
收藏 4MB ZIP 举报
温馨提示
Aeron.zip,高效可靠的udp单播、多播和ipc传输协议。高效可靠的udp单播、udp多播和ipc消息传输
资源推荐
资源详情
资源评论
收起资源包目录
aeron-driver-0.2.1.zip (977个子文件)
aeron-stat 728B
archiving-media-driver 968B
backlog-stat 725B
basic-publisher 728B
basic-subscriber 729B
gradlew.bat 3KB
embedded-recording-throughput.bat 1KB
embedded-replay-throughput.bat 1KB
embedded-ping-pong.bat 1KB
embedded-exclusive-spied-throughput.bat 1KB
embedded-dual-exclusive-throughput.bat 1KB
embedded-exclusive-throughput.bat 1KB
embedded-throughput.bat 1KB
ping.bat 1KB
pong.bat 1KB
embedded-exclusive-vectored-ipc-throughput.bat 1006B
low-latency-media-driver.bat 988B
streaming-publisher.bat 984B
embedded-exclusive-claim-ipc-throughput.bat 970B
embedded-claim-ipc-throughput.bat 961B
embedded-exclusive-ipc-throughput.bat 959B
embedded-ipc-throughput.bat 950B
rate-subscriber.bat 943B
archiving-media-driver.bat 918B
logging-media-driver.bat 858B
replayed-basic-subscriber.bat 738B
recorded-basic-publisher.bat 737B
segment-inspector.bat 734B
log-inspector.bat 719B
file-receiver.bat 719B
basic-subscriber.bat 719B
media-driver.bat 718B
basic-publisher.bat 718B
file-sender.bat 717B
stream-stat.bat 717B
aeron-stat.bat 716B
backlog-stat.bat 715B
error-stat.bat 713B
loss-stat.bat 712B
aeron_driver_conductor.c 108KB
aeron_driver_context.c 69KB
aeron_network_publication.c 40KB
aeron_driver.c 36KB
aeron_driver_agent.c 33KB
aeron_publication_image.c 28KB
aeron_ipc_publication.c 20KB
aeron_receive_channel_endpoint.c 18KB
aeron_uri.c 17KB
aeron_netutil.c 17KB
aeron_driver_receiver.c 16KB
aeron_agent.c 15KB
aeron_send_channel_endpoint.c 13KB
aeron_udp_channel.c 13KB
aeron_data_packet_dispatcher.c 12KB
aeron_driver_sender.c 11KB
aeron_fileutil.c 11KB
aeron_http_util.c 11KB
aeron_udp_channel_transport.c 11KB
aeron_parse_util.c 11KB
aeron_properties_util.c 10KB
aeron_mpsc_rb.c 9KB
aeron_distinct_error_log.c 9KB
aeron_position.c 9KB
aeron_driver_receiver_proxy.c 9KB
aeron_udp_transport_poller.c 8KB
aeron_udp_destination_tracker.c 8KB
aeron_socket.c 8KB
aeron_min_flow_control.c 7KB
aeron_windows.c 7KB
aeron_counters_manager.c 7KB
aeron_driver_sender_proxy.c 7KB
aeron_spsc_rb.c 6KB
aeron_retransmit_handler.c 6KB
aeron_flow_control.c 5KB
aeron_dlopen.c 5KB
aeron_driver_conductor_proxy.c 5KB
aeron_loss_detector.c 4KB
aeron_congestion_control.c 4KB
aeron_loss_reporter.c 4KB
aeron_error.c 4KB
aeron_system_counters.c 4KB
aeron_term_unblocker.c 4KB
aeronmd.c 4KB
aeron_thread.c 4KB
aeron_broadcast_transmitter.c 4KB
aeron_logbuffer_descriptor.c 3KB
aeron_logbuffer_unblocker.c 3KB
aeron_udp_channel_transport_bindings.c 2KB
aeron_spsc_concurrent_array_queue.c 2KB
aeron_termination_validator.c 2KB
aeron_mpsc_concurrent_array_queue.c 2KB
aeron_alloc.c 2KB
aeron_strutil.c 2KB
aeron_str_to_ptr_hash_map.c 2KB
aeron_int64_to_ptr_hash_map.c 2KB
aeron_term_gap_filler.c 2KB
aeron_arrayutil.c 1KB
aeron_atomic.c 991B
aeron_term_gap_scanner.c 888B
aeron_term_scanner.c 791B
共 977 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
weixin_38744270
- 粉丝: 327
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功