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

洛阳便宜网站建设公司陕西省建设厅网站怎么查焊工证

洛阳便宜网站建设公司,陕西省建设厅网站怎么查焊工证,最专业的营销网站建设公司哪家好,营销推广软文案例一.BRPC介绍 BRPC百度开源的一个rpc框架#xff0c;它具有以下特性#xff1a; 基于protobuf接口的RPC框架#xff0c;也提供json等其他数据格式的支持囊括baidu内部所有RPC协议#xff0c;支持多种第三方协议模块化设计#xff0c;层次清晰#xff0c;很容易添加自定义…一.BRPC介绍 BRPC百度开源的一个rpc框架它具有以下特性 基于protobuf接口的RPC框架也提供json等其他数据格式的支持囊括baidu内部所有RPC协议支持多种第三方协议模块化设计层次清晰很容易添加自定义协议全面的服务发现、负载均衡、组合访问支持可视化的内置服务和调试工具性能上领跑目前其他所有RPC产品 支持的协议 baidu_std默认 hulu-pbrpc协议 nova-pbrpc协议 public/pbrpc协议 sofa-pbrpc协议 UB协议 ubrpc协议 HTTP协议 HTTPS协议 凤巢ITP协议 memcache协议 redis协议 mongo协议 hadoop rpc协议 任何使用brpc::Server的进程都能用HTTP方式直接访问server本身的端口返回内容为各种内置服务。 通过浏览器直接访问图形界面更加直观否则用curl方式访问文本格式。 brpc支持一个端口监听多种协议如可以同时监听baidu_std和http协议发来的请求。 详细文档参见 https://github.com/brpc/brpc 二.Linux下安装brpc 1. 编译环境安装gcc-4.8.2 1先安装gcc-c.x86_64 yum install gcc-c.x86_642编译安装gcc-4.8.2 下载gcc-4.8.2-with-all-requires.tar 指定gcc安装路径 --prefix/usr/local/gcc4.8.2在./configure -enable-threadsposix -disable-checking -disable-mutilib -enable-languagesc,c 之后增加一个参数 --prefix/usr/local/gcc4.8.2 执行 install.sh (执行两遍第一遍解压第二遍编译安装编译时间较长请耐心等待) 3更新依赖库 添加 /usr/local/gcc4.8.2/lib、 /usr/local/gcc4.8.2/lib64 至 /etc/ld.so.conf 在/etc/ld.so.conf文件末尾增加一行 “/usr/local/lib”保存之后执行ldconfig。 注意每个路径独占一行。执行 ldconfig ln -sf /usr/local/gcc4.8.2/bin/gcc /usr/bin/gcc ln -sf /usr/local/gcc4.8.2/bin/g /usr/bin/g4安装 libstdc 下载 libstdc±4.8.2-1.x86_64.rpm rpm -ivh libstdc-4.8.2-1.x86_64.rpm2.安装brpc 1依赖包安装 yum install libssl-dev realpath libgflags-dev libprotobuf-dev libprotoc-dev \ protobuf-compiler libgtest-dev libleveldb-dev libsnappy-dev \gperf libgoogle-perftools-dev2下载brpc源代码编译安装 git clone https://github.com/brpc/brpc.git cd ./brpc/ sh config_brpc.sh --headers/usr/include --libs/usr/lib --nodebugsymbols make3把brpc的include和lib文件放到系统目录下ldconfig下方便调用。 三. 小示例example回显程序 提供两个rpc处理rpc和http格式的请求。 echo.proto文件 syntaxproto2; package example;option cc_generic_services true;message EchoRequest {required string message 1; };message EchoResponse {required string message 1; };message EchoHttpRequest {};message EchoHttpResponse {};service EchoService {rpc Echo(EchoRequest) returns (EchoResponse);rpc EchoHttp(EchoHttpRequest) returns (EchoHttpResponse); };server.cpp // Copyright (c) 2014 Baidu, Inc. // // Licensed under the Apache License, Version 2.0 (the License); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an AS IS BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.// A server to receive EchoRequest and send back EchoResponse. #include iostream #include gflags/gflags.h #include butil/logging.h #include brpc/server.h #include echo.pb.husing namespace std;DEFINE_bool(echo_attachment, true, Echo attachment as well); DEFINE_int32(port, 8000, TCP Port of this server); DEFINE_int32(idle_timeout_s, -1, Connection will be closed if there is no read/write operations during the last idle_timeout_s); DEFINE_int32(logoff_ms, 2000, Maximum duration of servers LOGOFF state (waiting for client to close connection before server stops));// Your implementation of example::EchoService // Notice that implementing brpc::Describable grants the ability to put // additional information in /status. namespace example { class EchoServiceImpl : public EchoService { public:EchoServiceImpl() {};virtual ~EchoServiceImpl() {};virtual void Echo(google::protobuf::RpcController* cntl_base,const EchoRequest* request,EchoResponse* response,google::protobuf::Closure* done) {// This object helps you to call done-Run() in RAII style. If you need// to process the request asynchronously, pass done_guard.release().brpc::ClosureGuard done_guard(done);brpc::Controller* cntl static_castbrpc::Controller*(cntl_base);// The purpose of following logs is to help you to understand// how clients interact with servers more intuitively. You should // remove these logs in performance-sensitive servers.LOG(INFO) Received request[log_id cntl-log_id() ] from cntl-remote_side() to cntl-local_side() : request-message() (attached cntl-request_attachment() );// Fill response.response-set_message(request-message());if(cntl-request_protocol() brpc::PROTOCOL_HTTP) {const brpc::HttpHeader http_request cntl-http_request();const std::string query_data http_request.uri().query();LOG(INFO) Http query data: query_data;}// You can compress the response by setting Controller, but be aware// that compression may be costly, evaluate before turning on.// cntl-set_response_compress_type(brpc::COMPRESS_TYPE_GZIP);if (FLAGS_echo_attachment) {// Set attachment which is wired to network directly instead of// being serialized into protobuf messages.cntl-response_attachment().append(cntl-request_attachment());}}virtual void EchoHttp(google::protobuf::RpcController* cntl_base,const EchoHttpRequest* request,EchoHttpResponse* response,google::protobuf::Closure* done) {// This object helps you to call done-Run() in RAII style. If you need// to process the request asynchronously, pass done_guard.release().brpc::ClosureGuard done_guard(done);brpc::Controller* cntl static_castbrpc::Controller*(cntl_base);const brpc::HttpHeader http_request cntl-http_request();const std::string query_data http_request.uri().query();LOG(INFO) Http query data: query_data;// You can compress the response by setting Controller, but be aware// that compression may be costly, evaluate before turning on.// cntl-set_response_compress_type(brpc::COMPRESS_TYPE_GZIP);if (FLAGS_echo_attachment) {// Set attachment which is wired to network directly instead of// being serialized into protobuf messages.cntl-response_attachment().append(cntl-request_attachment());}} }; } // namespace exampleint main(int argc, char* argv[]) {// Parse gflags. We recommend you to use gflags as well.google::ParseCommandLineFlags(argc, argv, true);// Generally you only need one Server.brpc::Server server;// Instance of your service.example::EchoServiceImpl echo_service_impl;// Add the service into server. Notice the second parameter, because the// service is put on stack, we dont want server to delete it, otherwise// use brpc::SERVER_OWNS_SERVICE.if (server.AddService(echo_service_impl, brpc::SERVER_DOESNT_OWN_SERVICE,/echo1 Echo,/echo2 EchoHttp) ! 0) {LOG(ERROR) Fail to add service;return -1;}// Start the server.brpc::ServerOptions options;options.idle_timeout_sec FLAGS_idle_timeout_s;if (server.Start(FLAGS_port, options) ! 0) {LOG(ERROR) Fail to start EchoServer;return -1;}// Wait until Ctrl-C is pressed, then Stop() and Join() the server.server.RunUntilAskedToQuit();cout Server Stopped endl;return 0; } client.cpp #include gflags/gflags.h #include butil/logging.h #include butil/time.h #include brpc/channel.h #include echo.pb.hDEFINE_string(attachment, foo, Carry this along with requests); DEFINE_string(protocol, baidu_std, Protocol type. Defined in src/brpc/options.proto); DEFINE_string(connection_type, , Connection type. Available values: single, pooled, short); DEFINE_string(server, 0.0.0.0:8000, IP Address of server); DEFINE_string(load_balancer, , The algorithm for load balancing); DEFINE_int32(timeout_ms, 100, RPC timeout in milliseconds); DEFINE_int32(max_retry, 3, Max retries(not including the first RPC)); DEFINE_int32(interval_ms, 1000, Milliseconds between consecutive requests); DEFINE_string(http_content_type, application/json, Content type of http request);int main(int argc, char* argv[]) {// Parse gflags. We recommend you to use gflags as well.google::ParseCommandLineFlags(argc, argv, true);// A Channel represents a communication line to a Server. Notice that // Channel is thread-safe and can be shared by all threads in your program.brpc::Channel channel;// Initialize the channel, NULL means using default options.brpc::ChannelOptions options;options.protocol FLAGS_protocol;options.connection_type FLAGS_connection_type;options.timeout_ms FLAGS_timeout_ms/*milliseconds*/;options.max_retry FLAGS_max_retry;if (channel.Init(FLAGS_server.c_str(), FLAGS_load_balancer.c_str(), options) ! 0) {LOG(ERROR) Fail to initialize channel;return -1;}// Normally, you should not call a Channel directly, but instead construct// a stub Service wrapping it. stub can be shared by all threads as well.example::EchoService_Stub stub(channel);// Send a request and wait for the response every 1 second.int log_id 0;while (!brpc::IsAskedToQuit()) {// We will receive response synchronously, safe to put variables// on stack.example::EchoRequest request;example::EchoResponse response;brpc::Controller cntl;request.set_message(hello world);cntl.set_log_id(log_id ); // set by userif (FLAGS_protocol ! http FLAGS_protocol ! h2c) {// Set attachment which is wired to network directly instead of // being serialized into protobuf messages.cntl.request_attachment().append(FLAGS_attachment);} else {cntl.http_request().set_content_type(FLAGS_http_content_type);}// Because done(last parameter) is NULL, this function waits until// the response comes back or error occurs(including timedout).stub.Echo(cntl, request, response, NULL);if (!cntl.Failed()) {LOG(INFO) Received response from cntl.remote_side() to cntl.local_side() : response.message() (attached cntl.response_attachment() ) latency cntl.latency_us() us;} else {LOG(WARNING) cntl.ErrorText();}usleep(FLAGS_interval_ms * 1000L);}LOG(INFO) EchoClient is going to quit;return 0; }本程序用blade构建编译程序BUILD文件 cc_binary(name echo_server,srcs server.cpp,deps [:echo_proto,#brpc,#gflags,] )cc_binary(name echo_client,srcs client.cpp,deps [:echo_proto,#brpc,#gflags,] )proto_library(name echo_proto,srcs echo.proto, )运行 http请求curl “http://10.130.134.24:8000/echo2?a1b2” -d ‘{“message”:“hello”}’ 该方法是post如果用get需要设置请求头为application/proto。 写了个基于brpc框架的小demo地址是 brpc demo小程序 四. brpc使用采坑 服务卡死状态健康检查 brpc在服务卡死的状态下比如死锁用tcp健康检查可能无法检查出服务的健康状态。必须用http方式检查可以检查brpc的web界面。
http://www.hkea.cn/news/14260090/

