J***A语言程序设计b站,j***a语言程序设计***

dfnjsfkhak 44 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言程序设计b站的问题,于是小编就整理了2个相关介绍Java语言程序设计b站的解答,让我们一起看看吧。

  1. B站后台用什么搭建的,B站用什么开发的,这么大的流量居然那么稳定?
  2. Java能不能像C语言不通过JVM虚拟机直接编译成二进制机器码,让计算机直接运行?

B站后台用什么搭建的,B站用什么开发的,这么大的流量居然那么稳定?

b站谈不到稳定,属于一般水平

但是,也达到了全年可用时间三个9左右。即全年会挂52分钟不可访问。

JAVA语言程序设计b站,java语言程序设计视频-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

小破站目前来看的确是比较传统的建站技术。严重依赖外界购买的cdn厂商服务。核心技术能力在编解码播放器弹幕方面。

需要cdn的部分,包括静态web文件,图片视频直播推流。

稳定性来看,流量都在cdn上,cdn运营提供服务,和他主站就解耦了。但是前几天仍然发生主站当机,导致cdn回源主站失败的情况。

JAVA语言程序设计b站,java语言程序设计视频-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

B站后台应该也是golang和JAVA混搭的,目前B站不是在逐渐去除j***a嘛,还有就是B站后台稳不稳定跟用什么搭建没有呀直接关系,与一个系统架构设计,熔断降级等配置有关系,是否有完善的监控系统,有强大的运维团队,有高质量的代码等因素有关系

再退一步说,B站部分功能不可用的时候,除了核心接口外,其他的你也很难感知,所以你很难从外部角度来说B站的可用性

谢谢邀请!

从之前B站泄露出来的代码看,目前B站后台的核心技术栈是Go语言。至于为什么用Go语言后面会说到,事实上B站流量在行业内并不是顶尖,就算是用Go语言作为核心技术栈的网站中,B站也不是技术难度最高的。不过同样值得关注的是,B站对于UP主的保护是全行业最佳,刚刚B站也签下了冯提莫,不断大动作的B站未来发展可期。

JAVA语言程序设计b站,java语言程序设计视频-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

比B站技术难度大的网站太多了

放眼全球,比B站技术难度高的网站简直是太多了,相对于这些巨无霸企业,B站本质上依然是一个小众网站,即使在***网站,B站的技术难度也不是最高。

全球***网站领域,YouTube月活超过了18亿、日活超过了15.3亿,Pornhub日活用户也达到了8000万。国内***网站,爱奇艺的月活达到了5.38亿,腾讯***月活达到了5.33亿,B站月活跃用户仅仅只有9200万,这中间的差距太大了,很明显不是一个数量级的产品

这还是***网站,不考虑***网站,太多的网站技术难度都要比B站要高,国内天猫双十一、春晚红包、以及12306火车票购票网站、微信11亿活跃用户的流量冲击、滴滴打车和美团外卖的瞬时流量冲击,这些网站的技术难度都要远远高于B站。

回过头来看以Go语言为核心技术栈的企业,国内字节跳动后端就是以Go语言作为核心技术栈,两款龙头产品今日头条、抖音的活跃用户体量,以及并发量级同样都是B站所无法相提并论的,因此B站的技术难度并不是行业最高。

B站为什么用Go语言代替J***a重构整个核心业务

B站早期的技术选型极其混乱,当然这也是很多企业发展的一个必然过程,阿里巴巴、京东都经历过技术转型,毕竟不是每家企业都像Google、百度、腾讯一样一开始就以C/C ++为核心技术栈的互联网企业,能够避免出现技术瓶颈的问题。

B站早期是PHP为核心技术栈,毕竟对于一家公司来说,PHP往往是最快速、也是最便宜的解决方案,PHP也非常适合用来做业务和快速开发。慢慢地、B站中台逐渐被Node取代,为了让后台能够更好的支持高并发、运行更加稳定,也方便进行数据分析,B站逐渐将后台的核心技术栈转向J***a语言,这时候就开始混乱了。

