首先,我们来了解一下,Netty到底是个什么东西。网络上找到的介绍:Netty是由JBOSS提供的基于Java NIO的开源框架,Netty提供异步非阻塞、事件驱动、高性能、高可靠、高可定制性的网络应用程序和工具,可用于开发服务端和客户端。

  • 为什么不用Java BIO?

    • 一连接一线程,由于线程数是有限的,所以这样非常消耗资源,最终也导致它不能承受高并发连接的需求。
    • 性能低,因为频繁的进行上下文切换,导致CUP利用率低。
    • 可靠性差,由于所有的IO操作都是同步的,即使是业务线程也如此,所以业务线程的IO操作也有可能被阻塞,这将导致系统过分依赖网络的实时情况和外部组件的处理能力,可靠性大大降低。
  • 为什么不用Java NIO?

    • NIO的类库和API相当复杂,使用它来开发,需要非常熟练地掌握Selector、ByteBuffer、ServerSocketChannel、SocketChannel等。
    • 需要很多额外的编程技能来辅助使用NIO,例如,因为NIO涉及了Reactor线程模型,所以必须必须对多线程和网络编程非常熟悉才能写出高质量的NIO程序。
    • 想要有高可靠性,工作量和难度都非常的大,因为服务端需要面临客户端频繁的接入和断开、网络闪断、半包读写、失败缓存、网络阻塞的问题,这些将严重影响我们的可靠性,而使用原生NIO解决它们的难度相当大。
    • JDK NIO中著名的BUG--epoll空轮询,当select返回0时,会导致Selector空轮询而导致CUP100%,官方表示JDK1.6之后修复了这个问题,其实只是发生的概率降低了,没有根本上解决。
  • 为什么用Netty?

    • API使用简单,更容易上手,开发门槛低
    • 功能强大,预置了多种编解码功能,支持多种主流协议
    • 定制能力高,可以通过ChannelHandler对通信框架进行灵活地拓展
    • 高性能,与目前多种NIO主流框架相比,Netty综合性能最高
    • 高稳定性,解决了JDK NIO的BUG
    • 经历了大规模的商业应用考验,质量和可靠性都有很好的验证。

为什么不用第三方SDK,如:融云、环信、腾讯TIM?
这个就见仁见智了,有的时候,是因为公司的技术选型问题,因为用第三方的SDK,意味着消息数据需要存储到第三方的服务器上,再者,可扩展性、灵活性肯定没有自己开发的要好,还有一个小问题,就是收费。比如,融云免费版只支持100个注册用户,超过100就要收费,群聊支持人数有限制等等...

Mina其实跟Netty很像,大部分API都相同,因为是同一个作者开发的。但感觉Mina没有Netty成熟,在使用Netty的过程中,出了问题很轻易地可以找到解决方案,所以,Netty是一个不错的选择。

