默认

新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析

查看数: 137862 | 评论数: 19 | 收藏 20
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-11-05 01:00

正文摘要:

1、引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且 ...

评论

完蛋 发表于 3 年前
引用:JackJiang 发表于 2020-12-30 22:01
把redis用成万金油了。。

反正除了redis就没有第二个数据存储的东西了
JackJiang 发表于 3 年前
引用:完蛋 发表于 2020-12-30 17:36
redis作为本公司唯一数据库,既有着和业务沟通的能力,又能够持久化消息,有时候还可以和另一个节点通信
...

把redis用成万金油了。。
完蛋 发表于 3 年前
引用:JackJiang 发表于 2020-12-29 22:15
“读缓存和读库都在redis上”,这句该怎么理解?

redis作为本公司唯一数据库,既有着和业务沟通的能力,又能够持久化消息,有时候还可以和另一个节点通信
JackJiang 发表于 3 年前
引用:完蛋 发表于 2020-12-29 18:57
所以请问读缓存和读库都在redis上正常吗?

“读缓存和读库都在redis上”,这句该怎么理解?
完蛋 发表于 3 年前
引用:JackJiang 发表于 2020-12-29 11:19
java里没有协程这个东西,如果有的话,应该会更轻量。
netty里,channel的读写是工作在Netty的i/o线程里 ...

所以请问读缓存和读库都在redis上正常吗?
JackJiang 发表于 3 年前
引用:完蛋 发表于 2020-12-29 08:39
感觉用java实现的事件驱动框架不够优雅,线程的切换消耗如何改为协程切换可能性能更高。然后channel实现在g ...

java里没有协程这个东西,如果有的话,应该会更轻量。
netty里,channel的读写是工作在Netty的i/o线程里的,你说的读缓存、读库这种业务操作,是在单独的业务线程里做的,所以不影响netty本身的i/o吞吐性能。
完蛋 发表于 3 年前
感觉用java实现的事件驱动框架不够优雅,线程的切换消耗如何改为协程切换可能性能更高。然后channel实现在go里面也更优雅,所以如果用go实现netty思想感觉更直观点。(仅个人观点)
不过go里面的channel是一种定长的管道,所以水平扩展上针对与数据库的交互是有点难的。比如在群聊的时候需要与数据库进行交互,交互完又要和缓存状态交互。这里的性能检测非常非常难,水平扩展起来也很困难。而且群聊的时候有的群消息多,有的群消息少,单点负载过多的负载均衡策略也是一个难点。因为没学过netty,所以想问一下netty是如何解决上述问题的。
yaohuan 发表于 4 年前
上面netty 很多地方说了异步。netty不是基于NIO吗,NIO不是同步非阻塞的 吗?AIO是异步非阻塞的。
laojichuxin 发表于 4 年前
谢谢分享。
JackJiang 发表于 5 年前
引用:xiaobin 发表于 2019-03-19 11:11
哦  说IM 我知道啥意思了 主要是没理解业务场景 &#128516;

xiaobin 发表于 5 年前
引用:JackJiang 发表于 2019-03-19 10:43
这哪里不理解?推送和im服务端底层都是按这种逻辑实现的

哦  说IM 我知道啥意思了 主要是没理解业务场景 &#128516;
JackJiang 发表于 5 年前
引用:xiaobin 发表于 2019-03-18 23:19
下面这句话 不太理解是什么意思 有没有相关代码可以解释下?
② 非当前 Reactor 线程调用 Channel 的各种方 ...

这哪里不理解?推送和im服务端底层都是按这种逻辑实现的
xiaobin 发表于 5 年前
下面这句话 不太理解是什么意思 有没有相关代码可以解释下?
② 非当前 Reactor 线程调用 Channel 的各种方法:
例如在推送系统的业务线程里面,根据用户的标识,找到对应的 Channel 引用,然后调用 Write 类方法向该用户推送消息,就会进入到这种场景。最终的 Write 会提交到任务队列中后被异步消费。
JackJiang 发表于 5 年前
引用:mili 发表于 2019-01-21 11:32
楼主,文章拜读了。感觉还有有点不太理解

netty不是一时半会理解的透的,慢慢来
mili 发表于 5 年前
楼主,文章拜读了。感觉还有有点不太理解
JackJiang 发表于 5 年前
引用:hxlzpnyist 发表于 2018-11-07 21:13
楼主您好 , 图中这个地方 应该是 NioEventLoop 吧

应该是NioEventLoopGroup,图上可能画的不太准确
hxlzpnyist 发表于 5 年前
新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析_223554nm0xvs0i0zso9fof.jpg
楼主您好 , 图中这个地方 应该是 NioEventLoop 吧
JackJiang 发表于 5 年前
引用:一devps 发表于 2018-11-06 10:08
分析的好好

一devps 发表于 5 年前
  分析的好好

返回顶部