本文共 2312 字,大约阅读时间需要 7 分钟。
哈喽!大家好呀,真是一坑未平一坑又起,otter还在继续更新的同时,笔者也为大家带来了关于kafka相关的一系列博客,要说到kafka就离不开现在特别火热的大数据技术,了解的童鞋可能只要一些大数据的带名词比如Hadoop,spark,storm,包括最近很火的微服务,kafka也是其中一员,但是不同的是kafka并不负责处理数据,要给kafka一个定义的话应该是一个分布式发布订阅消息系统可以说是一个数据通道保证数据稳定传输,要是感兴趣就开始和喵咪开始一场kafka的冒险吧!
附上:
喵了个咪的博客:
KafKa官网地址:
Git地址:
笔者是怎么了解到KafKa的呢?其实这个也源于InfoQ大会的功劳(InfoQ大会是一个技术架构分享峰会),在之间有很多大家耳熟能详的公司来分享一些技术,大家在谈论大数据技术的时候使用到了本文开篇提的Hadoop,spark,storm此类技术,但是他们都要有一个共同点,就是大部分使用了KafKa作为了数据传输的通道,并且还有很多不需要使用到大数据的公司也在使用KafKa,为什么都要使用KafKa呢?KafKa能支撑大数据处理吗,KafKa还能做什么,笔者带着这些疑问,开始对KafKa进行了了解!
KafKa是一款由Apache软件基金会开源,由Scala编写的一个分布式发布订阅消息系统,Kafka最初是由LinkedIn开发,并于2011年初开源(知道这个就够了),KafKa它最初的目的是为了解决,统一,高效低延时,高通量(同时能传输的数据量)并且高可用一个消息平台.
说的更简单易懂一点就是帮助程序之间互相传递消息,并且提供一些保证,所有的大数据处理也好,微服务也好他们都有一个共同的需求就是一个稳定的数据通道,KafKa刚好就是一个稳定高效通道最佳选择!
笔者也是总结了一些关于KafKa的一些特性如下:
KafKa可以代替传统的消息队列软件(阿里的队列软件RocketMQ就是基于KafKa实现的),在队列软件的选择上KafKa已经成了不二之选,使用KafKa来实现队列有如下优点
就以上几点和笔者之前使用的Redis来承载队列服务要优秀的多,在后续文章的比较中会一一说明
在很多时候我们需要对一些庞大的数据进行存留,一些业务型公司可能永不上应为基本可以依靠数据库解决日志的问题,但是服务型公司比如jpush,云监控此类服务,日志存储这块会遇到巨大的问题,日志不能丢,日志存文件不好找,定位一条消息成本高(遍历当天日志文件),实时显示给用户难,这几类问题KafKa都能游刃有余
kafka特有的offset机制能够保证消息至少被获取一次,当程序在获取途中死亡这条消息会被认定为未被消费,下次会继续消费这条消息,此特性使得kafka可以作为一个保障数据传输的通道来使用,但是kafka并没有提供JMS中的"事务性""消息传输担保(消息确认机制)""消息分组"等企业级特性;所以kafka只能使用作为"常规"的消息系统
本节简单介绍了一下kafka的一些相关知识,在后续的博文中喵咪将会从搭建单机到集群对KafKa进行优化测试等场景进行说明,那么今天的就到这里了,再次感谢大家的支持!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
转载地址:http://aytoo.baihongyu.com/