https://github.com/lelylan/haproxy-mqtt.git 

实验环境:

       两台Ubuntu 14 虚拟机:

      第一台ubuntu设备为代理服务器     :

             ubuntu 安装 haproxy 代理服务器

      第二台ubuntu设备为 activemq 服务:

             ubuntu 安装activemq 消息服务器

           

 修改文件   haproxy.cfg   :   

  global
  ulimit-n 9999
  maxconn 9999
  maxpipes 9999
  tune.maxaccept 500
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  chroot /var/lib/haproxy
  user haproxy
  group haproxy

defaults
  log global
  mode http
  option dontlognull
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms
  errorfile 400 /etc/haproxy/errors/400.http
  errorfile 403 /etc/haproxy/errors/403.http
  errorfile 408 /etc/haproxy/errors/408.http
  errorfile 500 /etc/haproxy/errors/500.http
  errorfile 502 /etc/haproxy/errors/502.http
  errorfile 503 /etc/haproxy/errors/503.http
  errorfile 504 /etc/haproxy/errors/504.http

listen stats :80
  stats enable
  stats uri / # must be present to see the logs
  stats auth admin:admin

listen mqtt
  bind *:1883
  #bind *:8883 ssl crt /certs/lelylan-mqtt.pem
  mode tcp
  #Use this to avoid the connection loss when client subscribed for a topic and its idle for sometime
  option clitcpka # For TCP keep-alive
  timeout client 3h #By default TCP keep-alive interval is 2hours in OS kernal, 'cat /proc/sys/net/ipv4/tcp_keepalive_time'
  timeout server 3h #By default TCP keep-alive interval is 2hours in OS kernal
  option tcplog
  balance leastconn
  server node 192.168.253.161:1883 check   #  192.168..253.161 为 activemq 消息服务IP   
 # server mosca_1 178.62.122.204:1883 check
 # server mosca_2 178.62.104.172:1883 check

启动 haproxy 服务

  ./restart.bash

启动 activemq 服务:

  ~/mqtt/apache-activemq-5.14.5$ ./bin/activemq console

win7 客户端

String user = env("APOLLO_USER", "admin");
 String password = env("APOLLO_PASSWORD", "admin");
// String host = env("APOLLO_HOST", "localhost");
 String host = env("APOLLO_HOST", "192.168.253.134"); // 192.168.253.134 haproxy 服务器IP
// int port = Integer.parseInt(env("APOLLO_PORT", "61613"));
 int port = Integer.parseInt(env("APOLLO_PORT", "1883"));
// final String destination = arg(args, 0, "/topic/1/OOOOOOOOOO/aaaa");
 final String destination = arg(args, 0, "topic");




  



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