Aeron:编译安装Media Driver(Mac)

注:Media Driver对于Aeron的重要性参考:What is the Media Driver and why do I need it? - Aeron Cookbook

第一步:下载源码

下载源码(可能国内访问会有点儿慢,可考虑翻墙或拷贝到Gitee进行clone),建议git clone进行下载源码,其他下载方式可能不带有编译环境,导致后续流程执行报错:

git clone git@github.com:real-logic/aeron.git

第二步:切换到指定分支

# 进入到aeron目录
cd aeron
# 切换到指定版本分支,参考aeron cookbook,已非最新版本,但可靠(推荐master直接编译即可)
git checkout master

 第三步:安装mac开发者工具(编译依赖)

xcode-select --install

第四步:安装cmake(编译C使用)

首先,需要提前安装brew(mac下,工程师理论上均需安装此工具,提供太多便利),参考:Mac安装brew的四种方法(指定能行)_mac brew-CSDN博客

另附解决brew install慢的参考方案:https://www.jianshu.com/p/6ea6e19c060d (如果有翻墙条件,此参考可忽略)

# 使用brew安装cmake
brew install cmake

第五步:编译C生成二进制可执行文件

因为国内网络限制,此步执行可能会各种报错,因此需提前调整gradle相关配置(若能利用翻墙,则可直接忽略修改gradle配置部分)

修改gradle-wrapper.properties:参考:解决Gradle下载过慢问题的有效方式:使用国内镜像站点-CSDN博客

# 首先搜索gradle-wrapper.properties
➜  aeron git:(master) find . -name "gradle*.properties"
# 修改此文件
./gradle/wrapper/gradle-wrapper.properties
./gradle.properties

# 修改./gradle/wrapper/gradle-wrapper.properties
➜  aeron git:(master) vim ./gradle/wrapper/gradle-wrapper.properties
# 将distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip
# 修改为distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.1.1-all.zip
# 最终示例
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.1.1-all.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

修改build.gradle:

# 编辑修改build.gradle
➜  aeron git:(master) ✗ vim build.gradle
# 找到repositories进行修改
# 修改后示例
    repositories {
        // mavenLocal()
        // mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } //gradle-plugin
        maven { url 'https://maven.aliyun.com/repository/google' } //google
        maven { url 'https://maven.aliyun.com/repository/public' } //public
        maven { url 'https://maven.aliyun.com/repository/jcenter'} //jcenter
    }

然后执行:

./cppbuild/cppbuild

编译执行完成示例:

