引用:JackJiang 发表于 2020-12-30 22:01 反正除了redis就没有第二个数据存储的东西了 |
引用:完蛋 发表于 2020-12-30 17:36 把redis用成万金油了。。 |
引用:JackJiang 发表于 2020-12-29 22:15 redis作为本公司唯一数据库,既有着和业务沟通的能力,又能够持久化消息,有时候还可以和另一个节点通信 |
引用:完蛋 发表于 2020-12-29 18:57 “读缓存和读库都在redis上”,这句该怎么理解? |
引用:JackJiang 发表于 2020-12-29 11:19 所以请问读缓存和读库都在redis上正常吗? |
引用:完蛋 发表于 2020-12-29 08:39 java里没有协程这个东西,如果有的话,应该会更轻量。 netty里,channel的读写是工作在Netty的i/o线程里的,你说的读缓存、读库这种业务操作,是在单独的业务线程里做的,所以不影响netty本身的i/o吞吐性能。 |
感觉用java实现的事件驱动框架不够优雅,线程的切换消耗如何改为协程切换可能性能更高。然后channel实现在go里面也更优雅,所以如果用go实现netty思想感觉更直观点。(仅个人观点) 不过go里面的channel是一种定长的管道,所以水平扩展上针对与数据库的交互是有点难的。比如在群聊的时候需要与数据库进行交互,交互完又要和缓存状态交互。这里的性能检测非常非常难,水平扩展起来也很困难。而且群聊的时候有的群消息多,有的群消息少,单点负载过多的负载均衡策略也是一个难点。因为没学过netty,所以想问一下netty是如何解决上述问题的。 |
上面netty 很多地方说了异步。netty不是基于NIO吗,NIO不是同步非阻塞的 吗?AIO是异步非阻塞的。 |
谢谢分享。 |
引用:xiaobin 发表于 2019-03-19 11:11 嗯 |
引用:JackJiang 发表于 2019-03-19 10:43 哦 说IM 我知道啥意思了 主要是没理解业务场景 😄 |
引用:xiaobin 发表于 2019-03-18 23:19 这哪里不理解?推送和im服务端底层都是按这种逻辑实现的 |
下面这句话 不太理解是什么意思 有没有相关代码可以解释下? ② 非当前 Reactor 线程调用 Channel 的各种方法: 例如在推送系统的业务线程里面,根据用户的标识,找到对应的 Channel 引用,然后调用 Write 类方法向该用户推送消息,就会进入到这种场景。最终的 Write 会提交到任务队列中后被异步消费。 |
引用:mili 发表于 2019-01-21 11:32 netty不是一时半会理解的透的,慢慢来 |
楼主,文章拜读了。感觉还有有点不太理解 |
引用:hxlzpnyist 发表于 2018-11-07 21:13 应该是NioEventLoopGroup,图上可能画的不太准确 |
楼主您好 , 图中这个地方 应该是 NioEventLoop 吧 |
引用:一devps 发表于 2018-11-06 10:08 |
分析的好好 |