real-logic / aeron-cookbook-code Goto Github PK
View Code? Open in Web Editor NEWSource code related to Aeron Cookbook
Home Page: https://aeroncookbook.com
License: Apache License 2.0
Source code related to Aeron Cookbook
Home Page: https://aeroncookbook.com
License: Apache License 2.0
tried on windows and osx with both java11 && java17, same failure
./gradlew
Task :agrona:test FAILED
FAILURE: Build failed with an exception.
Could not resolve all files for configuration ':agrona:testRuntimeClasspath'.
Could not find org.junit.platform:junit-platform-launcher:.
Required by:
project :agrona
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
BUILD FAILED in 2s
14 actionable tasks: 1 executed, 13 up-to-date
the JVM option --add-opens java.base/sun.nio.ch=ALL-UNNAMED
is missing an equals sign after the option, otherwise the argument isn't recognized
hi, I am trying to run a Basic Publisher/Subscriber pair on the same Multicast/Port.
I want to know how config channel for udp multicast, special the "interface" paramter, all subs can receive messages from pub?
I have three matchines, I want to test aeron by udp multicast type, three matchines in one local network(lan),
pub matchineA ip 192.168.31.100,
sub1 matchineB ip 192.168.31.120,
sub2 matchineC ip 192.168.31.121,
aeron:udp?endpoint=XXXX:40456|interface=YYYY|ttl=16";
what XXXX config is right? what YYYY config is right?
thank you!
#ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 1c:36:bb:ed:a0:4b
inet6 fe80::b4:eaa7:461b:2d3d%en0 prefixlen 64 secured scopeid 0x5
inet 192.168.31.120 netmask 0xffffff00 broadcast 192.168.31.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
Hey, sorry if that's a silly question, but I can't figure out where classes such as RpcConnectRequestDecoder
are supposed to be coming from. I don't see them on the repo.
Old version maybe ?
But there are still being used
hello! When I try to run your ‘aeron-mdc’ sample code, I found that there may be some problems. Your code is compiled with JDK17, but the image in the dockerfile is jdk16, which causes the following problems at runtime.
here is the JDK version in aeron-mdc-publiser/Dockerfile:
When I changed the JDK version of the code to 16, the image can run normally.
Hi,
I was reading this section and I'm a little confused by the difference in the putStringAscii
and putStringWithoutLengthAscii
methods as shown. There's a part that says
An example of a putStringWithoutLengthAscii with the same 12 byte ASCII string, with bytes 1 through 11 holding the content:
Should it be ...bytes 0 through 11 holding the content
instead?
./gradlew
java -cp aeron-core/build/libs/aeron-core-0.1-SNAPSHOT.jar com.aeroncookbook.aeron.rpc.server.Server
Error: Unable to initialize main class com.aeroncookbook.aeron.rpc.server.Server
Caused by: java.lang.NoClassDefFoundError: org/agrona/concurrent/Agent
------------------------------------------------------------
Gradle 7.5.1
------------------------------------------------------------
Build time: 2022-08-05 21:17:56 UTC
Revision: d1daa0cbf1a0103000b71484e1dbfe096e095918
Kotlin: 1.6.21
Groovy: 3.0.10
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 17.0.4 (Private Build 17.0.4+8-Ubuntu-120.04)
OS: Linux 5.8.0-63-generic amd64
mvn -v
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /usr/share/maven
Java version: 17.0.4, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.8.0-63-generic", arch: "amd64", family: "unix"
i run docker compose up
,and i got a problem
here is the error log
➜ aeron-mdc git:(main) docker compose up
[+] Running 3/3
⠿ Container aeron-mdc_mdc-subscriber-1_1 Recreated 0.2s
⠿ Container aeron-mdc_mdc-publisher_1 Recreated 0.2s
⠿ Container aeron-mdc_mdc-subscriber-2_1 Recreated 0.2s
Attaching to mdc-publisher_1, mdc-subscriber-1_1, mdc-subscriber-2_1
mdc-subscriber-1_1 | 12:38:00.007 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent - launching media driver
mdc-subscriber-2_1 | 12:38:00.132 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent - launching media driver
mdc-subscriber-1_1 | 12:38:00.152 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent - connecting aeron; media driver directory /dev/shm/aeron-root
mdc-subscriber-1_1 | 12:38:00.164 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent - adding the subscription
mdc-subscriber-1_1 | Exception in thread "main" java.util.NoSuchElementException
mdc-subscriber-1_1 | at java.base/java.net.NetworkInterface$1.nextElement(NetworkInterface.java:415)
mdc-subscriber-1_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent.localHost(MultiDestinationSubscriberAgent.java:89)
mdc-subscriber-1_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent.<init>(MultiDestinationSubscriberAgent.java:48)
mdc-subscriber-1_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationSubscriber.main(MultiDestinationSubscriber.java:28)
mdc-publisher_1 | 12:38:00.273 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationPublisherAgent - launching MediaDriver
mdc-subscriber-2_1 | 12:38:00.290 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent - connecting aeron; media driver directory /dev/shm/aeron-root
mdc-subscriber-2_1 | 12:38:00.303 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent - adding the subscription
mdc-subscriber-2_1 | Exception in thread "main" java.util.NoSuchElementException
mdc-subscriber-2_1 | at java.base/java.net.NetworkInterface$1.nextElement(NetworkInterface.java:415)
mdc-subscriber-2_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent.localHost(MultiDestinationSubscriberAgent.java:89)
mdc-subscriber-2_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationSubscriberAgent.<init>(MultiDestinationSubscriberAgent.java:48)
mdc-subscriber-2_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationSubscriber.main(MultiDestinationSubscriber.java:28)
mdc-publisher_1 | 12:38:00.405 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationPublisherAgent - launching aeron
mdc-publisher_1 | 12:38:00.415 [main] INFO com.aeroncookbook.aeron.mdc.MultiDestinationPublisherAgent - Media Driver directory is /dev/shm/aeron-root
mdc-publisher_1 | Exception in thread "main" java.util.NoSuchElementException
mdc-publisher_1 | at java.base/java.net.NetworkInterface$1.nextElement(NetworkInterface.java:415)
mdc-publisher_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationPublisherAgent.localHost(MultiDestinationPublisherAgent.java:126)
mdc-publisher_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationPublisherAgent.<init>(MultiDestinationPublisherAgent.java:44)
mdc-publisher_1 | at com.aeroncookbook.aeron.mdc.MultiDestinationPublisher.main(MultiDestinationPublisher.java:26)
Sometimes the sample code results in an error when the counter is not yet ready, plus some minor improvement when closing the resources and interacting with the archive. The multi host example does not suffer from the issues fixed here.
Fixed in #235
Hi Shaun,
Apologies if this is the incorrect forum or if I may have overlooked something in my testing but in reference to the section cluster-timers#alternative of the cookbook there is mention of using the offer API on the cluster object from within the onStart
lifecycle method. Whilst playing around with this I'm noticing that a io.aeron.cluster.client.ClustedException
is being thrown by the ClusteredServiceAgent
as it appears to be preventing any timers or messages from being sent during an active lifecycle stage (in this case "onStart"). There does seem to be quite a bit of recent activity in that class so perhaps this became recently enforced?
Cheers!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.