相关文章:

  • 竭诚网络网站建设公司wordpress内容爬取
  • 没有网站可以做百度直通车吗wordpress修改+id
  • 中怎么做网站上下载图片的功能设计说明书怎么写
  • 佛山如何建立网站鞍山市残疾人网站开发
  • 十大免费ppt网站下载app软件开发专业的就业方向
  • html5网站设计搜易网提供的技术服务
  • 网架生产企业网站目录优化
  • 做一个网站服务器网站主服务器ip地址
  • 地方网站推广国内装修公司排名前十强
  • 做门户网站需要准备什么南县网站建设推荐
  • 网站优化外链怎么做wordpress 分享到微信二维码
  • 网站白名单 是什么网站建设与管理必修
  • 宿迁网站建设网站界面设计如何实现功能美与形式美的统一
  • 长春网站建设优化wordpress侧边联系方式
  • 男女做暧暧观看免费网站网站建设管理调研提纲
  • 开源的公司网站网站建站建设价格
  • 网站建设佰首选金手指三事件营销名词解释
  • ps做游戏下载网站有哪些内容nas服务器可以做网站吗
  • 可以做照片书的网站做ppt的软件
  • 国外做外汇网站交流高端的丹阳网站建设
  • 阳江城乡建设部网站首页python做调查问卷网站
  • 苏州网站排名优化报价wordpress响应式修改
  • 免费网站ppt模板下载手机怎么做销售网站
  • 庞各庄网站建设公司手机站点cn
  • 网站自动跳转怎么办1核1g WordPress 华为云
  • 响应式网站怎么做无缝轮播图打开wordpress标题显示
  • 做电视网站需要多大的服务器做彩票网站犯法吗
  • 网站的视频深圳市房地产信息系统平台
  • 禁止指定ip访问网站网站建设开发费用怎样入账
  • 快速建站服务器网站后台排版工具