会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
lack
the quieter you become,the more you are able to hear
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
25
下一页
2018年7月28日
Netty源码—六、tiny、small内存分配
摘要: tiny内存分配 tiny内存分配流程: 1. 如果申请的是tiny类型,会先从tiny缓存中尝试分配,如果缓存分配成功则返回 1. 否则从tinySubpagePools中尝试分配 2. 如果上面没有分配成功则使用allocateNormal进行分配 从缓存中分配 这里以启用了缓存为例来说明,使用
阅读全文
posted @ 2018-07-28 09:41 lacker
阅读(1334)
评论(0)
推荐(0)
2018年7月26日
Netty源码—五、内存分配概述
摘要: Netty中的内存管理应该是借鉴了FreeBSD内存管理的思想—— "jemalloc" 。Netty内存分配过程中总体遵循以下规则: 优先从缓存中分配 如果缓存中没有的话,从内存池看看有没有剩余可用的 如果已申请的没有的话,再真正申请内存 分段管理,每个内存大小范围使用不同的分配策略 我们先总体上
阅读全文
posted @ 2018-07-26 23:50 lacker
阅读(3329)
评论(0)
推荐(1)
Netty源码—四、事件处理
摘要: 前面经过channel初始化、注册,所需要的数据结构(epoll_event)基本上准备好了,serverSocket也处于监听状态,可以接收来自客户端的请求了。NioServerSocketChannel注册在了NioEventLoop selector,在注册过程中启动了NioEventLoop
阅读全文
posted @ 2018-07-26 01:17 lacker
阅读(1057)
评论(0)
推荐(0)
2018年7月25日
Netty源码—三、select
摘要: NioEventLoop功能 前面channel已经准备好了,可以接收来自客户端的请求了,NioEventLoop作为一个线程池,只有一个线程,但是有一个queue存储了待执行的task,由于只有一个线程,所以run方法是死循环,除非线程池shutdown。 这个run方法的主要作用: 1. 执行s
阅读全文
posted @ 2018-07-25 00:54 lacker
阅读(2234)
评论(2)
推荐(1)
2018年7月24日
Netty源码—二、server启动(2)
摘要: 我们在使用Netty的时候的初始化代码一般如下 前面已经说过线程池的启动过程,接下来就是通过builder模式构造启动参数,接下来看看bind的过程。channel的注册和ip:port的绑定都是在bind方法中进行的,bind方法的主要逻辑是 1. 初始化channel 2. channel注册到
阅读全文
posted @ 2018-07-24 00:47 lacker
阅读(1055)
评论(0)
推荐(0)
2018年7月22日
Netty源码—一、server启动(1)
摘要: `说明:netty源码系列是基于4.1.25版本的netty源码的` Netty作为一个Java生态中的网络组件有着举足轻重的位置,各种开源中间件都使用Netty进行网络通信,比如Dubbo、RocketMQ。可以说Netty是对Java NIO的封装,比如ByteBuf、channel等的封装让网
阅读全文
posted @ 2018-07-22 13:53 lacker
阅读(3395)
评论(0)
推荐(0)
2018年5月24日
RocketMQ源码 — 十一、 RocketMQ事务消息
摘要: 分布式事务是一个复杂的问题,rmq实现了事务的最终一致性,rmq保证本地事务成功消息一定会发送成功并被成功消费,如果本地事务失败了,消息不会被发送。 rmq事务消息的实现过程为: 1. producer发送half消息 2. broker确认half消息,并通知producer,表示消息已经成功发送
阅读全文
posted @ 2018-05-24 23:45 lacker
阅读(2975)
评论(2)
推荐(1)
2018年5月23日
RocketMQ源码 — 十、 RocketMQ顺序消息
摘要: RocketMQ本身支持顺序消息,在使用上发送顺序消息和非顺序消息有所区别 发送顺序消息 send方法带有参数MessageQueueSelector,MessageQueueSelector是让用户自己决定消息发送到哪一个队列,如果是局部消息的话,用来决定消息与队列的对应关系。 顺序消息消费 从使
阅读全文
posted @ 2018-05-23 00:37 lacker
阅读(3344)
评论(0)
推荐(1)
2018年5月10日
RocketMQ源码 — 九、 RocketMQ延时消息
摘要: "上一节" 消息重试里面提到了重试的消息可以被延时消费,其实除此之外,用户发送的消息也可以指定延时时间(更准确的说是延时等级),然后在指定延时时间之后投递消息,然后被consumer消费。阿里云的ons还支持定时消息,而且延时消息是直接指定延时时间,其实阿里云的延时消息也是定时消息的另一种表述方式,
阅读全文
posted @ 2018-05-10 00:05 lacker
阅读(4042)
评论(0)
推荐(1)
2018年5月8日
RocketMQ源码 — 八、 RocketMQ消息重试
摘要: RocketMQ的消息重试包含了producer发送消息的重试和consumer消息消费的重试。 producer发送消息重试 producer在发送消息的时候如果发送失败了,RocketMQ会自动重试。 上面这个方法区分出不同的消费结果: org.apache.rocketmq.client.co
阅读全文
posted @ 2018-05-08 22:26 lacker
阅读(4306)
评论(0)
推荐(1)
上一页
1
2
3
4
5
6
···
25
下一页
公告