当前位置: 首页 > news >正文

海南建设大厅网站网站如何被谷歌收录

海南建设大厅网站,网站如何被谷歌收录,手机网站如何站点管理,深圳软件定制公司有哪些目录 介绍安装使用 介绍 brpc 是用 c语言编写的工业级 RPC 框架#xff0c;常用于搜索、存储、机器学习、广告、推荐等高性能系统 安装 先安装依赖 apt-get install -y git g make libssl-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev libgflags-d… 目录 介绍安装使用 介绍 brpc 是用 c语言编写的工业级 RPC 框架常用于搜索、存储、机器学习、广告、推荐等高性能系统 安装 先安装依赖 apt-get install -y git g make libssl-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev libgflags-dev 安装brpc 去github上下载https://github.com/apache/brpc.git 依次执行 unzip brpc-master.zip cd brpc-master mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX/usr .. cmake --build . -j6 make sudo make install 使用 示例: main.proto文件 syntaxproto3;package example;option cc_generic_services true; // 这个选项的功能其实就是 生成框架代码的时候, 内部包含了rpc相关接口的内容message EchoRequest{string message 1; }message EchoResponse{string message 1; }//这是回显服务器的名称 service EchoService{// EchoRequest参数 EchoResponse返回类型rpc Echo(EchoRequest) returns (EchoResponse); // 定义rpc接口 }client.cc文件 #include brpc/channel.h #include thread #include main.pb.h//brpc是同步调用还是异步调用, 是客户端来决定的 -- 明天ai问一下void callback(brpc::Controller* cntl, ::example::EchoResponse* response){std::unique_ptrbrpc::Controller cntl_guard(cntl);std::unique_ptrexample::EchoResponse resp_guard(response);if (cntl-Failed() true) {std::cout Rpc调用失败: cntl-ErrorText() std::endl;return;}std::cout 收到响应: response-message() std::endl; }int main(int argc, char* argv[]) {//1. 构造Channel信道, 连接服务器brpc::ChannelOptions options;options.connect_timeout_ms -1; //连接等待超时时间, -1表示一直等待options.timeout_ms -1; //rpc请求等待超时时间, -1表示一直等待options.protocol baidu_std; //序列化协议, 默认使用baidu_stdbrpc::Channel channel; //为什么要有这个类? 没有这个类就不能进行通信, 理解为管道 int ret channel.Init(127.0.0.1:8080, options); //参数1: 服务器地址 参数2: 客户端连接时的配置if (ret -1) {std::cout 初始化信道失败! \n;return -1;}//2. 构造EchoService_Stub对象, 用于进行rpc调用example::EchoService_Stub stub(channel); //相当于客户端类//3. 进行Rpc调用example::EchoRequest req;req.set_message(你好~比特~!);//这个Controller提供了很多功能, 其中一个就是辨别返回值的成功或失败brpc::Controller* cntl new brpc::Controller();//如果我们不想同步处理, 即不想等待响应, 希望异步, 就要通过Controller设置回调函数//注意一个问题: 可能在处理回调函数的时候如果这个cntl和rsp是栈对象 这个cntlrsp会被释放掉, 如果这个main函数//是一个普通的函数则处理这个回调函数的时候可能这个函数已经结束了, 这个cntlrsp已经被释放掉了这就可能出现错误example::EchoResponse* rsp new example::EchoResponse(); //用于接收返回值的auto clusure google::protobuf::NewCallback(callback, cntl, rsp);stub.Echo(cntl, req, rsp, clusure); //异步调用// stub.Echo(cntl, req, rsp, nullptr); //最后一个参数, 如果是异步调用, 则要传参让服务器设置去run, 我们是同步调用, 所以就不用设置了// if(cntl-Failed() true) {// std::cout Rpc调用失败: cntl-ErrorText() std::endl;// return -1;// }// std::cout 收到响应: rsp-message() std::endl;std::this_thread::sleep_for(std::chrono::seconds(3));return 0; //如果是异步调用, 主函数需要等待, 否则程序可能会直接结束 }server.cc文件 #include brpc/server.h #include butil/logging.h #include main.pb.h//1. 继承与EchoService创建一个子类, 并实现rpc调用的业务功能 class EchoServiceImpl : public example::EchoService{ //EchoService类是远程调用rpc服务的类 - 就是真正进行sum计算的public:// 重写这个虚函数//RpcController: 返回结果是成功或失败 //request客户端的请求 response服务器要构造的响应//Closure: 大格局理解 服务端是异步执行的, 将Response的响应设置完了, 再调用run函数, 告诉服务器可以发给客户端响应了void Echo(google::protobuf::RpcController* controller, const ::example::EchoRequest* request,::example::EchoResponse* response, ::google::protobuf::Closure* done) //至于这个函数是在业务服务器 主线程还是线程池中执行, 我们并不关心{//防止程序员忘记最后调用run函数, 所以用智能指针来管理起来brpc::ClosureGuard rpc_guard(done);std::cout 收到消息: request-message() std::endl;std::string str request-message() --这是响应!!;response-set_message(str);// done-Run() 如果不写上面的guard, 则需要加上这句话} };int main(int argc, char* argv[]) {// 关闭brpc的默认日志输出logging::LoggingSettings settings;settings.logging_dest logging::LoggingDestination::LOG_TO_NONE;logging::InitLogging(settings);//2. 构造服务器对象brpc::Server server;//3. 向服务器对象中, 新增EchoService服务EchoServiceImpl echo_service;int ret server.AddService(echo_service, brpc::ServiceOwnership::SERVER_DOESNT_OWN_SERVICE);if (ret -1){std::cout 添加Rpc服务失败!\n;return -1;}//参数1: 添加服务, 只有你添加了服务, 服务器才能处理你对应的请求, 和路由很像 类型为Service*, EchoServiceImpl是它的子类//参数2: 添加服务失败的时候, 服务器是否会删除该对象 因为echo_service是局部变量, 所以不用去释放//4. 启动服务器brpc::ServerOptions options; //启动服务器时的配置类options.idle_timeout_sec -1; //连接空闲超时时间 - 超时后连接被关闭options.num_threads 1; //io线程数量ret server.Start(8080, options);if (ret -1) {std::cout 启动服务器失败! \n;return -1;}server.RunUntilAskedToQuit(); //服务器一直循环运行return 0; } 先用protoc进行编译: 编译运行:
http://www.hkea.cn/news/14583892/