……
[ 99%] Built target archiveTest
[100%] Linking CXX executable ../../../../binaries/archiveTestW
[100%] Built target archiveTestW
Test project /Users/destiny/code/aeron/cppbuild/Release
        Start   1: clientConductorTest
  1/130 Test   #1: clientConductorTest ........................   Passed    0.87 sec
        Start   2: publicationTest
  2/130 Test   #2: publicationTest ............................   Passed    0.28 sec
        Start   3: exclusivePublicationTest
  3/130 Test   #3: exclusivePublicationTest ...................   Passed    0.56 sec
        Start   4: imageTest
  4/130 Test   #4: imageTest ..................................   Passed    0.29 sec
        Start   5: fragmentAssemblerTest
  5/130 Test   #5: fragmentAssemblerTest ......................   Passed    0.30 sec
        Start   6: imageFragmentAssemblerTest
  6/130 Test   #6: imageFragmentAssemblerTest .................   Passed    0.28 sec
        Start   7: controlledFragmentAssemblerTest
  7/130 Test   #7: controlledFragmentAssemblerTest ............   Passed    0.27 sec
        Start   8: imageControlledFragmentAssemblerTest
  8/130 Test   #8: imageControlledFragmentAssemblerTest .......   Passed    0.80 sec
        Start   9: commandTest
  9/130 Test   #9: commandTest ................................   Passed    0.31 sec
        Start  10: utilTest
 10/130 Test  #10: utilTest ...................................   Passed    0.28 sec
        Start  11: memoryMappedFileTest
 11/130 Test  #11: memoryMappedFileTest .......................   Passed    0.27 sec
        Start  12: broadcastReceiverTest
 12/130 Test  #12: broadcastReceiverTest ......................   Passed    0.27 sec
        Start  13: broadcastTransmitterTest
 13/130 Test  #13: broadcastTransmitterTest ...................   Passed    0.28 sec
        Start  14: concurrentTest
 14/130 Test  #14: concurrentTest .............................   Passed    1.21 sec
        Start  15: countersManagerTest
 15/130 Test  #15: countersManagerTest ........................   Passed    0.28 sec
        Start  16: termReaderTest
 16/130 Test  #16: termReaderTest .............................   Passed    0.28 sec
        Start  17: termBlockScannerTest
 17/130 Test  #17: termBlockScannerTest .......................   Passed    0.26 sec
        Start  18: termGapScannerTest
 18/130 Test  #18: termGapScannerTest .........................   Passed    0.55 sec
        Start  19: termScannerTest
 19/130 Test  #19: termScannerTest ............................   Passed    0.27 sec
        Start  20: manyToOneRingBufferTest
 20/130 Test  #20: manyToOneRingBufferTest ....................   Passed    1.97 sec
        Start  21: distinctErrorLogTest
 21/130 Test  #21: distinctErrorLogTest .......................   Passed    0.27 sec
        Start  22: errorLogReaderTest
 22/130 Test  #22: errorLogReaderTest .........................   Passed    0.30 sec
        Start  23: oneToOneRingBufferTest
 23/130 Test  #23: oneToOneRingBufferTest .....................   Passed    0.95 sec
        Start  24: channelUriStringBuilderTest
 24/130 Test  #24: channelUriStringBuilderTest ................   Passed    0.26 sec
        Start  25: channelUriTest
 25/130 Test  #25: channelUriTest .............................   Passed    0.27 sec
        Start  26: cppSystemTest
 26/130 Test  #26: cppSystemTest ..............................   Passed    0.77 sec
        Start  27: bufferBuilderTest
 27/130 Test  #27: bufferBuilderTest ..........................   Passed    0.27 sec
        Start  28: atomicArrayUpdaterTest
 28/130 Test  #28: atomicArrayUpdaterTest .....................   Passed   16.09 sec
        Start  29: array_to_ptr_hash_map_test
 29/130 Test  #29: array_to_ptr_hash_map_test .................   Passed    0.53 sec
        Start  30: int64_to_ptr_hash_map_test
 30/130 Test  #30: int64_to_ptr_hash_map_test .................   Passed    0.27 sec
        Start  31: int64_counter_map_test
 31/130 Test  #31: int64_counter_map_test .....................   Passed    0.26 sec
        Start  32: int64_to_tagged_ptr_hash_map_test
 32/130 Test  #32: int64_to_tagged_ptr_hash_map_test ..........   Passed    0.27 sec
        Start  33: str_to_ptr_hash_map_test
 33/130 Test  #33: str_to_ptr_hash_map_test ...................   Passed    0.27 sec
        Start  34: bit_set_test
 34/130 Test  #34: bit_set_test ...............................   Passed    0.36 sec
        Start  35: atomic_test
 35/130 Test  #35: atomic_test ................................   Passed    0.27 sec
        Start  36: spsc_rb_test
 36/130 Test  #36: spsc_rb_test ...............................   Passed    1.58 sec
        Start  37: mpsc_rb_test
 37/130 Test  #37: mpsc_rb_test ...............................   Passed    4.37 sec
        Start  38: broadcast_receiver_test
 38/130 Test  #38: broadcast_receiver_test ....................   Passed    0.27 sec
        Start  39: broadcast_transmitter_test
 39/130 Test  #39: broadcast_transmitter_test .................   Passed    0.27 sec
        Start  40: distinct_error_log_test
 40/130 Test  #40: distinct_error_log_test ....................   Passed    1.43 sec
        Start  41: spsc_concurrent_array_queue_test
 41/130 Test  #41: spsc_concurrent_array_queue_test ...........   Passed    1.19 sec
        Start  42: mpsc_concurrent_array_queue_test
 42/130 Test  #42: mpsc_concurrent_array_queue_test ...........   Passed    3.25 sec
        Start  43: counters_test
 43/130 Test  #43: counters_test ..............................   Passed    0.35 sec
        Start  44: client_conductor_test
 44/130 Test  #44: client_conductor_test ......................   Passed    0.32 sec
        Start  45: publication_test
 45/130 Test  #45: publication_test ...........................   Passed    0.37 sec
        Start  46: subscription_test
 46/130 Test  #46: subscription_test ..........................   Passed    0.27 sec
        Start  47: image_test
 47/130 Test  #47: image_test .................................   Passed    0.33 sec
        Start  48: fragment_assembler_test
 48/130 Test  #48: fragment_assembler_test ....................   Passed    0.27 sec
        Start  49: image_fragment_assembler_test
 49/130 Test  #49: image_fragment_assembler_test ..............   Passed    0.26 sec
        Start  50: controlled_fragment_assembler_test
 50/130 Test  #50: controlled_fragment_assembler_test .........   Passed    0.33 sec
        Start  51: controlled_image_fragment_assembler_test
 51/130 Test  #51: controlled_image_fragment_assembler_test ...   Passed    0.27 sec
        Start  52: aeron_fileutil_test
 52/130 Test  #52: aeron_fileutil_test ........................   Passed    0.29 sec
        Start  53: uri_test
 53/130 Test  #53: uri_test ...................................   Passed    0.27 sec
        Start  54: version_test
 54/130 Test  #54: version_test ...............................   Passed    0.27 sec
        Start  55: bitutil_test
 55/130 Test  #55: bitutil_test ...............................   Passed    0.27 sec
        Start  56: deque_test
 56/130 Test  #56: deque_test .................................   Passed    0.27 sec
        Start  57: fileutil_test
 57/130 Test  #57: fileutil_test ..............................   Passed    0.29 sec
        Start  58: math_test
 58/130 Test  #58: math_test ..................................   Passed    0.27 sec
        Start  59: strutil_test
 59/130 Test  #59: strutil_test ...............................   Passed    0.65 sec
        Start  60: error_test
 60/130 Test  #60: error_test .................................   Passed    0.31 sec
        Start  61: netutil_test
 61/130 Test  #61: netutil_test ...............................   Passed    0.28 sec
        Start  62: symbol_table_test
 62/130 Test  #62: symbol_table_test ..........................   Passed    0.28 sec
        Start  63: http_util_test
 63/130 Test  #63: http_util_test .............................   Passed    0.27 sec
        Start  64: systemTestW
 64/130 Test  #64: systemTestW ................................   Passed    0.82 sec
        Start  65: systemTest
 65/130 Test  #65: systemTest .................................   Passed    0.80 sec
        Start  66: pubSubTestW
 66/130 Test  #66: pubSubTestW ................................   Passed   10.06 sec
        Start  67: pubSubTest
 67/130 Test  #67: pubSubTest .................................   Passed   10.14 sec
        Start  68: countersTestW
 68/130 Test  #68: countersTestW ..............................   Passed    0.71 sec
        Start  69: countersTest
 69/130 Test  #69: countersTest ...............................   Passed    0.68 sec
        Start  70: imagePollTestW
 70/130 Test  #70: imagePollTestW .............................   Passed    1.33 sec
        Start  71: imagePollTest
 71/130 Test  #71: imagePollTest ..............................   Passed    1.39 sec
        Start  72: localAddressesW
 72/130 Test  #72: localAddressesW ............................   Passed    0.67 sec
        Start  73: localAddresses
 73/130 Test  #73: localAddresses .............................   Passed    0.93 sec
        Start  74: multiDestinationCastW
 74/130 Test  #74: multiDestinationCastW ......................   Passed    2.00 sec
        Start  75: multiDestinationCast
 75/130 Test  #75: multiDestinationCast .......................   Passed    2.24 sec
        Start  76: livenessTimeoutTestW
 76/130 Test  #76: livenessTimeoutTestW .......................   Passed    1.00 sec
        Start  77: livenessTimeoutTest
 77/130 Test  #77: livenessTimeoutTest ........................   Passed    1.06 sec
        Start  78: responseChannelsTestW
 78/130 Test  #78: responseChannelsTestW ......................   Passed    0.71 sec
        Start  79: responseChannelsTest
 79/130 Test  #79: responseChannelsTest .......................   Passed    0.73 sec
        Start  80: exceptionsTestW
 80/130 Test  #80: exceptionsTestW ............................   Passed    0.26 sec
        Start  81: channelUriStringBuilderTestW
 81/130 Test  #81: channelUriStringBuilderTestW ...............   Passed    0.29 sec
        Start  82: fragmentAssemblerTestW
 82/130 Test  #82: fragmentAssemblerTestW .....................   Passed    0.28 sec
        Start  83: imageFragmentAssemblerTestW
 83/130 Test  #83: imageFragmentAssemblerTestW ................   Passed    0.27 sec
        Start  84: controlledFragmentAssemblerTestW
 84/130 Test  #84: controlledFragmentAssemblerTestW ...........   Passed    0.29 sec
        Start  85: imageControlledFragmentAssemblerTestW
 85/130 Test  #85: imageControlledFragmentAssemblerTestW ......   Passed    0.40 sec
        Start  86: counters_manager_test
 86/130 Test  #86: counters_manager_test ......................   Passed    0.26 sec
        Start  87: driver_conductor_ipc_test
 87/130 Test  #87: driver_conductor_ipc_test ..................   Passed    1.09 sec
        Start  88: driver_conductor_network_test
 88/130 Test  #88: driver_conductor_network_test ..............   Passed    2.13 sec
        Start  89: driver_conductor_pub_sub_test
 89/130 Test  #89: driver_conductor_pub_sub_test ..............   Passed    3.50 sec
        Start  90: driver_conductor_spy_test
 90/130 Test  #90: driver_conductor_spy_test ..................   Passed    1.31 sec
        Start  91: driver_conductor_counter_test
 91/130 Test  #91: driver_conductor_counter_test ..............   Passed    0.78 sec
        Start  92: driver_conductor_clock_test
 92/130 Test  #92: driver_conductor_clock_test ................   Passed    0.48 sec
        Start  93: driver_conductor_config_test
 93/130 Test  #93: driver_conductor_config_test ...............   Passed    0.54 sec
        Start  94: driver_conductor_subscribable_test
 94/130 Test  #94: driver_conductor_subscribable_test .........   Passed    0.65 sec
        Start  95: driver_uri_test
 95/130 Test  #95: driver_uri_test ............................   Passed    1.88 sec
        Start  96: udp_channel_test
 96/130 Test  #96: udp_channel_test ...........................   Passed    0.28 sec
        Start  97: term_scanner_test
 97/130 Test  #97: term_scanner_test ..........................   Passed    0.27 sec
        Start  98: loss_detector_test
 98/130 Test  #98: loss_detector_test .........................   Passed    0.26 sec
        Start  99: retransmit_handler_test
 99/130 Test  #99: retransmit_handler_test ....................   Passed    0.38 sec
        Start 100: loss_reporter_test