在B站高速发展的时候,故障非常多,用户规模上来、业务复杂程度上来之后,问题就变得越来越严重,代码混乱、架构也不合理,随着业务的不断发展,维护成本越高、维护难度也越大,最终还是到了很难维护的地步,这时候重构就变得非常重要了,重构除了架构上的改变,那就是要选择一门新的语言作为核心技术栈。

B站的研发总监毛剑一直以来的工作经历都是Go语言,他也带着自己的Go团队加入了B站,而Go语言生态还是不错的,Google作为Go语言的创造者,有大企业背书,Go语言支持Kafka、canel、hbase等众多框架,Go语言调用效率比***还要高,能够轻松地搞定较大的并发压力和瞬时流量冲击,Go语言还跟Docker契合得非常好,似乎选择Go语言已经顺理成章了。

因此最终B站选择了Go语言重构整个B站核心技术栈,一方面是因为业务需求,一方面是因为Go语言本身的技术优势,当然一方面也因为B站技术负责人的技术背景。目前B站已经成为仅次于爱奇艺、腾讯***、优酷、芒果TV之后第五大***网站,是原创高质量UGC领域的第一大***网站,也是国内最大的弹幕***网站和二次元***网站,日前B站还签下了第一直播网红冯提莫,未来B站发展可期。


本文为作者EmacserVimer悟空问答原创文章,未经允许转载、抄袭必究!

一个项目稳定,绝对不光是开发代码的功劳,这个需要软硬结合

再强的代码,没有足够的硬件***支撑,面对大流量总有崩溃的时候!这个就牵扯到系统架构了!

当然只说到软件方面,一般大型项目或者大厂不会单纯的应用一种语言,因为有些服务可能需要用到其他语言写更加稳定,性能更到的工具,只能说是主语言是哪个

之前确实B站代码泄露,从代码看主语言是go语言!

J***a能不能像C语言不通过JVM虚拟机直接编译二进制机器码,让计算机直接运行?

目前来说是不可能的,为什么要搞一个JVM 虚拟机?你应该回看一下这个J***A的JVM诞生历史,当初搞一个虚拟机目的很简单,做为一个中间层向下与近硬件打交道,向上这是我们的[_a***_]层,屏蔽了向下的复杂性、兼容性等,提供一个跨平台Windows、Linux、Unix的基础平台,然后我们写代码就不需要考虑代码的移植问题。

你要直接机器码跳过JVM虚拟机层,那么不是又回到当初搞一个JVM的问题么?这样太折腾人了,不是不能做。

从语言设计的角度看是可以的,重新设计一下编译器就能实现,但从工程实践的角度看是不可行的。

其一,J***a语言最大的特点就是跨平台可移植,一次开发,一次编译,多平台执行,这一特性就是靠JVM(J***a虚拟机)实现的,如果改写编译器像C语言一样直接编译成了可执行程序,就失去了跨平台特性。

其二,J***a语言设计之初就设计成为了一款严重依赖JRE(J***a运行时环境)的语言,有部分语言设计上的缺陷必须依赖JVM来解决,比如GC(垃圾回收),我们知道,J***a语言是没有内存回收能力的,因此还得靠JVM,在工程实践中,如果软件不能进行内存回收,后果将是灾难性的。

其三,J***a语言是面向对象的,区别于同是面向对象的C++,J***a还有一个动态特性。

它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。在C++程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。J***a从如下几方面***取措来解决这个问题。J***a编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。而这一切同样依赖JRE。

以上几点决定了J***a不能像C语言一样直接编译成机器码,当然,还有一些其它因素,但我认为上面几点是最主要的。

到此,以上就是小编对于J***A语言程序设计b站的问题就介绍到这了,希望介绍关于J***A语言程序设计b站的2点解答对大家有用

标签: 语言 技术 JAVA