java开发从零开始!kafka版本历史

普通网友      2022-04-14     652

关键词:

ActiveMQ

我们先看ActiveMQ。其实一般早些的项目需要引入消息中间件,都是使用的这个MQ,但是现在用的确实不多了,说白了就是有些过时了。我们去它的官网看一看,你会发现官网已经不活跃了,好久才会更新一次。

它的单机吞吐量是万级,一些小的项目已经够用了,但对于高并发的互联网项目完全不够看。

在高可用上,使用的主从架构的实现。

在消息可靠性上,有较低的概率会丢失数据。

综合以上,其实这个产品基本可以弃用掉了,我们完全可以使用RabbitMQ来代替它。

RabbitMQ

rabbitMQ出现后,国内大部分公司都从activeMQ切换到了rabbitMQ,基本代替了activeMQ的位置。它的社区还是很活跃的。

它的单机吞吐量也是万级,对于需要支持特别高的并发的情况,它是无法担当重任的。

在高可用上,它使用的是镜像集群模式,可以保证高可用。

在消息可靠性上,**它是可以保证数据不丢失的,**这也是它的一大优点。

同时它也支持一些消息中间件的高级功能,如:消息重试、死信队列等(后续文章会讲到)。

但是,它的开发语言是erlang,国内很少有人精通erlang,所以导致无法阅读源码。

对于大多数中小型公司,不需要面对技术上挑战的情况,使用它还是比较合适的。而对于一些BAT大型互联网公司,显然它就不合适了。

RocketMQ

接下来我们来讨论一下我比较喜欢的MQ-RocketMQ,它是阿里开源的消息中间件,久经沙场,非常靠谱。

它支持高吞吐量,能达到10万级,能承受互联网项目高并发的挑战。

在高可用上,它使用的是分布式架构,可以搭建大规模集群,性能很高。

在消息可靠性上,通过配置,可以保证数据的绝对不丢失

同时它支持大量的高级功能,如:延迟消息、事务消息、消息回溯、死信队列等等(后续文章会单独讲解)。

它非常适合应用于java系统架构中,因为它使用java语言开发的,我们可以去阅读源码了解更深的底层原理。

目前来看,它没有什么特别的缺点,可以支持高并发下的技术挑战,可以基于它实现分布式事务,大型互联网公司和中小型公司都可以选择使用它来作为消息中间件使用,如果我来做技术选型,我首选的中间件就是它。

Kafka

kafka的吞吐量被公认为中间件中的翘楚,单机可以支持十几万的并发,相当强悍。

在高可用上同样支持分布式集群部署。

在消息可靠性上,如果保证异步的性能,可能会出现消息丢失的情况,因为它保存消息时是先存到磁盘缓冲区的,如果机器出现故障,缓冲区的数据是可能丢失的(后续文章会讲到)。

它的功能非常的单一,就是消息的接收与发送,因此不适合应用于许多场景。

它在行业内主要应用于大数据领域,使用它进行用户行为日志的采集和计算,来实现比如“猜你喜欢”的功能。

所以,如果没有大数据的需求,一般不会选择它。

最后

给大家送上一份福利,领取方式:戳这里免费下载

Java架构进阶面试及知识点文档笔记

这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理

Java分布式高级面试问题解析文档

其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!

互联网Java程序员面试必备问题解析及文档学习笔记

Java架构进阶视频解析合集

必备问题解析及文档学习笔记**

[外链图片转存中…(img-MiUu6J7b-1627011865915)]

Java架构进阶视频解析合集

与50位技术专家面对面 20年技术见证,附赠技术全景图

java开发从零开始!springboot集成kafka配置

蚂蚁金服一面:下午杭州的电话,问有没有空,果断有空,虽然感觉略显紧张,有点懵逼。面试的题目:HashMap和Hashtable的区别实现一个保证迭代顺序的HashMap说一说排序算法,稳定性,复杂度说一说... 查看详情

从零开始搭建系统2.6——kafka安装及配置

从零开始搭建系统2.6——Kafka安装及配置 查看详情

从零开始学习敏捷开发

一、敏捷开发--历史背景:  20世纪60年代:软件作坊,软件规模小,以作坊式开发为主;  70年代:软件危机,硬件飞速发展,软件规模和复杂度激增,引发软件危机;  80年代:软件过程控制,引入成熟生产制造管理方... 查看详情

从零开始认识并操纵mybatis

