1. JDK安装
我安装的是java version “1.8.0_73”注意: 要配置好classpath,检测方法为
2. 官网下载zeromq的源码
https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz
或者我共享的zip压缩包@gitoschina
3. 解压,编译安装zeromqs
检查环境
|
|
安装指令如下(make install 指令需要
root
权限)
12345678 tar -xzf zeromq-4.1.5.tar.gzcd zeromq-4.1.5./autogen.sh./configuremakemake installldconfig## 安装完成后,如果没报错,ls /usr/local/lib 会发现有文件名为libzmq的文件表示安装成功
4. 下载JZMQ
JZMQ是java封装了一下ZMQ,不是另外一个Pure Java ZeroMQ,下载地址为
https://github.com/zeromq/jzmq.git,用git clone下来
或者下载zip压缩包@github或者我共享的zip压缩包@gitoschina
不要下载v3.1.0 release版本,这个无法编译,是坑
5. 解压编译安装JZMQ
安装指令如下(make install指令需要
root
权限)
12345678 unzip jzmq-master.zipcd jzmq-jni/./autogen.sh./configuremakemake install### cd ..### mvn package 官网有这个步骤,但是别按着来,是坑安装完成后检查,如果都符合,恭喜,很有可能安装成功
123456789 #### lib下有如下包[root@server001 java]# ls /usr/local/liblibjzmq.a libjzmq.so.0 libpcre2-8.la libpcre2-8.so.0.3.0 libpcre2-posix.so libz.a libzmq.so libz.so pkgconfiglibjzmq.la libjzmq.so.0.0.0 libpcre2-8.so libpcre2-posix.a libpcre2-posix.so.0 libzmq.a libzmq.so.5 libz.so.1libjzmq.so libpcre2-8.a libpcre2-8.so.0 libpcre2-posix.la libpcre2-posix.so.0.0.1 libzmq.la libzmq.so.5.0.1 libz.so.1.2.8#### 有jar包在此目录[root@server001 lib]# ls /usr/local/share/java/zmq.jar设置环境变量(root权限)
1234567 vi /etc/bashrcvi /etc/profile### 底部添加如下内容LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libexport LD_LIBRARY_PATHCLASSPATH=.:$CLASSPATH:/usr/local/share/java/zmq.jarexport CLASSPATH
6. 写server和client代码验证JZMQ安装成功
这里是官方的Guide文档(很长,有多种语言的实现,我们只选择Java)http://zguide.zeromq.org/page:all
你也可以看我写的代码进行测试
以下是测试Java代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 import org.zeromq.ZMQ;/*** Created by admin on 2016/7/15.*/public class hwserver {public static void main(String[] args) throws InterruptedException {ZMQ.Context context = ZMQ.context(1);// Socket to talk to clientsZMQ.Socket responder = context.socket(ZMQ.REP);responder.bind("tcp://*:5555");while (!Thread.currentThread().isInterrupted()) {// Wait for next request from the clientbyte[] request = responder.recv(0);System.out.println("Received Hello");// Do some 'work'Thread.sleep(1000);// Send reply back to clientString reply = "World";responder.send(reply.getBytes(), 0);}responder.close();context.term();}}import org.zeromq.ZMQ;/*** Created by admin on 2016/7/15.*/public class hwclient {public static void main(String[] args) {ZMQ.Context context = ZMQ.context(1);// Socket to talk to serverSystem.out.println("Connecting to hello world server…");ZMQ.Socket requester = context.socket(ZMQ.REQ);requester.connect("tcp://localhost:5555");for (int requestNbr = 0; requestNbr != 10; requestNbr++) {String request = "Hello";System.out.println("Sending Hello " + requestNbr);requester.send(request.getBytes(), 0);byte[] reply = requester.recv(0);System.out.println("Received " + new String(reply) + " " + requestNbr);}requester.close();context.}