100/130 Test #100: loss_reporter_test .........................   Passed    0.27 sec
        Start 101: logbuffer_unblocker
101/130 Test #101: logbuffer_unblocker ........................   Passed    0.26 sec
        Start 102: term_gap_filler_test
102/130 Test #102: term_gap_filler_test .......................   Passed    0.28 sec
        Start 103: parse_util_test
103/130 Test #103: parse_util_test ............................   Passed    0.28 sec
        Start 104: properties_test
104/130 Test #104: properties_test ............................   Passed    0.27 sec
        Start 105: driver_configuration_test
105/130 Test #105: driver_configuration_test ..................   Passed    0.52 sec
        Start 106: driver_agent_test
106/130 Test #106: driver_agent_test ..........................   Passed    4.76 sec
        Start 107: udp_channel_transport_loss_test
107/130 Test #107: udp_channel_transport_loss_test ............   Passed    0.55 sec
        Start 108: flow_control_test
108/130 Test #108: flow_control_test ..........................   Passed    1.67 sec
        Start 109: name_resolver_test
109/130 Test #109: name_resolver_test .........................   Passed    3.38 sec
        Start 110: name_resolver_cache_test
110/130 Test #110: name_resolver_cache_test ...................   Passed    0.27 sec
        Start 111: data_packet_dispatcher_test
