topic

Kafka 命令行操作

旧巷老猫 提交于 2019-12-06 14:33:47
1)查看当前服务器中的所有 topic [hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list 2)创建 topic [hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 \ --create --replication-factor 3 --partitions 1 --topic first 选项说明: --topic 定义 topic 名 --replication-factor 定义副本数 --partitions 定义分区数 3)删除 topic [hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 \ --delete --topic first 需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除或者直接重启。 4)发送消息 [hadoop@hadoop102 kafka]$ bin/kafka-console-producer.sh \ --broker-list hadoop102:9092 --topic first

Kafka初识

亡梦爱人 提交于 2019-12-06 14:22:36
转载自 https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算、统计、分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 2、Kafka的定义 What is Kafka:它是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。 3、Kafka和其他主流分布式消息系统的对比 定义解释: 1、Java 和 scala都是运行在JVM上的语言。 2、erlang和最近比较火的和go语言一样是从代码级别就支持高并发的一种语言,所以RabbitMQ天生就有很高的并发性能,但是 有RabbitMQ严格按照AMQP进行实现,受到了很多限制。kafka的设计目标是高吞吐量,所以kafka自己设计了一套高性能但是不通用的协议

RabbitMQ

心不动则不痛 提交于 2019-12-06 14:01:22
1、RabbitMQ简介 2、RabbitMQ安装及使用 3、RabbitMQ快速入门 4、交换机 RabbitMQ 简介 各大主流中间件对比 ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线,并且它一 个完全支持 J M S 规范的消息中间件。 其丰富的 API 、多种集群构建模式使得他成为业界老牌消息中间件,在中 小型企业中应用广泛! MQ 衡量指标:服务性能、数据存储、集群架构 RocketMQ是阿里开源的消息中间件,目前也已经孵化为Apache顶级项目, 它是纯java开发,具有高吞吐量、高可用性、适合大规模分布式系统 应用的特点。 RocketMQ思路起源于Kafka,它对消息的可靠传输及事务 性做了优化, 目前在阿里集团被广泛应用于交易、充值、流计算、消息推 送、日志流式处理、binglog分发等场景 RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议 来实现。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布 /订阅)、可靠性、安全。AMQP协议更多用在企业系统内, 对数据_致 性、稳定性和可靠性要求很髙的场景,对性能和吞吐量的要求还在其次。 结论: activiMq老牌消息中间件,api全面,但是吞吐量不大 Kafaka吞吐量大,但是数据无法保证不丢失,主要面向大数据 rokectMQ:吞吐量大

requests高级部分

主宰稳场 提交于 2019-12-06 13:56:15
回顾 bs4 1.实例化一个对象 2.方法或者属性进行数据提取 标签定位: soup.tagName 属性定位:soup.find('tagName',class_='xxx')/find_all() select('层级') string/text tag['src'] xpath: 属性定位://tagName[@class="xxxx"] 索引定位://tagName[1] 取文本:/text() //text() 取属性://img/@src requests高级部分 代理 cookie 验证码的识别 模拟登陆 代理 代理概念:代理服务器。 作用:接受请求==》请求转发。 代理和爬虫之间的关联: 可以使用请求转发的机制使得目的服务器接收到的请求对应ip的一个改变。 为什么要使用代理改变请求的ip地址? 爬虫程序在短时间内对指定的服务器发起了一个高频的请求,则请求对应的ip可能会被目的服务器禁止。 代理的一些基础知识: 代理的匿名度: 透明代理:目的服务器知道你使用了代理机制并且也知道你的真实IP 匿名代理:知道使用了代理机制,但是不知道你的真实ip 高匿代理:不知道使用了代理,也不知道你的真实ip 代理的类型: http https 免费代理ip: 快代理 西祠代理 www.goubanjia.com 代理精灵 需求:测试一下代理是否会生效 准备: 代理ip和端口号

docker kafka 单节点及集群部署

纵饮孤独 提交于 2019-12-06 12:47:19
docker kafka 单节点 宿主机IP: 192.168.43.177 1.下载镜像 这里使用了wurstmeister/kafka和wurstmeister/zookeeper这两个版本的镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 在命令中运行docker images验证两个镜像已经安装完毕 2.启动 启动zookeeper容器 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper 启动kafka容器 docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.43.177:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.43.177:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka 3.进入容器操作: cd /opt/kafka_2.12-2.3.0/bin 创建主题 sh kafka-topics.sh -

JMS的组成

落爺英雄遲暮 提交于 2019-12-06 12:37:59
------------恢复内容开始------------ 1.JMS是什么 JMS即Java消息服务(Java Message Service)应用程序接口,是一个java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。 2.JMS的主要组成部分 jms provider 消息中间件/消息服务器也就是MQ jms producer 消息生产者 jms consumer 消息消费者 jms message 消息 3.消息结构(jms message) 消息头: 红色的为常用的属性 1. JMSDestination :消息发送的目的地:主要指Queue和Topic,自动分配。 2. JMSDeliveryMode :传送模式。有两种:持久模式和非持久模式。一条持久性的消息应该被传送“一次仅仅一次”,这就意味着如果JMS提供者出现故障,该消息并不会丢失,它会在服务器恢复之后再次传递。一条非持久的消息最多会传送一次,这意味着服务器出现故障,该消息将永久丢失。自动分配。 3. JMSExpiration :消息过期时间,等于Destination的send方法中的timeToLive值加上发送时刻的GMT时间值。如果timeToLive值等于零

