protobuf repeated类型的使用 protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。protobuf repeated类型相当于std的vector,可以用来存放N个相同类型的内容,文章将简单介绍protobuf repeated的使用。首先定义一个protobuf结
玩转Protocol Buffers Protocol Buffers1. 人人都爱Protocol Buffers1.1 Protocol Buffers(PB)是什么?Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serial
PowerDesigner之PDM(物理概念模型) 一、PDM概述 PDM(物理数据模型),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库。 PDM中涉及到的基本概念包括:表;列;视图;主键;候选键;外键;存储过程;触发器;索引;完整性检查约束; 以上这些都是数据库的概念,不适合在PowerDesigner里面表述。二、创建PDM 创建PDM有4中方法:使
Oracle 常见命令 (更新) oracle中查看用户权限1.查看所有用户 select * from all_users; -------查看所有的用户 select * from user_users; --------查看当前用户2.查看用户或角色系统权限: select * from user_sys_privs; --------查看当前用户的权限
Linux Socket编程 “一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型
高级I/O复用技术:Epoll的使用及一个完整的C实例 高性能的网络服务器需要同时并发处理大量的客户端,而采用以前的那种对每个连接使用一个分开的线程或进程方法效率不高,因为处理大量客户端的时候,资源的使用及进程上下文的切换将会影响服务器的性能。一个可替代的方法是在一个单一的线程中使用非阻塞的I/O(non-blocking I/O)。 这篇文章主要介绍linux下的epoll(7)方法,其有着良好的就绪事件通知机制。我们将会使用C
Linux下的I/O复用与epoll详解 前言 I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。为什么会是EPOLLselect的缺陷 高并发的核心解决方案是
LINUX下GDB调试 本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令解释示例file 加载被调试的可执行
oracle 数据表死锁解决方法 Oracle oracle 数据表死锁解决方法 Oracle 查询死锁信息的语句: 查看复制到剪贴板打印select a.owner, a.object_name, b.xidusn, b.xidslot, b.xidsqn, b.session_id, b.oracl
深入Protobuf源码-Descriptor、Message、RPC框架 深入Protobuf源码-Descriptor、Message、RPC框架Descriptor框架对非optimize_for为LITE_RUNTIME的proto文件,protobuf编译器会在编译出的Java代码文件末尾添加一个FileDescriptor静态字段以描述该proto文件定义时的所有元数据信息、为每个message对象定义一个Descriptor静态字段以描述该mes
深入Protobuf源码-编码实现 深入Protobuf源码-编码实现基本类型编码在前文有提到消息是一系列的基本类型以及其他消息类型的组合,因而基本类型是probobuf编码实现的基础,这些基本类型有:.proto TypeJava TypeC++ TypeWire Typedoubledoubledouble
深入Protobuf源码-概述、使用以及代码生成实现 概述捣鼓hdfs、yarn、hbase、zookeeper的代码一年多了,是时候整理一下了。在hadoop (2.5.2)中protobuf是节点之间以及客户端和各个节点通信的基础序列化框架(协议),而基于avro和Writable的序列化框架则是这个协议里的payload,因而这一系列的文章打算从protobuf这个框架开始入手(版本2.5.0)。从抽象的角度来说,protobuf框架是
基于Protobuf的通讯库--Poppy简介 背景 Poppy是基于Protocol Buffer的网络通讯解决方案。 众所周知,分布式网络程序对通讯协议的灵活性、容错性、可扩展性、安全性、性能等都有较高的要求,使得其复杂性比单机程序高很多。 最原始的网络程序往往采用自己定义协议,自己编写打包和解包代码的方式进行通讯,繁琐而又容易出错,灵活性和可扩充性也不好。 Proto
Protocol Buffer技术深入理解(C++实例) 这篇Blog仍然是以Google的官方文档为主线,代码实例则完全取自于我们正在开发的一个Demo项目,通过前一段时间的尝试,感觉这种结合的方式比较有利于培训和内部的技术交流。还是那句话,没有最好的,只有最适合的。我想写Blog也是这一道理吧,不同的技术主题可能需要采用不同的风格。好了,还是让我们尽早切入主题吧。 一、生成目标语言代码 下面的命令帮助我们将MyMessage.proto文
epoll使用详解(精髓) epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
OTL 编程 OTL是Oracle 和 ODBC 的模板库,它屏蔽数据库操作的底层,提供数据库连接功能,以标准 C++ 流的方式完成嵌入式 SQL 语句、存储过程的执行和光标操作。 OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库。
linux ftok()函数 系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。ftok原型如下:key_t ftok( char * fname, int id )fname就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽然为int,但是只有8个比特被使用(0-255)。当成功执行的时候,一个key_t值将会被返回,否则 -
configure.ac (configure.in) 目录(?)[+]configure.ac (sometimes also named: configure.in) is an input file for autoconf. It contains tests that check for conditions that are likely to differ on different platforms. The t
configure文件的生成 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可 以象常见的GNU程序一
Configure,Makefile.am, Makefile.in, Makefile文件之间关系 1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根据已