...件关于模糊查询的补充书写Dao类测试类返回id的save原始Dao开发方式存在的问题Mapper动态代理方式优化配置文件关于Mappers映射器属性resourceclass输入类型 查看详情

从零开始学习git之git的历史

从零开始学习GitGit的历史Git诞生的背景同生活中的许多伟大事物一样,Git诞生于一个极富纷争大举创新的年代。Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。在1991&#... 查看详情

java开发从零开始!java游戏服务器开发教程

阶段一:筑基Java基础掌握不牢,对于一个开发人员来说无疑是非常致命的。学习任何一个技术知识无疑不是从基础开始;在面试的时候,面试官无疑不是从基础开始拷问。内容包括:Java概述、Java基本语法、Ja... 查看详情

从零开始手写mybatismvp版本

什么是MyBatis?MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJ... 查看详情

从零开始搭建react开发环境

最近刚好又装了一个笔记本的开发环境,主要是前端开发环境这块!要说有什么高深的知识也谈不上,不过有些小东西倒还是值得拿出来分享给大家的!当然一般会有人协助安装开发环境,不过还是建议自己能搞定的自己动手!... 查看详情

从零开始搭建kafka集群遇到的问题(代码片段)

文章目录安装kafka下载kafka_2.12-3.1.0.tgz使用Xshell将文件传入虚拟机解压启动kafka使用kakfa自带的zookeeper修改kafka配置启动kafka使用kafka创建主题查看主题生产消息消费消息搭建kafka集群搭建zookeeper集群修改配置启动zookeeper集群搭建kafka... 查看详情

从零开始用swift开发一个ios应用(仿微博)开篇-1.demo上手体验(代码片段)

最近在学iOS开发,本系列会针对iOS从前到后的开发进行全面讲解,小到开发工具使用,大到应用市场上线。需求:1.显示一个橘黄色矩形2.矩形上面一个按钮可以点击,并有响应事件3.界面中心显示一张图片系统版本:MacOS版本:1... 查看详情

从零开始的java开发1-2-4java方法

文章目录方法方法分类数组作为方法参数方法重载基本数据类型的传值数组的传值(引用数据类型)可变参数列表可变参数列表作为方法参数的重载文档注释方法的调试细节与总结方法所谓方法,就是用来解决一类问... 查看详情

[从零开始学习fpga编程-19]:快速入门篇-操作步骤4-1-verilog软件下载与开发环境的搭建-alteraquartusii版本

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/125016547目录 前言:第1章QuartusII简介1.1概述 查看详情

从零开始做第三方支付开发-----初步了解概念

这是第三方支付开发的第一篇.目前很多公司在做海外支付,但是不知道怎么开始.本人公司就是做海外产品,涉及到paypal和stripe支付,有比较多的经验,希望可以帮助需要的朋友.我是做Java开发,所以这一系列的所有例子都用Java编写,其... 查看详情

开发工具历史版本

jdk路径  http://www.oracle.com/technetwork/java/javase/archive-139210.htmlTomcat路径  http://archive.apache.org/dist/Postgresql路径  https://www.postgresql.org/download/    欢迎补充别的。。。。 查看详情

从零开始学asp.netcore与entityframeworkcore目录

...ASP.NETCore与EntityFrameworkCore介绍我是一个目录,它旨在帮助开发者循序渐进的了解ASP.NETCore和EntityFrameworkCore。文章会随着版本进行更新,关注我获取最新版本 目标我们将详细讨论和学习:.NET平台ASP.NETCoreASP.NETCoreMVCASP.NETIdentityCor... 查看详情

从零开始创建自己的区块链应用(java版)

阅读对象本文阅读对象,主要是希望和即将从事区块链开发的项目架构师,开发工程师,项目设计或产品设计师。要求阅读者具备一定的“区块链”基础知识、概念和以及相关的技术知识。如果你只需要对区块链应用做一个更深... 查看详情

从零开始创建自己的区块链应用(java版)

阅读对象本文阅读对象,主要是希望和即将从事区块链开发的项目架构师,开发工程师,项目设计或产品设计师。要求阅读者具备一定的“区块链”基础知识、概念和以及相关的技术知识。如果你只需要对区块链应用做一个更深... 查看详情

从零开始学习前端开发—3css盒模型

★  盒子模型(标准的盒模型)css盒模型的概念及组成css盒模型是css的基石,每个html标签都可以看作是一个盒模型。css盒模型是由内容(content),补白或填充(padding),边框(border),外边距(margin)四部分组成(具体如图所示)1... 查看详情