回应老赵: 适合C# Actor的消息执行方式 -中看也中用的解决方案

有些话、适合烂在心里 提交于 2019-12-06 12:18:05
     今天粗粗看了老赵的文章 适合C# Actor的消息执行方式 -中看不(3):中用的解决方案 ,我在想如果用我以前写的消息总线来实现那不是中看也中用了,于是顺手写了一个测试代码(具体内容参见 适合C# Actor的消息执行方式 -中看不(3):中用的解决方案 回复),说来很惭愧我的消息总线系列已经一年多没有更新了,我这人太懒散惯了,没办法。废话不多说了,下面我就具体讲解一下设计思路。   在Actor模式中,最重要的就是Actor间的消息发送以及消息路由了。   消息发送:举一个例子实现一个ActorA向ActorB发消息,最简单的方法就是:ActorA中需要内聚或依赖一个ActorB对象,然后就可以直接发消息通讯了,这种方法优点不言而喻- 简单 ,但是当一个系统中存在无数个Actor,一个Actor有可能向N多的其它Actor发消息,这种方法的弊端就暴露无疑了: 强依赖,强耦合。 怎么结局这种问题呢,这时候设计模式中的 中介者模式就可以派上用场了。所有的Actor都向中介者发消息即可,由中介者把消息通过一定的策略路由到特定的Actor,由这个特定的Actor进行处理即可。    消息路由 :消息路由的关键就是路由表,路由表可以用字典来实现,Key-可以用消息类型+Topic来标记即可,Value :就用委托函数即可。 具体简略设计图如下: 类图详解:    

Kafka部分集群参数设置(下)

◇◆丶佛笑我妖孽 提交于 2019-12-06 12:15:05
Topic级别参数设置: 如果同时设置了topic级别参数和全局broker参数,topic级别参数会覆盖全局broker参数的值,而每个topic都能设置自己的参数值,这就是所谓的topic级别参数。这样做的好处是不同部门的topic根据业务自身需要,设置自己的留存时间。 retention.ms:规定了该topic消息被保存的时长。默认是7天,即该topic只保存最近7天的消息。一旦设置了这个值,它会覆盖掉broker端的全局参数值。 retention.bytes:规定了要为topic预留多大的磁盘空间。和全局参数作用相似,这个值通常在多租户的kafka集群中会有用武之地。当前默认是-1,表示可以无限使用磁盘空间。 max.message.bytes:它决定了kafka broker能够正常接收该消息topic的最大消息大小。 设置topic级别参数方式: 1、创建topic时进行设置 以retention.ms和max.message.bytes举例,可以用以下命令来创建topic bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic transaction --partitions 1 --replication-factor 1 --config retention.ms

【xmind】 使用 Java 生成思维导图

送分小仙女□ 提交于 2019-12-06 10:57:33
前言 在日常的工作与学习中,我们经常会使用思维导图这个工具,来把抽象而又无形的思考转换成有形并且具体的图像,是理清思路,梳理逻辑的一大神器。 准确的说,思维导图并不是一个具体的工具,而是一种方法。是道而不是术。实际落地时,我们通常还需要借助外部的工具。从最原始的纸和笔,到各种软件,可以说是应用尽有。目前我在使用的是 xmind 这款软件,下面就会以 xmind 为媒介间接的通过 Java 代码画思维导图。 放码过来 通过目录生成思维导图 我在看书的时候有一个习惯,先通过思维导图画出一本书的大纲,然后通过这个大纲来分主次的去阅读。可能有些同学感到疑惑,还没读过书,如何了解大纲呢?其实一本书的目录就是这本书最好的大纲。 本文通过把一个目录生成思维导图的例子来学习 xmind 基本的 api 使用。当然如果想系统学习的同学,可以参考文末给出的官方 api 链接。下图就是我们最终要生成的结果。 引入依赖 xmind 最开始是在 eclipse 上进行定制开发而来(对,这个 eclipse 就是你在遇到 idea 后,喜新厌旧抛弃的那个编程软件),所以天生就对 Java 有良好的支持。这个 地址 就是 xmind 在 github 上的仓库。对 xmind 的操作的 api 全在 org.xmind.core 包下,按官方提示把代码拉下来在本地打个包,再引入就 ok 了。但是呢

聊聊rocketmq的updateTopicRouteInfoFromNameServer

萝らか妹 提交于 2019-12-06 08:45:44
序 本文主要研究一下rocketmq的updateTopicRouteInfoFromNameServer updateTopicRouteInfoFromNameServer rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/impl/factory/MQClientInstance.java public class MQClientInstance { private final static long LOCK_TIMEOUT_MILLIS = 3000; private final InternalLogger log = ClientLogger.getLog(); private final ClientConfig clientConfig; private final int instanceIndex; private final String clientId; private final long bootTimestamp = System.currentTimeMillis(); private final ConcurrentMap<String/* group */, MQProducerInner> producerTable = new ConcurrentHashMap