111/130 Test #111: data_packet_dispatcher_test ................   Passed    1.01 sec
        Start 112: publication_image_test
112/130 Test #112: publication_image_test .....................   Passed    0.86 sec
        Start 113: port_manager_test
113/130 Test #113: port_manager_test ..........................   Passed    0.37 sec
        Start 114: c_terminate_test
114/130 Test #114: c_terminate_test ...........................   Passed    0.50 sec
        Start 115: c_system_test
115/130 Test #115: c_system_test ..............................   Passed   16.57 sec
        Start 116: c_multi_destination_test
116/130 Test #116: c_multi_destination_test ...................   Passed    1.52 sec
        Start 117: c_local_addresses_test
117/130 Test #117: c_local_addresses_test .....................   Passed    1.28 sec
        Start 118: c_errors_test
118/130 Test #118: c_errors_test ..............................   Passed    7.28 sec
        Start 119: c_cnc_test
119/130 Test #119: c_cnc_test .................................   Passed    1.75 sec
        Start 120: congestion_control_test
120/130 Test #120: congestion_control_test ....................   Passed    1.04 sec
        Start 121: ipc_publication_test
121/130 Test #121: ipc_publication_test .......................   Passed    0.60 sec
        Start 122: network_publication_test
122/130 Test #122: network_publication_test ...................   Passed    0.64 sec
        Start 123: timestamps_test_recvmmsg
