• 交换机
  • 2024-04-19 21:22:16
  • 0

开源交换机系统web,开源 交换机

大家好,今天小编关注到一个比较有意思的话题,就是关于开源交换机系统web的问题,于是小编就整理了1个相关介绍开源交换机系统web的解答,让我们一起看看吧。

为什么有很多出名开源的C/C++方面的高性能网络库,比如libevent,boost-asio,有些企业还要自己写?

那是你没有理解开源的本意,所谓开源是给你免费试用,如果觉得好的话,可以付费维护。这才是开源软件可以持续发展的本意。而你只知道开源而已,任何开源软件都不是给你公司量身定做的,所以很多时候需要深入修改或者扩展,很多开源协议明确指出商业限制,所以大公司前端开源,后端闭源。所以后端也不能乱用开源软件的。再者你出于何目的,让别人的开源团队免费给你写软件,同时还要求及时更新维护,而你却不打算付一分钱?你为啥不这样免费给老板打工呢?所谓免费的也是最贵的,就是这个道理!

开源交换机系统web,开源 交换机

自己写的原因只有一个,市面上的开源框架不能满足公司现有业务场景。

大家常见的开源框架基本是以解决问题的方案为主。题主提到libevent或者boost-asio都标榜自己在高性能方面大量的优化,在实际使用时,也是或多或少存在一定不足。此外,大家在选型C++时绝大多数是看重它的处理效率。如果有更好的解决方案时,一般不会选择开源框架。

网络通信socket的原生API函数及处理逻辑通俗易懂。一般水平的C/C++程序员,经过短期的学习都可快速掌握socket网络编程,最多是在处理TCP粘包问题上多下点功夫。

C/C++语言可以让程序员自己内存管理是提高处理效率的关键。自己处理内存优势很大,比如能对象减少创建和析构的次数、避免没有必要的对象拷贝、有效避免锁争用等。开源框架的有上手快的优势,但为了降低学习壁垒在性能上做了很大的牺牲。另外,数据处理链路长,内存自管理在性能上损失非常大。通用框架处理效率到毫秒级很轻松,迈上更高层次微妙级几乎是不可能的。这是大厂根据自己业务场景自己的的根本原因所在。

开源框架带给大家的好处是显而易见的。建议初级阶段尽量采用框架,业务发展到一定程度之后,再考虑也不迟。毕竟市面上大多数行业对处理时延毫秒级就足够了。

首先,你如何保证别人的轮子是圆的?很多企业是因为已经用过了很多方轮子才决定自己写的。其次,每一个轮子也有各自物理限制和基础需求,这些在企业内部未必一定能满足。就好像你拿了两个专业大矿车才用的,直径都三四米,重量按吨算的轮子,跟我讲要组装一辆自行车?别说能组装不组装得出来,组装出来了,你骑得动吗?如果一味地在x86环境下,你会觉得什么轮子都可以用,但是你要是某天突然遇到一个mips环境,内存只有几M的硬件环境,用着uclibc的底层和非linux的实时操作系统。你就会发现很多库的引入也许根本就不现实,还不如自己徒手上一个来得简单。对于高手而言,这些基础io都是信手拈来的,可以提前规划好优化方案和调用路径,甚至可以提前计算出理论上限,满足了项目要求就可以。何必引入一个不确定是否能满足产品要求的库呢?这类系统里,可能内核都是修改过或者裁剪过得,你如何可以保证引入的库可以跑起来,编译脚本可能都得自己写,更别谈移植过程中的各种奇怪bug与妥协了。此外就是你现在觉得可能有各种库,但是当年并没有,那么只能自己写。又或者当年的情况,要支持多个环境,没有一个库可以支持那么多环境的。只是你参与的项目少而已罢了。举个例子,你能列举一个可以在nds游戏机里面跑的网络库吗?又或者简单点可以说明下有哪几个异步网络库可以在linux2.6下面稳定跑,并且没有任何问题?

到此,以上就是小编对于开源交换机系统web的问题就介绍到这了,希望介绍关于开源交换机系统web的1点解答对大家有用。

相关推荐