topic

3.6.6 RabbitMQ教程五 – Topics

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-19 18:23:52
What This Tutorial Focuses On In the previous tutorial we improved our logging system. Instead of using a fanout exchange only capable of dummy broadcasting, we used a direct one, and gained a possibility of selectively receiving the logs. 在之前的教程中我们改进了我们的日志系统。我们没有使用只能无脑广播的fanout交换,而是使用了direct交换,并获得了有选择的接收日志的可能性。 Although using the direct exchange improved our system, it still has limitations - it can't do routing based on multiple criteria. 虽然使用direct交换改进了我们的系统,但它仍然有局限性 - 它不能基于多个标准进行路由。 In our logging system we might want to subscribe to not only logs based on severity, but also based on the

Apache Kafka 消息队列

时光怂恿深爱的人放手 提交于 2020-01-19 16:19:50
概述 Kafka是Apache软件基金会的开源的流处理平台,该平台提供了消息的订阅与发布,能够基于Kafka实现对网络日志流实时在线处理,在这个维度上弥补了Hadoop的离线分析系统的不足。因为基于hadoop的MapReduce系统分析离线数据延迟较高,而且不支持动态数据处理和分析。Kafka的流处理平台不仅仅可以为离线系统储备数据(通常使用Kafka作为数据缓冲),而且Kafka自身也提供了一套数据流的处理机制,实现对数据流在线处理,比如: 统计。 作为消息队列(Message Queue)充当系统的缓冲组件 - MiddleWare 作为一套在线实时流处理 组件 (轻) 场景分析 异步消息 使用Kafka MQ功能实现模块间异步通信,把一些费时的操作交给额外的服务或者设备去执行,这样可以提升系统运行效率,加速连接释放的速度,例如:用户注册模块,在用户注册成功后,业务系统需要给用户发送一个通知短信,通知用户登录邮箱去激活刚注册的用户信息。这种业务场景如图所示,因为短信通知和邮件发送是一个比较耗时的操作,所以在这里没必要将短信和邮件发送作为注册模块的流程,使用Message Queue功能可以将改业务和主业务注册分离,这样可以缩短用户浏览器和服务建立的链接时间,同时也能满足发送短信和邮件的业务。 系统间解耦|削峰填谷 ①在某些高吞吐的业务场景下

kafka原理篇

前提是你 提交于 2020-01-19 14:38:56
目录 消息队列分类 点对点 发布/订阅 kafka介绍 kafka架构说明 Topic与Partition的关系 partition复制机制 Consumer与Topic的关系 消息队列分类 点对点 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。这里要注意: 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。 发布/订阅 消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。 kafka介绍 kafka是一个分布式的、分区的、多副本的、多订阅者的日志系统(分布式消息队列)。可同时支持点对点模式的消息队列和发布/订阅模式的消息队列。 kafka架构说明 kafka角色术语: Broker:一台kafka服务器就是一个broker。一个集群由多个broker组成 Topic:消息队列,不同的消息会被发送至不同的队列当中 Producer:消息生产者,就是向kafka broker发消息的客户端 Consumer:消息消费者,从kafka broker取消息的客户端 Consumer Group(CG):这是kafka用于实现一个topic消息广播

kafka 基础知识梳理及集群环境部署记录

流过昼夜 提交于 2020-01-19 14:35:06
一、kafka基础介绍 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一,Kafka可以实现高效文件存储,实际应用效果极好。 1.1) kafka名词解释(架构的四个部分) - producer:生产者。 - consumer:消费者。 - topic: 消息以topic为类别记录,Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic)。 - broker:以集群的方式运行,可以由一个或多个服务组成

kafka笔记

南笙酒味 提交于 2020-01-19 12:12:24
1.设置kafka偏移量 ./kafka-consumer-groups.sh --bootstrap-server snn:6667 --group offsettest --topic offset-test --reset-offsets --to-earliest –execute 2.查看某分组下的topic数据信息 . /kafka - consumer - groups . sh -- describe -- group felix_group_id -- bootstrap - server 192.168 .1 .2 : 9092 3.删除某个topic的数据 . /kafka - topics . sh -- zookeeper localhost : 2181 -- delete -- topic topic_test 来源: CSDN 作者: MR_WANG0312 链接: https://blog.csdn.net/MR_WANG0312/article/details/103908751

