• huaweichen
    2019-06-04
    曾国藩:真正聪明人都在下笨功夫!

    https://zhuanlan.zhihu.com/p/25100394
     1
     42
  • Lei Yang
    2019-06-03
    老师可以讲一讲Kafka和别的mq的区别和最佳选择方法么?例如什么时候选择RabbitMQ什么时候选择Kafka等等

    作者回复: RabbitMQ属于比较传统的消息队列系统,支持标准的消息队列协议(AMQP, STOMP,MQTT等),如果你的应用程序需要支持这些协议,那么还是使用RabbitMQ。另外RabbitMQ支持比较复杂的consumer Routing,这点也是Kafka不提供的。

     1
     21
  • 开发无止境,BUG随身...
    2019-06-03
    有个问题请教下老师:
    之前也用过kafka,怎么解决实时结果响应问题呢?比如秒杀商品,生产者产生订单,消费者处理订单结果,那这结果如何实时返回给用户呢?

    作者回复: 这个场景使用Kafka Streams比较适合,它就是为read-process-write场景服务的

    
     21
  • 孙志强
    2019-06-04
    讲讲怎么把50完行源代码读下来的? 嘿嘿

    作者回复: 一行一行啃下来的。如果你也有兴趣,我建议可以先从kafka.log包开始读起,会很有收获的~~

    
     19
  • Dovelol
    2019-06-03
    老师好,想问下有些业务用mq来做异步处理,为了削峰填谷,是不是上游发送消息成功就认为业务成功了,可能下游过很久去消费,那实时性要求很高的业务怎么办呢,比如生成了订单但是一直不处理也不好吧。另外想请教下老师的角度来讲下mq和rpc调用的区别是什么呢?

    作者回复: mq和rpc的区别往大了说属于数据流模式(dataflow mode)的问题。我们常见的数据流有三种:1. 通过数据库;2. 通过服务调用(REST/RPC); 3. 通过异步消息传递(消息引擎,如Kafka)
    RPC和MQ是有相似之处的,毕竟我们远程调用一个服务也可以看做是一个事件,但不同之处在于:
    1. MQ有自己的buffer,能够对抗过载(overloaded)和不可用场景
    2. MQ支持重试
    3. 允许发布/订阅模式
    当然它们还有其他区别。应该这样说RPC是介于通过数据库和通过MQ之间的数据流模式。

    
     15
  • jeffery
    2019-06-03
    pulsar高吞吐低延迟和kafka谁会主宰未来?夕哥、能不能拓展下flink+kafka的耦合!谢谢

    作者回复: 和Pulsar的斯杰、翟佳都相识,不敢妄下结论。Flink + Kafka最近的确有标准套餐的趋势:)

    
     15
  • paradox
    2019-06-03
    1. consesus algorithm,在区块链中多翻译为共识算法,而在其它领域多被翻译为一致性算法,个人觉得共识算法表意更清楚。

    2. 削峰填谷,实际上就是流量整形的形象表达,主要还是为了应对上游瞬时大流量的冲击,避免出现流量毛刺现象,保护下游应用和数据库不被大流量打垮。
    
     12
  • 安不安生
    2019-06-03
    我们公司用来传输视频切片,然后使用集群进行视频分析,之前曾经用过kafka ,因为没有人熟悉,不会维护,导致放弃,现在使用aws kinesis 服务,怎么才能说服领导引进kafka 呢?

    作者回复: hmmm... 使用Kafka自己把控度会高一些。另外很多公司对数据出公网是有顾虑的,使用云上的服务必然涉及到将 公司数据传给云服务器的问题。如果是敏感数据这也是要考虑的

    
     6
  • 东风第一枝
    2019-06-03
    Kafka官网的描述是“Apache Kafka® is a distributed streaming platform.”,我觉得这里的重点在于分布式和流式处理,而且我认为消息引擎也可以看做是流式处理的一种,不知道老师怎么看?

    作者回复: Kafka是以消息引擎起家的,后面转型成流处理平台。没有冒犯的意思,我不认为消息引擎是流处理的一种。事实上,流处理在意的是如何处理无限数据集的问题。它们是不同的领域:)

    
     6
  • 杨鹏程baci
    2019-06-20
    胡夕老师好,我是第一次在这提问,这门课程我应该是0基础了,有一些疑问希望老师帮忙解答一下,用消息引擎的这种数据流数据方式,上游是不是就无法得知处理结果了,甚至是无法将返回值传回上游了?谢谢!

    作者回复: 嗯嗯,确实不太容易。因为这种通信方式一般是异步且是单向的,如果你需要这种回馈机制,最好使用服务调用 的方式

    
     5
  • Shane
    2019-06-14
    老师,今天才学习到这篇文章,还是老师能够在百忙之中抽出时间来解答我的困惑。
    这篇文章提到了消息的协议,老师这里介绍了两种模式一种是点对点,一种是订阅,发布模式。但是,为什么我一开始想到消息的协议是http之类的传输协议?这两个有什么区别和联系?

    作者回复: http不属于消息传输协议,它是网络通信协议的一种,严格来说这是两个范畴或者说是两个层次上的协议。

    通常来说,两个进程进行数据流交互的方式一般有三种:
    1. 通过数据库:进程1写入数据库;进程2读取数据库
    2. 通过服务调用:比如REST或RPC,而HTTP协议通常就作为REST方式的底层通讯协议
    3. 通过消息传递的方式:进程1发送消息给名为broker的中间件,然后进程2从该broker中读取消息。消息传输协议属于这种模式

    因此我说虽然我们都称它们为协议,但它们不是一个层次上的协议。

     2
     5
  • Bin滨
    2019-06-19
    谢谢知识分享。
    在Martin Kleppmann 的书中把kafka 定义成 log-based message brocker, 这个基本上是对kafka最简单的定义了。append-only, partition, totally ordered 是比较需要理解的概念。

    作者回复: 嗯嗯,DDIA是一本神书:)

    其实这个定义最早还是Kafka作者Jay Kreps提出的,有兴趣可以看看Kafka的论文:http://notes.stephenholiday.com/Kafka.pdf
    以及Jay Kreps的 《I ❤️ Logs》

    
     4
  • Jawohl
    2019-06-07
    我们公司用kafaka通过埋点,日志分析,做链路监控,某个业务接口出现问题,预警系统发送消息给处理人。很及时有效,不用等运维那么慢的反馈了。合作方对比处理效率也很满意。
    
     4
  • 吃饭饭
    2019-06-03
    胡老师好,我想请教一个学习方法,我在做Kafka测试的时候遇到一个问题,我记得以前老版本的时候使用命令行进行Demo测试时,消费消息到控制台使用:bin/kafka-console-consumer.sh --zookeeper localhost:2181/kafka --topic test 就可以,但是今天我换了高版本发现不对了,以前的 --zookeeper 新版本不支持了。知道这点后我希望能够从官网找到具体是哪个版本开始删除这个指令的以及删除的原因,但是我这种为题我不会查询官网,只能从百度等搜索引擎上看其他人的一些总结,希望老师能给示例一番,感谢。

    作者回复: 指定--zookeeper是老版本的消费者,新版本需要指定--bootstrap-server。新版本消费者API是0.9版本引入的,主要是为了移除消费者API对ZooKeeper的依赖。专栏后面有文章谈到这一点。
    新版本使用方法:
    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

    
     4
  • 清晨吼于林
    2019-06-11
    1、A系统为什么不能直接把消息发送给B系统? 这可以出一个面试题,😆
    2、作者的学习经历确实让人很振奋,可不可以花一个章节,专门讲讲,你当时是怎么读kafka的源码的?🙏
    
     3
  • niemo
    2019-06-10
    我们公司使用kafka做不同数据库之间的准实时同步
    
     3
  • 燕子上
    2019-06-04
    我司直接把kafka当mq来使用,高吞吐、低延迟、松耦合。对!我司看上了松耦合,哪哪都要用kafka解耦,真正的面向kafka编程🤣

    作者回复: 赞👍

    
     3
  • 丁满和彭彭
    2019-06-27
    老师,卡夫卡的消息超过了log.retention.bytes以后可以拒绝生产者的消息么,现在默认好像直接删除

    作者回复: 不能拒绝。这个是留存策略。一旦超过阈值开启老消息删除,而不是拒绝新消息。

    
     2
  • dream
    2019-06-22
    老师能不能分享一下,kafka作为消息引擎(不考虑流式处理),对比其他消息引擎的优势,什么时候用kafka,什么时候用Active MQ等消息引擎?

    作者回复: Active MQ属于传统的消息中间件,支持传统的消息传输协议(AMQP, STOMP, MQTT),而且这些传统中间件(比如RabbitMQ)都支持比较复杂的消息路由,这些都是Kafka不具备的。如果你的应用要支持这些协议或者是用于SOA中的应用互联,那么这些传统消息中间件比较合适。

    反观Kafka还是在大数据场景下孕育的框架,如果你的场景都是大数据方面的,可以考虑使用Kafka。

     1
     2
  • Geek_91f197
    2019-06-10
    文中错误,Facebook的avro,不应该是thrift ?

    作者回复: 嗯嗯,是的,已提交勘误。谢谢您的反馈:)

    
     2
我们在线,来聊聊吧