首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Netty学习之线程模型基本介绍

    现如今,我们使用通用的应用程序或库来相互通信。例如,我们经常使用HTTP客户端库从服务器上获取信息并通过web服务执行远程过程调用。但是,通用协议或它的实现有时并不能很好的伸缩。这就像我们不会使用通用HTTP服务器来交换大文件、电子邮件、还有像金融信息、游戏数据等实时信息。这些业务所需要的是高度优化实现协议,用于专门的目的。例如,您可能希望实现一个针对基于ajax的聊天应用程序、媒体流应用、大文件传输进行优化的http服务器。您甚至可能想要设计并实现一个完全符合您的需求的新协议。另一个不可避免的情况是,你不得不去处理一个遗留的专有协议,来保证和旧系统的互操作性。在这些情况下,重要的是在不牺牲最终应用程序的稳定性和性能的前提前,如何尽可能快的实现该协议。

    02

    Go:关于goroutine及ants的思考

    在开发项目之前之所以使用go语言是因为Go天生支持高并发,只需要go func()就可以实现一个用户态的协程,占用的资源非常小仅仅2k左右(并且支持动态扩容),而正常采用java,c++等语言启用的线程一般都是内核态的占用的内存资源一般在4m左右,而假设我们的服务器CPU内存为4G,那么很明显才用的内核态线程的并发总数量也就是1024个,相反查看一下Go语言的协程则可以达到410241024/2=200w.这么一看就明白了为什么Go语言天生支持高并发;这样一看我们发现根本不需要考虑协程池的使用,直接go func一直启用就好了,但是万事难料,我们举一个很不好的例子那就是大量的协程创建销毁需要消耗cpu性能,为了减少这些不必要的性能损失,同时可以支持高并发我们必须想办法再去减少一些不必要的cup性能损耗。 例如Java为了减少这种不必要的线程创建销毁的性能损失,官方包提供相关的线程池方案一共有四种:

    01

    阿里之路(二)

    从今年7月到现在转眼间转岗到淘宝部门已经有小半年了,最近刚刚经历人生中第一次双11实战,体验了一把系统经受高并发高流量的冲击的感觉,一个字爽,作为小白,在这小半年里面收获颇多,一个感悟是实战是提高一个人能力的唯一真理,只有真的动手去做了,才会知道会遇到什么问题。日常做项目时候不怕遇到问题如何解决,最怕有些情景考虑不到,而后者是需要经验累积起来的,一方面是试错的累积,一方面是通过书本或者思考源码得来的。来淘宝这半年来为了能够学到更多,从来不敢浪费时间,一边欣赏这人家如何用代码解决高并发高流量问题,一边学着人家如何用工具快速高效的查询系统瓶颈与查找线上问题。

    02

    微服务转型,雪崩效应是绕不过的一道坎

    记得在三年前公司因为业务发展需要,就曾经将单体应用迁移到分布式框架上来。当时就遇到了这样一个问题:系统仅有一个控制单元,它会调用多个运算单元,如果某个运算单元(作为服务提供者)不可用,将导致控制单元(作为服务调用者)被阻塞,最终导致控制单元崩溃,进而导致整个系统都面临着瘫痪的风险。 那个时候还不知道这其实就是服务的雪崩效应,雪崩效应好比就是蝴蝶效应,说的都是一个小因素的变化,却往往有着无比强大的力量,以至于最后改变整体结构、产生意想不到的结果。雪崩效应也是我们目前研发的产品直面的一道坎,下面我们来看有哪些场

    013
    领券