ActiveMQ学习笔记(6)----ActiveMQ整合Spring开发

爱⌒轻易说出口 提交于 2020-01-19 11:17:50
1. 添加依赖   spring 提供了对JMS的支持,需要添加Spring支持jms的包和Spring的核心包,如下: <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>5.1.2.RELEASE</version> </dependency> <!--ActiveMQ 的pool的包--> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.15.6<

kafka

自闭症网瘾萝莉.ら 提交于 2020-01-19 08:28:17
学习kafka必会名词 producer:生产者,就是它来生产“鸡蛋”的。 consumer:消费者,生出的“鸡蛋”它来消费。 topic:你把它理解为标签,生产者每生产出来一个鸡蛋就贴上一个标签(topic),消费者可不是谁生产的“鸡蛋”都吃的,这样不同的生产者生产出来的“鸡蛋”,消费者就可以选择性的“吃”了。相当于“队列” broker:就是篮子了。 kafka的架构 一个典型的Kafka包含若干Producer,若干broker(Kafka支持水平扩展,一般broker越多,吞吐量越高),若干Consumer Group,以及一个zookeeper集群,通过zookeeper管理集群配置,选举leader,Producer使用push将消息发送到broker,Consumer使用pull模式从broker订阅并消费消息。 Kafka会为每一个Consumer Group保留一些metadata信息——当前消费的消息的position,也即offset。这个offset由Consumer控制。正常情况下Consumer会在消费完一条消息后递增该offset。 使用Consumer high level API时,同一Topic的一条消息只能被同一个Consumer Group内的一个Consumer消费,但多个Consumer Group可同时消费这一消息。 优化:

06 Spring Boot 整合RabbitMQ

六眼飞鱼酱① 提交于 2020-01-19 04:50:43
6. Spring 整合RabbitMQ 6.1. 搭建生产者工程 6.1.1. 创建工程 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRET1n6r-1578323120296)(F:\learning\javaee\笔记\第五阶段\04RabbitMQ\06 Spring Boot 整合RabbitMQ\img\1565149342994.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egWNK3ug-1578323120297)(F:\learning\javaee\笔记\第五阶段\04RabbitMQ\06 Spring Boot 整合RabbitMQ\img\1565144326498.png)] 6.1.2. 添加依赖 修改pom.xml文件内容为如下: <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http:/

RocketMQ客户端加载流程

荒凉一梦 提交于 2020-01-18 00:43:43
 这节介绍RocketMQ客户端的启动流程,即Consumer和Producer的启动流程。 1. 客户端demo  首先先看下客户端的demo Producer: public class SyncProducer { public static void main (String[] args) throws Exception { // 实例化消息生产者Producer DefaultMQProducer producer = new DefaultMQProducer ("GroupTest"); // 设置NameServer的地址 producer.setNamesrvAddr ("localhost:9876"); // 启动Producer实例 producer.start (); for (int i = 0; i < 100; i++) { // 创建消息,并指定Topic,Tag和消息体 Message msg = new Message ("TopicTest" /* Topic */, "TagA" /* Tag */, ("Hello RocketMQ " + i).getBytes (RemotingHelper.DEFAULT_CHARSET) /* Message body */ ); // 发送消息到一个Broker SendResult

thinkphp论坛项目开发

£可爱£侵袭症+ 提交于 2020-01-17 14:42:35
效果图 首先是数据库 /* Navicat MySQL Data Transfer Source Server : xm Source Server Version : 50553 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50553 File Encoding : 65001 Date: 2019-01-17 15:00:23 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for test_topic -- ---------------------------- DROP TABLE IF EXISTS `test_topic`; CREATE TABLE `test_topic` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `user_id` int(11) NOT NULL, `created_at` int(11) NOT NULL, `is