一、rocketmq的搭建
两个主节点集群的搭建,两台虚拟机,分别配置好namesrv和broker
搭建完成后,使用运维监控的应用监控集群的状态
二、rocketmq基本使用
@Test
public void testProduce() {
DefaultMQProducer producer = new DefaultMQProducer("testGroup");
producer.setNamesrvAddr("localhost:9876");
try {
producer.start();
Message msg = new Message("testTopic","testTag","hello world!".getBytes());
producer.send(msg);
} catch (MQClientException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (RemotingException e) {
e.printStackTrace();
} catch (MQBrokerException e) {
e.printStackTrace();
} finally {
producer.shutdown();
}
}
以上是生产者的示例。
什么是topic?
队列的集合,是为topic
什么是tag?
文档解释:选填,类似于Gmail为每封邮件设置的标签,方便服务器过滤使用。目前只支持每个消息设置一个tag,所以也可以类比为Notify的MessageType概念
另一个参数keys的解释:选填,代表这条消息的业务关键词,服务器会根据keys创建哈希索引,设置后,可以在Console系统根据Topic、Keys来查询消息,由于是哈希索引,请尽可能保证key唯一,例如订单号,商品Id等。
什么是producerGroup?
三种不同的业务,三种不同的逻辑,三种不同的线程池,如果把线程池换成producerGroup,应该也可以,consumerGroup同理
三、zookeeper的搭建
一般是奇数个节点的集群,1 3 5 7 9 ,3 5 居多,因为半数通过的机制,并不是节点越多越好,节点太多影响效率
使用docker搭建一个节点的非常简单
四、zookeeper基本使用
分为原生api跟第三方封装的框架,实际很少使用原生,熟悉一下demo,后续直接使用第三方
主要理解watch 跟 watcher:
如何理解watcher?
监听。一个类实现了Watcher接口,实现了process方法,处理节点发生变化的事件。而watch就是在zookeeper服务器上发生的事件。
五、docker的入门
镜像 容器
可以通过镜像创建容器,可以把容器理解成操作系统装了应用直接提供使用的一个环境
常用命令:
docker images
docker ps
docker container ls -a
后台运行 docker run -it [image]
docker stop 还有docker kill