Redission源码
摘要:redisson用的是netty的io框架,逻辑在channel的handler中 先看配置,以常用的哨兵模式为例,config.useSentinelServers()+Redisson.create(config)。Redisson的构造方法中,最重要的是给connectionManager属性
阅读全文
RocketMQ 的heartBeat在做哪些事情
摘要:先考虑一个问题:在一个JVM进程中,启动多个消费者/生产者,有没有限制?使用的netty client是同一个还是多个? 以DefaultMQPushConsumer为例,start this.defaultMQPushConsumerImpl.start() mQClientFactory.sta
阅读全文
Netty调用channel.close方法和 客户端所在Java进程正常/异常关闭的细节
摘要:close方法中,客户端发出正常的挥手请求,在服务端的AbstractNioByteChannel的内部类NioByteUnsafe的read方法中,close = allocHandle.lastBytesRead() < 0这句为true,就不会进入channelRead而是进入if (clos
阅读全文
RocketMQ源码之 事务消息的回调方法应该怎么写?
摘要:两个回调方法:发送消息成功之后执行事务的executeLocalTransaction,回查时候调用的checkLocalTransaction。 发送事务消息sendMessageInTransaction的时候,参数1是message,参数2是Object类型,message的property中
阅读全文