# avalon **Repository Path**: learnhow/avalon ## Basic Information - **Project Name**: avalon - **Description**: AQMP-CPP 多线程库 - **Primary Language**: C/C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-24 - **Last Updated**: 2025-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # avalon 介绍 avalon是一个基于AMQP-CPP开发的高性能c++消息总线,使用libevent作为连接池和网络库。提供服务发布、RPC、消息推送等功能。 ## 编译 #### 第三方库编译 1. libevent ```bash cd 3rd/libevent@2.1.12 mkdir build cd build cmake .. make cp lib/*.a ../../../lib/ ``` 2. AMQP-CPP ```bash cd 3rd/AMQP-CPP@4.3.19 mkdir build cd build cmake .. -DAMQP-CPP_LINUX_TCP=ON cmake --build . cp bin/libamqpcpp.a ../../../lib/ ``` 3. spdlog ```bash cd 3rd/spdlog@1.14.1 mkdir build cd build cmake .. make cp *.a ../../../lib/ ``` #### 编译avalon ```bash cmake -B build cmake --build build ``` ## 快速开始 1. 设置连接参数并启动 ```c++ NetBus *netbus = NetBus::GetInstance(); netbus->setHost("127.0.0.1"); netbus->setPort(5672); netbus->setUsername("guest"); netbus->setPassword("guest"); netbus->setThreadNum(8); netbus->start(); ``` 2. 服务发布 ```c++ // 继承Provider类,实现虚函数received class MyProvider : public Provider {} // 注册服务 MyProvider *provider = new MyProvider(); netbus->addProvider(provider); ``` 3. 消息推送 ```c++ std::string r = "..."; Deliver delos("目标交换机", "目标路由", r.c_str(), r.size(), FLAG::OnlySend); netbus->send(&delos); ``` 4. RPC ```c++ std::string r = "..."; Deliver delsr("目标交换机", "目标路由", r.c_str(), r.size(), FLAG::SendAndReceived); if(netbus->sendAndReceived(&delsr)) { // 处理返回值,从delsr中获取 Reply* reply = delsr.reply(); reply->data; // 返回值 reply->size; // 返回值大小 } ```