用java调用zeromq

ØMQ(Zeromq)
官方主页:http://zguide2.zeromq.org/page:all
zeromq下载地址:http://download.zeromq.org/
这个东西好像都是用c写的,应该高效吧。。
但是在网上找了半天,想用java调用zeromq只能用到jzmq这个东西,
但是发现用java调zeromq的人很少。。蛋疼
更加蛋疼的是jzmq.jar在window环境下面必须得用.net vs2008编译生成jzmq.dll等文件才行。。我没有vs2008下载vs2008有5.9G啊。。。。
没办法,在csdn上花了5分下载了jzmq.dll\jzmq.jar文件,
有人跟我一样碰到过jzmq.dll: Can't find dependent libraries 吗,我乐个草的。。解决不了
Note that ØMQ and JDK header file has to be on "include path" (Tools|Options|Projects and Solutions|VC++ Directories|Include files) and ØMQ libraries have to be on "library path" (Tools|Options|Projects and Solutions|VC++ Directories|Library files):
Include files:
    <jdk>\include\win32
    <jdk>\include
    <zeromq>\include

Library files:
    <zeromq>\lib

是不是必须要自己编译生成的dll才行呢?
linux不需要dll,最终放弃在window上面运行zeromq,试试在linux环境下编译

添加java环境到系统环境变量里面
$ vim /etc/profile
export PATH=$PATH:$JAVA_HOME/bin
$ source /etc/profile

下载安装zeromq
$ wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
$ tar zxvf zeromq-2.2.0.tar.gz
$ cd zeromq-2.2.0
$ ./configure --with-pgm
$ make
$ make install

下载安装jzmq
$ wget https://github.com/zeromq/jzmq/archive/master.tar.gz
$ mv master.tar.gz ./zeromq-2.2.0/jzmq.tar.gz
$ cd zeromq-2.2.0
$ tar zxvf jzmq.tar.gz
$ cd jzmq
$ ./autogen.sh
$ ./configure
$ touch src/classdist_noinst.stamp
$ cd src/org/zeromq/$ javac *.java
$ cd ../../../
$ make
$ make install

配置环境变量


$ echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
$ ldconfig
$ echo CLASSPATH=/usr/local/share/java/zmq.jar:.>> /etc/environmentecho
$ export
LD_LIBRARY_PATH=/usr/local/lib> /etc/profile.d/ldlibrarypath.sh

测试
$ cd ./zeromq-2.2.0/jzmq
$ java -Djava.library.path=/usr/local/lib  -cp .:./src/zmq.jar:./src/zmq-perf.jar local_lat tcp://127.0.0.1:5555 1 100

在开一个终端
$ cd ./zeromq-2.2.0/jzmq
$ java -Djava.library.path=/usr/local/lib  -cp .:./src/zmq.jar:./src/zmq-perf.jar remove_lat tcp://127.0.0.1:5555 1 100

可以看到输出如下:
message size: 1 [B]
roundtrip count: 100
mean latency: 275.0 [us]

成功

附件是 cs和pub/sub的java实例,运行先运行client在server,先sub在pub





你可能感兴趣的:(zeromq)