做IM netty的优势相关推荐

  1. python开发网页有优势吗_Python用来做Web开发的优势有哪些

    Python是世界上最受欢迎的编码语言之一,在80年代后期首次受到ABC和Modula-3语言的影响而被概念化.从1991年的第一个版本到成为开源项目的2.0版本,它已经走了很长一段路,直到今天,它正 ...

  2. 软件测试用python一般用来做什么-Python用来做Web开发的优势有哪些

    Python是世界上最受欢迎的编码语言之一,在80年代后期首次受到ABC和Modula-3语言的影响而被概念化.从1991年的第一个版本到成为开源项目的2.0版本,它已经走了很长一段路,直到今天,它正 ...

  3. 采用无线网桥做监控有什么优势?无线网桥的组网模式有哪些?

    无线网桥顾名思义就是无线网络的桥接,它利用无线传输方式实现在两个或多个网络之间相互连接,无线网桥从通信机制上分为电路型网桥和数据型网桥.无线网桥通常用来应用在无线监控,用于将监控数据由一个地方传输到另 ...

  4. python数据分析优势-用Python做数据分析有哪些优势?

    原标题:用Python做数据分析有哪些优势? 在大数据的浪潮下,许多行业都开始运用数据来指导各项商业决策的实施.那么我们应该如何进行数据分析呢?这个时候Python出现在我们的眼前,作为数据分析的一大 ...

  5. python写爬虫的优势-用Python做爬虫有哪些优势 该怎么学好Python

    用Python做爬虫有哪些优势?该怎么学好Python?除了人工智能和数据分析,Python最广为人知的应用当属爬虫.所谓爬虫,是指按照一定的规则,自动地抓取万维网信息的程序或者脚本.接下来千锋小编程 ...

  6. python做个后端系统_Python做后端开发的优势

    ​ Python做后端开发的优势 1. Python开发人员的背景丰富多彩,阵营规模很大,这直接导致了Python的各种lib比Ruby多很多很多很多 2. 和Ruby相反,Python的哲学是&qu ...

  7. 高通做服务器芯片有优势吗,为什么高通海思联发科不把芯片面积做的和苹果a系列一样大?性能不就赶上了吗?...

    转载一篇文章给大家科普一下: 很久以前,我在百度贴吧的某个贴说过,这个世界很多表象和本质并不完全相同,甚至会截然相反,宏观世界的直观感受和量子力学就是典型的代表.所以透过现象看本质的能力就尤显得重要. ...

  8. 用企业微信做社群运营几大优势

    2020年越来越多的公司开始做社群,去搭建自己的私域流量,但是客户量大,员工少,运营过程就会出现一些问题,造成服务效率低,所以找到好的社群运营工具成为做社群人员第一选择.社群运营工具就不得不提企业微信 ...

  9. Python做数据分析有哪些优势?

    近年来,数据分析正在改变我们的工作方式,数据分析的相关工作也越来越受到人们的青睐.很多编程语言都可以做数据分析,比如Python.R.Matlab等,Python凭借着自身无可比拟的优势,被广泛地应用 ...

最新文章

  1. Facebook的「下一代 AI 计算平台」长什么样子?
  2. android中SimpleAdapter、ArrayAdapter的用法以及继承了ListActivity的设置适配器的方法...
  3. 1.18.2.5.Table APISQL(查询表、Table API、SQL、混用Table API和SQL、输出表、翻译与执行查询、Blink planner、Old planner)等
  4. hdu 1042 N!(大数)
  5. 每个女孩子起床后做的第一件事......
  6. maven和docker_与Maven和Docker的集成测试
  7. IIS 部署asp.net Provisional headers are shown 在VS2005返回值,部署不返回值
  8. 实现黑客帝国中的代码雨 快进来学(附源代码)
  9. dell系统重装后无法进入系统_戴尔装win7后无法进入系统怎么办?戴尔装win7后进不了系统解决方法...
  10. cdr宏教程_CDR-VBA宏完整案例详解(上部)
  11. matlab处理声音报告,基于MATLAB的语音信号分析与处理的实验报告.doc
  12. 智慧社区综合信息服务平台,让你的社区更智能
  13. 还在用Word写论文?收下这个排版神器,轻松搞定所有公式!
  14. 卸载landesk的方法
  15. mdx文件转换成html,MDX/MDD 文件格式解析
  16. android WIFI学习总结
  17. 蜡像 wax figure
  18. 前端接入阿里云外呼SDK
  19. 【oracle】配置恢复管理器Configuring Recovery Manager
  20. 分享冲压模具设计与制造的冲压模具材料

热门文章

  1. linux搭建django项目基本步骤
  2. 第八周PLC编程练习
  3. android 列表图片优化经历
  4. C++编译器与链接器工作原理
  5. 列出所有子集----------2013年1月3日
  6. ENC28J60 驱动开发要点
  7. windows xp中安装PadWalker
  8. 提高加密程序加密强度的技巧
  9. XUL Tutorial(一)
  10. 怎样设置mysql软件用户_mysql数据库用户的权限如何设置?