
MQ
程序了个猴
这个作者很懒,什么都没留下…
展开
-
Kafka学习-第五篇 用Java编写Kafka样例程序
1. maven依赖引入kafka的客户端支持pom.xml <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka --> <dependency> <groupId>org.apache.kafka</groupId> <...原创 2020-04-22 09:29:20 · 316 阅读 · 0 评论 -
Kafka学习-第四篇 Kafka基本操作命令
1. 创建topicbin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic12. 查看已经创建的topic信息bin/kafka-topics.sh --list --zookeeper localhost:21813....原创 2020-04-21 11:40:35 · 449 阅读 · 0 评论 -
Kafka学习-第三篇 Kafka集群安装与启动
1. 下载下载地址:http://kafka.apache.org/downloads.htmlhttp://mirrors.hust.edu.cn/apache/2. 安装前提zookeeper安装。3. 安装此处使用版本为kafka_2.11-0.8.2.0.tgz3.1 上传解压缩tar -zxvf kafka_2.11-0.8.2.0.tgz -C appscd app...原创 2020-04-21 11:21:34 · 167 阅读 · 0 评论 -
Kafka学习-第二篇 基础概念
1. 概述Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。Kafka主要设计目标如下:以时间复杂度为O(1)的方...原创 2020-04-21 11:19:05 · 227 阅读 · 0 评论 -
Kafka学习-第一篇 学习路线
1. 准备知识消息队列的工作原理与应用场景2. 正式学习2.1 kafka基础概念与架构2.2 kafka单机安装与启动2.3 kafka基本操作命令学习2.4 掌握一种kafka支持的客户端并编写样例程序2.5 掌握一种kafka监控工具的使用2.6 学习kafka集群的搭建、配置与调优...原创 2020-04-21 11:18:08 · 488 阅读 · 0 评论 -
RabbitMQ学习-第九篇 RabbitMQ常用指令
一.服务启动与关闭rabbitmq启动方式有2种1、以应用方式启动后台启动rabbitmq-server -detached直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止rabbitmq-server 关闭整个节点(包括应用)rabbitmqctl stop怎样仅仅关闭应用而不关闭整个节点呢:因为rabbitmq-server一起启动了节点和应用,它预...原创 2020-04-21 11:15:24 · 243 阅读 · 0 评论 -
RabbitMQ学习-第八篇 RabbitMQ三种Exchange模式性能比较
RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储。RabbitMQ提供了四种Exchange:fanout,direct,topic,header。header模式在实际使用中较少,本文只对前三种模式进行比较。性能排序:fanout > direct > topic。比例大约为11:10:6一.Dir...原创 2020-04-21 11:13:37 · 623 阅读 · 0 评论 -
RabbitMQ学习-第七篇 RCP(远程过程调用协议)
之前学习了怎么去使用work queue来把比较耗时的任务分散给多个worker。但是,如果我们想在远程的机器上的一个函数并等待它返回结果,我们应该怎么办呢?这就是另外一种模式了,它被称为RPC(Remote procedure call)。本中我们来实现怎么用RabbitMQ来构建一个RPC系统:一个client(客户端)和一个可扩展的RPC server(服务端)。这里我们来模拟一个返回斐...原创 2020-04-21 11:12:04 · 417 阅读 · 0 评论 -
RabbitMQ学习-第六篇 Topic类型的exchange
在上篇中,我们对之前的日志系统做了稍许的完善。没有使用fanout类型的exchange来广播,而是使用了direct类型的exchange来选择性的接收日志消息。尽管使用了direct类型的exchange对日志系统有所提升,但还是有一些限制(消息不能够基于多重因素来路由)。在我们的日志系统中,希望不仅仅能够根据日志级别来订阅,还可以根据指定的routing key来订阅。你应该可以理解的,...原创 2020-04-21 10:14:26 · 469 阅读 · 0 评论 -
RabbitMQ学习-第五篇 路由Routing
上一篇中我们构建了一个简单的日志系统,我们可以把日志消息广播给多个接受者。这篇中我们将来添加一个特性只接收部分消息。例如我只将一些错误log存到文件中,把所有的log都打印到控制台里。1、绑定(Bindings)在上篇中,我们已经创建了一个binding,代码如下:channel.queueBind(queueName, EXCHANGE_NAME, "");一个binding就是ex...原创 2020-04-21 10:13:23 · 169 阅读 · 0 评论 -
RabbitMQ学习-第四篇 发布Publish 订阅Subscribe
上篇中我们实现了Work Queue的创建,在Work Queue背后,其实是rabbitMQ把每条任务消息只发给一个消费者。本篇中我们将要研究如何把一条消息推送给多个消费者,这种模式被称为publish/subscribe(发布/订阅)。为了说明这个模式,我们将会构建一个简单的日志系统。这将会包含两部分程序,第一个是发送日志信息,第二个将会接收并打印它们。在我们的日志系统里,每个运行的消费者...原创 2020-04-21 10:12:31 · 232 阅读 · 0 评论 -
RabbitMQ学习-第三篇 工作队列Work Queue
上篇中实现了程序来从一个已经命名的队列里发送和接收消息。本篇将要创建工作队列用来把一些比较耗时的任务分配给多个worker。工作队列的主要思想就是避开立刻处理某个资源消耗交大的任务并且需要等待它执行完成。取而代之的是我们可以将它加入计划列表,并在后边执行这些任务。我们将任务分装成一个消息,并发送到队列中。后台的工作程序在接收到消息后将会立刻执行任务。当运行多个执行器时,任务将会在他们之间共享。...原创 2020-04-21 10:10:34 · 184 阅读 · 0 评论 -
RabbitMQ学习-第二篇 快速入门HelloWorld
1. 相关概念RabbitMQ是一个消息代理,事实上,它接收生产者产生的消息,然后将消息传递给消费者。在这个过程中,它可以路由,可以缓冲,或者更具你设定的规则来将消息持久化。RabbitMQ和消息传输过程中一般会用一些术语:生产者(Producing):意思无非是指发送消息的那一端,如果一个程序发送消息,那么它就将被称为生产者,这里用大写的P来表示。队列(queue):相当于邮箱...原创 2020-04-21 10:04:04 · 197 阅读 · 0 评论 -
RabbitMQ学习-第一篇 理论基础
1. 定义消息队列:在消息的传输过程中保存消息的的容器。这是一个较为经典的消费-生产者模型,说起来比较抽象,打个比方:A线程需要给B线程发送消息(A、B线程不一定是在同一台机器上的),A线程先把消息发送到消息队列服务器上,然后B线程去读取或是订阅消息服务器上消息队列中的消息,线程A和B之间并没有进行直接通信。MQ服务器在中间起到中继的作用。2. 适用场景比较适合异步传输。异步:发送方不关...原创 2020-04-21 10:01:38 · 162 阅读 · 0 评论