个人感觉,学好Kafka还是有一定难度的。比起mybatis框架而言,它需要掌握更多的知识点。依照个人经验来看,学习Kafka应该做到以下几点:
(1)熟悉zookeeper,要把它的命令搞清楚,能熟练使用,还有它的应用场景也要吃透,不光大数据框架离不开zookeeper,现在做web开发的人一旦涉及到分布式的应用,往往也需要zookeeper来支撑。
(2)熟悉Kafka中的各种概念,各种名词术语,熟练底层原理,把这些业务知识都要搞全面,都吃透。
(3)重视kafka的管理,不要觉得那是运维干的活,做开发的一定也要很清楚才行,而且要动手实践一下,只要这样才能把上面的理论吃透,才能真正的提升自身能力。当然,前提得对shell的有所了解。
(4)kafka的架构中除了生成者,消费者,还有一个网络层。这里面涉及到了io复用,这部分知识对于搞过Linux c/c++开发到人而言很容易,但是对于只搞java的人来说,往往难以吃透,只停留在表面上,而且容易忘。建议有时间了还是多涉猎,不要拘泥于一种开发语言。
(5)多看看kafka的源码。遇到疑难问题,往往通过看源码才能找到解决方案,读源码的重要性不言而喻,当然前提是有空闲时间了。
(6)有时间了可以了解一下rabbitmq,毕竟它是完全实现了消息中间件规范的。Kafka可以当消息中间件,但是它的野心可不止如此。如果对消息中间件领域感兴趣,rabbitmq可不能错过。不过,大多数人整天忙着加班,再者也不需要对消息领域有多么深的了解,花时间去了解一个erlang写的东西,并不划算。

以上是个人学习的一些经验总结,仅供参考。为了开发im工具,我花费了大量的时间在搞c/c++和网络编程,反过头来再看Kafka里面的源码,感觉也不是那么高深,kafka的成功不是它的技术多厉害,而是它的业务厉害,能抽象出这么多的名词术语,已经说明了这块产品设计多么精妙。最后打个广告,为自己代言,这是一个群聊软件,我的初衷就是:让任何人提出的任何问题都能找到有效的解答。具体的使用是这样的:
(1)群成员提问的格式是这样的:

@system-cmd sked ask
描述问题

按照上面的格式发出的问题,系统会接受到进行专门处理,然后开始实时跟踪这个问题。
(2)在群里成员的帮助下,问题获得了解决,那么提问题的人要进行结题,格式是这样的:

@system-cmd sked answer
问题的最终解决方案

如果一个人提出了问题,在别人帮助下,把问题解决了,然后没有下文了,没有结题,系统会给他发短信,让他及时结题。
(3)在群里的每个人都要定期参与问题的讨论,不能一直潜水,参与问题的格式是:

@system-cmd sked help
参与的内容

因为服务器费用,还有短信成本,所以加群是要交会员费的,10元/月。目前在试运行阶段。感兴趣者,请联系站长:3028063318,好友申请备注:申请会员。

标签: none

《收徒公告》已经3人报名,还差2人,报名截止日期:2018年12月15日,请移步:>>>>>>

添加新评论