概述

Kafka是一种分布式的,基于发布/订阅的消息系统。特点如下:

1、以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。

2、高吞吐量,即使在非常廉价的商用机器上也能做到单机每秒100k条以上消息的传输。

3、支持Kafka Server间的消息分区及分布式消费,同时保证每个Partition内的消息顺序传输。

4、同时支持离线数据处理和实时数据处理。

5、Scale out,支持在线水平拓展。

消息队列的优点:1、解耦 2、冗余 3、拓展性 4、灵活性和峰值处理能力 5、可恢复性 6、顺序保证(kafka保证一个partition内的数据是有序的) 7、缓冲 8、异步通信

基本术语

Producer:消息生产者,向kafka broker发消息客户端

Consumer:消息消费者,向kafka broker取(拉)消息的客户端

Consumer Group:每个消费者都属于一个组

Topic:消息分类主题,可理解为一个队列,一个topic里有多个partition

Partition:为实现拓展性,一个大的topic可以分布在多个broker上,一个topic可以分为多个partition,每个partition是一个有序队列。

Broker:一台kafka服务器就是一个broker,一个集群由多个broker组成

kafka基本架构

学习过程

环境:VM虚拟机,CentOS,JDK,Kafka

1、在VM虚拟机中使用Centos系统安装kafka,kafka的安装需要JDk的环境,注意新版kafka不支持jkd7,安装jdk8即可。

2、配置server.properties,这里做单机版学习,不做集群部署,注意配置对外开放host及port,不然无法访问,即打开配置文件中listeners及advertised.listeners。

3、kafka需要zookeeper环境,先启动bin/zookeeper-server-start.sh config/zookeeper.properties 再启动bin/kafka-server-start.sh config/server.properties。

4、服务端命令测试kafka,生产者启动bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test,消费者启动bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning。

5、web环境测试,新建Springboot项目,引入kafka依赖,配置基本yml,添加Producer,使用KafkaTemplate类send()发送消息,添加消费者Consumer类,使用@KafkaListener监听topic,通过ConsumerRecord进行接收。

kafka依赖_kafka的简单学习相关推荐

  1. kafka原理_kafka入门(原理搭建简单使用)

    前言 公司在用kafka接受和发送数据,自己学习过Rabbitmq,不懂kafka挺不爽的,说干就干!网上找了许多帖子,学习了很多,小小的demo自己也搭建起来了,美滋滋,下面我认为优秀的网站和自己的 ...

  2. 【Python学习随笔】依赖倒置原则 + 简单工厂模式

    记录一下Python学习中的点滴,分享一段代码. [问题背景]在不同的系统平台需要执行一段有差异的指令,该如何写出更优雅的代码? [知识点]依赖倒置原则 + 简单工厂模式 [代码分享] #!/usr/ ...

  3. kafka环境安装及简单使用(单机版)

    一个分布式发布-订阅消息传递系统 特点: 高吞吐量.低延迟 使用场景(举例): 日志收集:用kafka收集各种服务产生的log,通过kafka以统一的接口服务的方式开放给各种consumer,如had ...

  4. kafka使用_Kafka介绍与使用

    最近在研究kafka,觉得需要输出点东西才能更好的吸收,遂总结与大家分享,话不多说. 一.先上思维导图: 二.再上kafka整体架构图: 2.1.Producer:消息生产者,就是向kafka bro ...

  5. Retrofit框架简单学习使用(举例:酷狗搜索和歌曲详情接口)

    2019.09.24 说明:获取歌曲详情接口已失效,大家可根据自己实际url来测试. 首先先看效果图: 然后上Retrofit的注解表:(图片转自简书:https://www.jianshu.com/ ...

  6. BootStrap简单学习

    前言 本文是关于BootStrap的简单学习,适合后端开发者查阅. 目录 一.什么是BootStrap? 二.如何使用BootStrap? 2.1.下载BootStrap: 2.2.使用BootStr ...

  7. Linux安装软件时缺少依赖包的简单较完美解决方法!

    Linux安装软件时缺少依赖包的简单较完美解决方法! 参考文章: (1)Linux安装软件时缺少依赖包的简单较完美解决方法! (2)https://www.cnblogs.com/xiaommvik/ ...

  8. SQL Server中的锁的简单学习

    原文:SQL Server中的锁的简单学习 简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但 ...

  9. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...

    [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...

最新文章

  1. 对于150kHz导航信号放大接收模块测试实验
  2. Linux入门第四集!Jar包的入门、使用、部署!怎么打Jar包?
  3. leetcode算法题--K 次串联后最大子数组之和★
  4. python的openpyxl库如何读取特定列_Excelize 2.3.2 发布,Go 语言 Excel 文档基础库,2021 年首个更新...
  5. Matplotlib实例教程(四)水平条形图
  6. Redis源码剖析(一)服务器与客户端交互流程
  7. 0709-To Lower Case(转换成小写字母)
  8. 快速部署Enterprise Manager Cloud Control 12c(12.1) Agent
  9. Caffe将图像数据转换成leveldb/lmdb
  10. webUI自动化二-获取元素信息相关方法
  11. 清北学堂dp图论营游记day4
  12. C++容器,迭代器,容器的适配器
  13. 使用PowerDesinger 正向工程
  14. 5.网络层(3)---路由选择协议
  15. java实验报告的原理_JAVA实验报告
  16. 使用微软原生工具,反编译DLL并修改后再生成DLL
  17. Android屏幕尺寸详解
  18. 数字图像处理与Python实现-边缘检测-Prewitt算子边缘检测
  19. java模拟内存溢出并分析_本地模拟内存溢出并分析Dump文件
  20. AgNCs-NIPAM-AAc温度响应性银纳米簇荧光探针

热门文章

  1. 利用python将excel数据导入mySQL
  2. 大数据技术周报第 007 期
  3. .NET设计模式(2): 工厂方法模式
  4. ListView(3)
  5. oracle sysaux表空间不足,sysaux 表空间不足问题处理
  6. bootstrapt学习指南_TensorFlow 2.0深度强化学习指南
  7. springboot发送邮件_SpringBoot发送邮件如何实现,SpringBoot发送邮件详解(附代码)...
  8. leetcode —— 17. 电话号码的字母组合
  9. leetcode—— 401. 二进制手表(使用到将数字转换为字符)
  10. 深度学习的实用层面 —— 1.1 训练/开发/测试集