消息队列中间件哪种多?
ActiveMQ,是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 MetaQ,是一款完全的队列模型消息中间件,服务器使用java语言编写,可在多种软硬件平台上部署。客户端支持Java、c++编程语言。单台服务器可支持1万以上个消息队列,通过扩容服务器,队列数几乎可任意横向扩展。每个队列都是持久化、长度无限(取决于磁盘空间大小)、并且可从队列任意位置开始消费
有人说腾讯使用C++为主要开发语言?j***a少?为什么?
我所见到的一部分原因是,腾讯内部的各类c++组件已经非常丰富并且稳定了,这种情况下若非特殊原因,实在没理由花力气和冒风险去切其他性能还不如c++的语言,我c/c++,j***a,python,lua都写过,对语言并无偏执。我接触到的一个基础模块,日请求量200亿+,服务器数目却不足百台,其他语言是很难做到的。所以,新模块开发依然首选c++,但内部也一直鼓励新技术,前提是有正当理由。很多时候我们只是了解到一点皮毛,然后就根据这点皮毛去揣测不熟知的领域,这里不单指计算机语言,这种习惯是很危险的,共勉。
腾讯最开始是以做通讯软件开始发家的,也就是qq.因为qq主要涉及到的就是网络通讯这一块,再加上当时主要就是用在PC端,从程序的效率考虑C++无疑都是最好的选择。包括后面腾讯的一系列产品qq音乐,qq管家,qq游戏等等基本上都是基于C++开发的。据我所知他们的服务端应该也是用C++写的。
我负责过QQ秀和Qzone的运维,也在QQ秀做过开发,当时我所在的部门,如果用j***a作为开发语言的话以当时服务器的数量是不足以支撑数亿用户的服务的。
要知道,与淘宝不同,腾讯许多业务是***的,例如qzone的许多功能都可以***包括心情,日志,相册,服务器要承担这些亿级的有大量高密集的碎片化请求,如果用j***a来支撑,经济上是不划算是一方面,响应速度方面用户体验也非常不好。
再来看淘宝,与qzone发个心情,日志相比淘宝用户在淘宝上的行为最终要触发商品交易的,说通俗点就是淘宝用户的行为大都是跟钱相关,而且淘宝要不断迭代更新的同时确保程序逻辑的严谨,J***a综合来说是个非常好的选择。
对于高效处理这些高密集的用户请求,c是一个非常好方案,非常适合腾讯的用户场景;淘宝也不是不用c,像淘宝的图片服务器,也是属于海量的高密集用户请求服务,淘宝在这里使用淘宝技术团队修改过的nginx,我们都知道nginx就是c开发的,类似的场景在淘宝的服务架构里应该还有很多这样的例子,阿里也雇佣了不少c的工程师,Linux内核工程师。
J***a常用框架有哪些?先学哪一个比较有优势?
这个问题问的好,J***a常用的框架很多,早年struts2+spring+hibernate 也就是著名的ssh三大框架,再到Springmvc,再到一站式开箱框架springboot,再到现在号称要一统天下的微服务架构springcloud,由于受到历史项目的影响,以上框架几乎在企业都有存在,那么问题来了,这些玩意全部都要学?是否有[_a***_]?其实答案很简单,没有捷径的,要想有优势就是应该掌握基础,好好的弄懂J***a语言的特性,学习最基础的理论知识servlet,request,response,session.......等等,等你掌握了扎实大理论基础,你会发现你不管掌握任何一个流行框架只需要一周到两周,并且每天仅需两小时