本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
protoc工具生成java代码
到百度网盘下载protoc工具 。链接https://pan.baidu.com/s/1-NIol0rEBsVrS2uIe3A5Tw 提取码 067d
cmd命令 切换到已经下载下来的protoc工具目录 执行如下命令
protoc.exe --java_out=./ .XXX.proto 注:XXX.proto 你的proto文件 如下:
package com.protobuf; ...
protobuf extension
有时需要扩展公共模块的功能,各个子模块实现各自业务逻辑,protobuf 提供了extensions用于处理该场景。
公共协议comm_info.proto
package test;
message CommReq
{
optional int id = 1;
extensions 10000 to 12000; // 预留[10000,12000]用于扩展
...
netty中使用protobuf实现多协议的消息
在我们使用 netty 的过程中,有时候为了高效的传输数据,经常使用 protobuf 进行数据的传输,netty默认情况下为我们实现的 protobuf 的编解码,但是默认的只能实现单个对象的编解码,但是我们在使用 netty 的过程中,可能需要传输的对象有各种各样的,那么该如何实现对protobuf多协议的解码呢?
在 protobuf 中有一种类型的字段叫做 on ...
类似protobuf的自定义数据结构
本部分纯属练手,参考对protobuf的理解,自己实现一套类似的结构处理,达成的目标:任意两个结构的数据都可以通过中间结构互换,如:
struct Person
{
int age;
std::string name;
}per;
struct Student
{
int age;
std::string sex;
std::string ...
基于http的protobuf服务实现
通常webapi实现通过http get/post请求,返回文本型的json,xml等字符串。本文以Tomcat8为web服务器,借助protobuf框架,响应二进制数据。
由于protobuf协议能跨语言,我们可以用java servlet实现服务端,C/C++实现客户端,达到各模块解耦目的。双方需设置ContentType为application/x-protobuf。
1. ...
serialization-protobuf
java : http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html
protobuf 简介:是一种序列化与结构化数据的一种机制,具有跨平台、解析速度快、序列化数据体积小、扩展性高、使用简单的特点
目标:验证protobuf序列化的内存占用量低于Java的直接序列化
java的实现:
publ ...
spring boot 异常处理扩展(返回格式protofuf)
spring boot 提供了统一的异常处理机制,@ControllerAdvice, @ExceptionHandler两个注解,可以处理controller里抛出的异常,不要对每个controller方法进行try catch,如果你使用json或者返回固定的错误页面作为传输数据格式,普通的使用方法即可解决,由于我们服务端使用protobuf与客户端进行交互,每个controller方法的返 ...
Unix下面安装protobuf并生成java对象的步骤
protobuf是google的文件序列化协议,最近在项目中广为使用,unix操作系统里面配置方法如下:
1.从网上任何一个途径下载protobuf-2.6.1.tar.gz
2.运行tar xvf protobuf-2.6.1.tar.gz
3.运行cd protobuf-2.6.1
4.运行./configure CC=clang CXX=clang++ CXXFLAGS='-std=c++1 ...
protobuf C++生成代码中使用自己定义类型参数时的set问题
如果proto结构体的变量是基础变量,比如int、string等等,那么set的时候直接调用set_xxx即可。
如果变量是自定义类型,那么C++的生成代码中,就没有set_xxx函数名,取而代之的是三个函数名:
set_allocated_xxx()
release_xxx()
mutable_xxx()
使用set_allocated_xxx()来设置变量的时候,变量不能是 ...
[UE4]protoc生成的代码编译问题:error LNK2019: unresolved external symbol "public: __cdec
ue4工程编译时,如果只是将protobuf.lib链接进来,不加入protoc生成的代码,那么编译时没有问题的,但是如果加进来了,那么就跪了:
error LNK2019: unresolved external symbol "public: __cdecl 。。。"
之前这个问题没想明白,以为可以通过设置工程来解决这个错误,后来想了想,protoc生成的代码 ...
[cmake 2.x]解析protobuf模版(*.proto)并构建其C++代码
有两种方式,一种是使用cmake自带的FindProtobuf module,这个模块内部集成了生成代码命令的操作,用起来最方便;另外一种是将protoc命令集成到CMakeLists.txt中,这种要麻烦点。
自带的FindProtobuf
方法如下:
使用cmake自带的FindProtobuf解析protobuf
http://www.leoox.com/?p=285
...
protobuf 2.6不再支持文件名通配符
protobuf 2.6之前的版本,同时为多个proto文件生成java或者c++代码时,是支持通配符的,比如
protoc.exe --proto_path=custom_msg --cpp_out=build custom_msg/*.proto
但现在2.6已经不支持这种写法了,要同时指定多个proto文件名,必须追加文件名:
protoc.exe --proto_path ...
跨语言通信方案的比较—Thrift、Protobuf和Avro
thrift由facebook出品,protobuffer由google出品;
下面对比一下这两个的区别。参考:http://zhidao.baidu.com/link?url=yNLBeHhWokfwB677UZHoyv4vLyPOZEEQypUMiX__YIhp5E7UmpvIWTArKPMab32xj5gkRo4a6CXoZ1nxore82kXyOzfXdaRRhOAPynxYmB7
1 ...