相关文章:

  • 许昌市建设投资有限公司 网站网站建设 点指成名
  • 请问下网站开发怎么弄wordpress博客内容预览
  • 北仑网站网页建设吴忠市建设局官方网站
  • 平山县建设局网站django做网站怎样
  • 营销型 展示类网站镇江百度网站排名
  • 网站的后台管理个人主页在哪里找
  • 阿里云做网站麻烦吗网站返回404是什么意思
  • 广州在线网站制作公司qq登录wordpress
  • 集团网站福州企业网站建站系统
  • 计算机做网站难吗wordpress读取mysql
  • 电子商务网站建设及推广网站信息更新如何做
  • 工程建设采购有哪些网站大连坐网站
  • 上海网站推广企业暴雪和网易终止合作
  • 如何在阿里云自主建网站优化大师是什么意思
  • 深圳网站建设维护服务100M家用宽带可做网站服务器吗
  • 越南语网站建设淘宝网站做阳光棚多少钱一平米
  • 模板网站没有源代码梁山网站建设电话
  • 承德建设厅网站hexo用wordpress
  • 建设银行江西分行官方网站辣条网站建设书
  • 网站开发内容包括哪些网站建设 壹起航
  • 中移建设 公司 网站献县做网站价格
  • 网站关键词快速排名技术关于网站建设的工作计划
  • 腾讯官方网站做书签网站风格对比信息表
  • 用阿里云服务器做自己购物网站海报模板免费网站
  • 汉中北京网站建设搜索引擎入口官网
  • 做区域分析的地图网站深圳北站设计方案
  • 杭州网站开发工程师美丽深圳微信公众号二维码
  • 网站设计深圳市徐州房产信息网
  • 不良网站举报中心官网个人网站自助建站
  • 网站建设的基本流程包括什么怎么做网站前段