123/130 Test #123: timestamps_test_recvmmsg ...................   Passed    1.46 sec
        Start 124: timestamps_test_recvmsg
124/130 Test #124: timestamps_test_recvmsg ....................   Passed    1.49 sec
        Start 125: position_test
125/130 Test #125: position_test ..............................   Passed    0.26 sec
        Start 126: driver_context_config_test
126/130 Test #126: driver_context_config_test .................   Passed    1.67 sec
        Start 127: java_system_tests_c_media_driver
127/130 Test #127: java_system_tests_c_media_driver ...........   Passed  242.70 sec
        Start 128: archiveTest
128/130 Test #128: archiveTest ................................   Passed   15.00 sec
        Start 129: archiveTestW
129/130 Test #129: archiveTestW ...............................   Passed   13.82 sec
        Start 130: aeronArchiveVersionTest
130/130 Test #130: aeronArchiveVersionTest ....................   Passed    0.26 sec

100% tests passed, 0 tests failed out of 130

Total Test time (real) = 423.66 sec

如果编译构建不容易的情况下,最后看到全部Passed, 会有一种成功的喜悦😁😁😁

最后:运行Aeron's Media Driver(依赖此环境即可互相通信)

目录:/cppbuild/Release/binaries

./aeronmd -Daeron_print_configuration=true


