rabbitMQ 和 protoBuf 整合
2015-08-24 16:44
369 查看
之前项目中间层和前端,服务器之间数据都是通过doPost方法传递Json,最近看了一下rabbitMQ和protoBuff,觉得很不错,可以取代项目中的数据传递部分。它们的优点我就不介绍了,此处简单整合下,以备不时之需。准备工作:
1、本次实验环境:window 10,eclipse
2、所需文件:
a) protoc.exe
b) protobuf-java-2.4.1.jar (注意两个文件的版本要对应起来,jar可以通过maven添加到项目,此处不过过多赘述。)
c) erlang,下载地址:http://www.erlang.org/download/otp_win32_R15B.exe ,下载好自行安装好
d) RabbitMQ, 下载地址 http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabbitmq-server-3.3.4.exe ,下载好自行安装,安装完成默认是启动的。在cmd下进入安装目录下的sbin文件夹,运行rabbitmq-server start 。如果报node with
name "rabbit" already running on "XXX" 。可以进入window 服务中停止rabbitMQ服务,然后重启即可。
e) rabbitmq-java-client-bin-3.5.4.zip,下载地址 http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.5.4/ ,下载好解压备用准备工作做好后开始写代码。 新建TestProto.proto文件和protoc.exe 放在同一目录下。TestProto.proto文件内容如下:
在cmd环境下进入protoc.exe所在的文件夹下 运行 protoc ./TestProto.proto.proto --java_out=./
运行后进入protoc.exe文件夹,可以发现多了com\test\protobuf\TestProtobuf.java
eclipse 新建Maven项目Rabbit,在pom.xml文件中个添加依赖
在项目根目录新建lib文件夹,把rabbitmq-java-client-bin-3.5.4.zip 中的rabbitmq-client.jar文件拷贝到lib中,然后add to buildpath(在maven中添加时,接口总和手册上的对不上,故手工添加)。把生成的TestProtobuf.java拷贝到项目中,并且新建send类和receive类。项目的组织结构如下图
![](https://img-blog.csdn.net/20150825095842625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
send类如下:
![](https://img-blog.csdn.net/20150825100056606?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
receive类如下:
![](https://img-blog.csdn.net/20150825100203874?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
运行send ,结果如下:
![](https://img-blog.csdn.net/20150825100400317?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
运行receive,结果如下:
![](https://img-blog.csdn.net/20150825102003249?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
为了看的清晰,receive类我放在了myeclipse里运行,这样可以看到发送和接收的过程。
简单的整合完毕。
1、本次实验环境:window 10,eclipse
2、所需文件:
a) protoc.exe
b) protobuf-java-2.4.1.jar (注意两个文件的版本要对应起来,jar可以通过maven添加到项目,此处不过过多赘述。)
c) erlang,下载地址:http://www.erlang.org/download/otp_win32_R15B.exe ,下载好自行安装好
d) RabbitMQ, 下载地址 http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabbitmq-server-3.3.4.exe ,下载好自行安装,安装完成默认是启动的。在cmd下进入安装目录下的sbin文件夹,运行rabbitmq-server start 。如果报node with
name "rabbit" already running on "XXX" 。可以进入window 服务中停止rabbitMQ服务,然后重启即可。
e) rabbitmq-java-client-bin-3.5.4.zip,下载地址 http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.5.4/ ,下载好解压备用准备工作做好后开始写代码。 新建TestProto.proto文件和protoc.exe 放在同一目录下。TestProto.proto文件内容如下:
package protobuf; option java_package = "com.test.protobuf"; option java_outer_classname = "TestProtobuf"; message Info { required int32 ID = 1; required string title = 2; required string content = 3; }
在cmd环境下进入protoc.exe所在的文件夹下 运行 protoc ./TestProto.proto.proto --java_out=./
运行后进入protoc.exe文件夹,可以发现多了com\test\protobuf\TestProtobuf.java
eclipse 新建Maven项目Rabbit,在pom.xml文件中个添加依赖
<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>2.4.1</version> </dependency>
在项目根目录新建lib文件夹,把rabbitmq-java-client-bin-3.5.4.zip 中的rabbitmq-client.jar文件拷贝到lib中,然后add to buildpath(在maven中添加时,接口总和手册上的对不上,故手工添加)。把生成的TestProtobuf.java拷贝到项目中,并且新建send类和receive类。项目的组织结构如下图
send类如下:
receive类如下:
运行send ,结果如下:
运行receive,结果如下:
为了看的清晰,receive类我放在了myeclipse里运行,这样可以看到发送和接收的过程。
简单的整合完毕。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif)
相关文章推荐
- Rabbitmq集群搭建笔记
- python使用rabbitmq实现网络爬虫示例
- Linux下PHP扩展amqp安装
- 我的Protobuf消息设计原则
- 化繁为简--google protobuf
- c++ java中关于protobuf反序列化对象实体和实体处理(函数)关系 (一)
- c++ java中关于protobuf反序列化对象实体和实体处理(函数)关系(二)
- CentOS6.5 安装rabbitmq
- 非常不错的rabbitmq集群高可用部署
- Rabbitmq 安装与配置
- rabbitmq可靠性保证(原文加上部分标记)
- rabbitmq流控制(原文标记)
- protobuf通过反射来赋值
- gogoprotobuf使用(上)
- gogoprotobuf使用(下)
- AMQP协议
- vs2012编译protobuf
- RabbitMQ 系列——1.初始
- protobuf 学习
- Android protobuf 简易操作流程