appollo消息服务器,搭建Apache apollo消息队列服务、简单访问
官网:http://activemq.apache.org/apollo/index.html
环境:ubuntu 16.04
1.安装好jdk
2.下载解压
wget http://mirrors.hust.edu.cn/apache/activemq/activemq-apollo/1.7.1/apache-apollo-1.7.1-unix-distro.tar.gz
tar -zxvf apache-apollo-1.7.1-unix-distro.tar.gz
3.创建broker
(在当前用户工作目录创建即可)
apache-apollo-1.7.1/bin/apollo create apollo_broker
如果参照:http://activemq.apache.org/apollo/documentation/getting-started.html
在/var/lib目录创建broker,则创建和运行一般都需要root权限才可以;
4.修改配置,允许指定主机访问web管理控制台
参考:http://activemq.apache.org/apollo/documentation/user-manual.html#Web_Based_Administration
apollo_broker/etc/apollo.xml文件,不绑定回送地址127.0.0.1
apollo_broker/etc/login.config文件,添加白名单文件
允许以下主机访问web控制台
5.运行broker
apollo_broker/bin/apollo-broker run
IP地址:192.168.1.121
6.访问web控制台
http://192.168.1.121:61680/ (http地址,好像需要配置白名单)
或者:https://192.168.1.121:61681/ (https地址,不用配置白名单,就可以直接访问)
默认账户:admin 默认密码:password
7.创建Publish Demo
参考:apache-apollo-1.7.1/examples目录中,自带了demo
创建spring boot project
pom.xml,添加依赖组件
org.fusesource.mqtt-client
mqtt-client
1.0
org.eclipse.paho
org.eclipse.paho.client.mqttv3
1.2.0
Publish.java
package com.test;
import java.net.URISyntaxException;
import org.fusesource.hawtbuf.Buffer;
import org.fusesource.hawtbuf.UTF8Buffer;
import org.fusesource.mqtt.client.Future;
import org.fusesource.mqtt.client.FutureConnection;
import org.fusesource.mqtt.client.MQTT;
import org.fusesource.mqtt.client.QoS;
class Publisher {
public static void main(String[] args) {
System.out.println("publish main");
String user = "admin";
String password = "password";
String host = "192.168.1.121";
int port = 61613;
final String destination = "/topic/monitor";
MQTT mqtt = new MQTT();
try {
mqtt.setHost(host, port);
mqtt.setUserName(user);
mqtt.setPassword(password);
// 1.连接server
FutureConnection connection = mqtt.futureConnection();
connection.connect().await();
// 2.发布消息
UTF8Buffer topic = new UTF8Buffer(destination);
while (true) {
Buffer msg = new UTF8Buffer(getMessage());
Futurefuture = connection.publish(topic, msg, QoS.AT_LEAST_ONCE, false);
System.out.println("publish msg=" + msg + ", wait begin");
// 发送消息后,等待被处理
future.await();
// delay(1000);
System.out.println("publish wait end");
}
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getMessage() {
return String.valueOf(Math.random());
}
private static void delay(long time) {
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
8.创建Subscriber Demo
创建spring boot project
Listener.java
package com.test;
import org.fusesource.hawtbuf.*;
import org.fusesource.mqtt.client.*;
class Listener {
public static void main(String[] args) throws Exception {
System.out.println("listener main");
String user = "admin";
String password = "password";
String host = "192.168.1.121";
int port = 61613;
final String destination = "/topic/monitor";
MQTT mqtt = new MQTT();
mqtt.setHost(host, port);
mqtt.setUserName(user);
mqtt.setPassword(password);
final CallbackConnection connection = mqtt.callbackConnection();
// 1.设置监听器
connection.listener(new org.fusesource.mqtt.client.Listener() {
long count = 0;
public void onConnected() {
System.out.println("onConnected");
}
public void onDisconnected() {
System.out.println("onDisconnected");
}
public void onFailure(Throwable value) {
System.out.println("onFailure");
value.printStackTrace();
System.exit(-2);
}
public void onPublish(UTF8Buffer topic, Buffer msg, Runnable ack) {
String message = msg.utf8().toString();
System.out.println("onPublish body=" + message + " count=" + count);
count++;
}
});
// 2.连接server
connection.connect(new Callback() {
@Override
public void onSuccess(Void value) {
System.out.println("onSuccess");
// 3.订阅消息
Topic[] topics = { new Topic(destination, QoS.AT_LEAST_ONCE) };
connection.subscribe(topics, new Callback() {
public void onSuccess(byte[] qoses) {
// UTF8Buffer buffer = new UTF8Buffer(qoses);
System.out.println("onSuccess");
}
public void onFailure(Throwable e) {
System.out.println("subscribe onFailure");
e.printStackTrace();
System.exit(-2);
}
});
}
@Override
public void onFailure(Throwable e) {
System.out.println("connect onFailure");
e.printStackTrace();
System.exit(-2);
}
});
// Wait forever..
synchronized (Listener.class) {
while (true) {
Listener.class.wait();
}
}
}
}
appollo消息服务器,搭建Apache apollo消息队列服务、简单访问相关推荐
- Kafka是什么,JMS是什么,常见的类JMS消息服务器,为什么需要消息队列(来自学习笔记)
1.Kafka是什么 Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. Kafka最初是由LinkedIn开发,并于2011 ...
- 简易kafka消息服务器搭建
分布式消息服务器kafka ##搭建过程: 步骤: 1:下载代码,解压 2:启动zookeeper服务器:bin/zookeeper-server-start.sh config/zookeeper. ...
- 消息服务器待办事项数据库,消息服务器待办事项数据库
消息服务器待办事项数据库 内容精选 换一换 数据库安全服务与其他云服务的关系的依赖关系如图1所示.数据库安全服务实例创建在弹性云服务器上,用户可以通过该实例,为弹性云服务器上的自建数据库提供安全审计功 ...
- 5g消息 服务器出错,中国移动 5G 消息被下架 官方回复技术问题
中关村在线消息:中国移动昨天在 Appstore 上架了 "5G 消息 " 应用,但是有人发现,今天该应用就下架了,之后有人猜测应用下架的原因可能是来自苹果方面,现在中国移动亲自回 ...
- python web服务器 apache_Windows下搭建Apache+Django+Python Web服务环境
最近在学Django,想用Apache搭建一个服务器环境,因此在网上看了好多资料,很多都是用Python2.6和Apache2.2搭建的环境,不过我还是想用Python35和Apache24来搭建,具 ...
- qq消息服务器延时,QQ聊天消息丢失或延迟的原因分析
很多版友反应说QQ的聊天消息偶尔回丢失或者延迟接收,针对此,偶做了个分析,以资众朋友! 大家知道,网络的一个基本特点是允许资源的共享.在许多时间里.这种共享通过两个独立的程序来完成,他们分别运行在不同 ...
- 用轻量服务器搭建自托管的视频会议服务,并集成到自己的项目中
本文主要面向需要在自己系统中集成视频会议的读者. 客户要求在页面中集成视频会议功能,本来刚开始准备直接用腾讯云的服务来实现,但是客户说他们完全是一个不能访问互联网的局域网的环境,因此需要部署一个自托管 ...
- ubuntu ftp服务器搭建,绝对有效,操作简单
https://www.cnblogs.com/ZHANYU/p/6055029.html
- 传奇手游服务器搭建_复古传奇手游服务端架设教程
浙江复古传奇手游服务端架设教程地处长三角中心位置,复古传奇手游服务端架设教程具有独特的地理和爆光柱的传奇手游商业优势,交通便利,复古传奇魔龙怎么去运输快捷. 在传奇私服游戏中,是进级兵器能力晋升游戏兴 ...
最新文章
- python3 分离路径 目录 文件名 后缀
- JavaScript优化基本篇
- 太阳的光和灯光有什么区别_墙体彩绘机UV(油性)和水性墨水怎么选择?有什么区别?...
- C语言程序输入两行汉字,C语言多行输入问题集锦
- 线程优先级抢占实验【RT-Thread学习笔记 3】
- Linux内核分析 - 网络[十一]:ICMP模块
- 如果你对web前端学习感到迷茫的话请看完本文
- 值得关注!2021音视频人才成长路线图发布了
- influxdb 统计 每天 指定时间段_抖音短视频什么时间段发布?容易上热门!
- 数学分析 反函数存在性定理,连续性定理与求导定理
- python论文排版格式_Latex论文排版工具使用教程
- Mac系统安装Photoshop CS6教程
- P8195 [传智杯 #4 决赛] 小智的疑惑 —KMP
- EasyCVR如何实现视频监控的大屏播放?
- 【总结】办公编程学习你可能需要这些小利器!
- 华为怎么设置计算机快捷,使用命令快速设置华为路由器
- mysql 地理_MySQL geometry地理位置数据存储和计算
- 福州古刹梅花盛开 古装赏梅成“娇点”
- MONTHS_BETWEEN函数使用
- ACM常用英文术语翻译