# 运行示例
➜  binaries git:(master) ✗ ./aeronmd -Daeron_print_configuration=true
aeron_driver_context_t {
    cnc_version=0.2.0
    aeron_dir=/var/folders/zt/ws95snks5vx8wc80dw_4plhc0000gn/T/aeron-destiny
    driver_timeout_ms=10000
    print_configuration_on_start=1
    dirs_delete_on_start=0
    dirs_delete_on_shutdown=0
    warn_if_dirs_exists=0
    term_buffer_sparse_file=0
    perform_storage_checks=1
    spies_simulate_connection=0
    reliable_stream=1
    tether_subscriptions=1
    rejoin_stream=1
    receiver_group_consideration=2
    to_driver_buffer_length=1049344
    to_clients_buffer_length=1048704
    counters_values_buffer_length=1048576
    error_buffer_length=1048576
    timer_interval_ns=1000000000
    client_liveness_timeout_ns=10000000000
    image_liveness_timeout_ns=10000000000
    publication_unblock_timeout_ns=15000000000
    publication_connection_timeout_ns=5000000000
    publication_linger_timeout_ns=5000000000
    untethered_window_limit_timeout_ns=5000000000
    untethered_resting_timeout_ns=10000000000
    retransmit_unicast_delay_ns=0
    retransmit_unicast_linger_ns=10000000
    nak_unicast_delay_ns=100000
    nak_unicast_retry_delay_ratio=100
    nak_multicast_max_backoff_ns=10000000
    nak_multicast_group_size=10
    status_message_timeout_ns=200000000
    counter_free_to_reuse_ns=1000000000
    conductor_cycle_threshold_ns=1000000000
    sender_cycle_threshold_ns=1000000000
    receiver_cycle_threshold_ns=1000000000
    name_resolver_threshold_ns=5000000000
    term_buffer_length=16777216
    ipc_term_buffer_length=67108864
    publication_window_length=0
    ipc_publication_window_length=0
    initial_window_length=131072
    socket_sndbuf_length=0
    socket_rcvbuf_length=131072
    multicast_ttl=0
    mtu_length=1408
    ipc_mtu_length=1408
    file_page_size=4096
    low_file_store_warning_threshold=167772160
    publication_reserved_session_id_low=-1
    publication_reserved_session_id_high=1000
    loss_report_length=1048576
    send_to_sm_poll_ratio=6
    receiver_io_vector_capacity=2
    sender_io_vector_capacity=2
    network_publication_max_messages_per_send=2
    resource_free_limit=10
    conductor_cpu_affinity_no=-1
    receiver_cpu_affinity_no=-1
    sender_cpu_affinity_no=-1
    epoch_clock=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_epoch_clock)
    nano_clock=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_nano_clock)
    threading_mode=DEDICATED
    agent_on_start_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_set_thread_affinity_on_start)
    agent_on_start_state=0x7fb9b5008800
    conductor_idle_strategy_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_idle_strategy_backoff_idle)
    conductor_idle_strategy_init_args=0x0
    sender_idle_strategy_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_idle_strategy_backoff_idle)
    sender_idle_strategy_init_args=0x0
    receiver_idle_strategy_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_idle_strategy_backoff_idle)
    receiver_idle_strategy_init_args=0x0
    shared_network_idle_strategy_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_idle_strategy_backoff_idle)
    shared_network_idle_strategy_init_args=0x0
    shared_idle_strategy_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_idle_strategy_backoff_idle)
    shared_idle_strategy_init_args=0x0
    unicast_flow_control_supplier_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_unicast_flow_control_strategy_supplier)
    multicast_flow_control_supplier_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_max_multicast_flow_control_strategy_supplier)
    receiver_group_tag.is_present=0
    receiver_group_tag.value=100
    flow_control.group_tag=-1
    flow_control.group_min_size=0
    flow_control_receiver_timeout_ns=5000000000
    congestion_control_supplier_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_congestion_control_default_strategy_supplier)
    usable_fs_space_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_usable_fs_space)
    termination_validator_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_driver_termination_validator_default_deny)
    termination_validator_state=0x0
    termination_hook_func=(/Users/destiny/code/aeron/cppbuild/Release/binaries/aeronmd:termination_hook)
    termination_hook_state=0x0
    name_resolver_supplier_func=(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_default_name_resolver_supplier)
    name_resolver_init_args=
    resolver_name=
    resolver_interface=
    resolver_bootstrap_neighbor=
    re_resolution_check_interval_ns=1000000000
    sender_wildcard_port_range="0 0"
    receiver_wildcard_port_range="0 0"
    udp_channel_transport_bindings.media=default,0x104971fe0(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_udp_channel_transport_bindings_default)
    conductor_udp_channel_transport_bindings.media=default,0x104971fe0(/Users/destiny/code/aeron/cppbuild/Release/lib/libaeron_driver.dylib:aeron_udp_channel_transport_bindings_default)
}

总结

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>