微言netty:不在浮沙筑高台】的更多相关文章

常常看到前辈们大牛们感慨, 感慨我们这一代人生活在最好的时代, 拥有海量的学习资源以及指数增长的新技术与新知识. 的确, 如果你是这个时代的大学生,或是初出茅庐的程序员, 你会发现有太多太多的选择, 甚至是穷尽一生都看不完的资料,书籍, 文档..... 但是, 作为一个亲历者,这样的环境真的是最适合程序员成长吗? 选择虽然多了,却导致许多人迷失了方向,忽视了基础知识技术的关键性.正如刘未鹏在<暗时间>里面所提到的, 对于程序员来说,如何区分本质和非本质的知识 是极为关键的. 学习了许多看似”高…
1. 写作缘起 几年前,我在一家农业物联网公司,负责解决其物联网产品线.我们当时基于.net平台打造了一套实时数据采集系统,可以把数以百万级的传感器传送回来的数据采集入库并根据这些数据进行建模.在搭建这套实时数据采集系统的时候,高并发高可用被首次提出,同时要求系统不会有太大的时延.一旦有时延,也就意味着损失.比如一个有3000头猪的猪舍,假设空气温度达到了比较高的水平,但是采集探头采集的数据上传到服务器管道中,由于被积压了5分钟后才被处理,那么主动预警系统打开风机的时候,也许已经晚了,这五分钟的…
部分内容个人感觉不是特别重要,所以没有记录了.其实还是懒 embedded pointers 把对象的前四字节当指针用. struct obj{ struct obj *free_list_link; }; 一般工业级的设计里小区块都是大于4字节的,小于四字节的区块不考虑,直接补上. 分配器 分配器 开头的样子. alloc 即_default_alloc_template,二层分配器 ROUND_UP:调到align的边界. FREELIST_INDEX:根据size和align取free_l…
per-class allocator 2 tips: operator new重载 不会被派生类实际使用,因为父类大小内存的分配交给子类去调用明显是不正确的.实际上会被转交至 : : operator new. operator delete: 使用例: 对pre-class allocator 2的个人理解:通过Union联合体实现内存空间 "待使用"(入池?)和"正在使用" (出池?) 两种状态的区分: AirplaneRep 变量 是 "正在使用&…
C++ memory primitives(原语) new 若malloc失败会调用 int _callnewh(size_t t); 即调用用户设定的handler(回调函数指针),可用于内存回收防止泄露. operator new 和 new operator的区别 new operator 是 分配内存+调用构造函数初始化 operator new 是 new operator操作的一部分,它只负责分配内存,它对构造函数一无所知! 一般长这样 void * operator new(siz…
explicit 主要用于处理一个参数的构造函数,使其不用于隐式类型转换(防止二义性) operator->() C++设计 ->可以一直保留下去 仿函数 仿函数会隐式继承他们中的一个(详见 标准库课程) namespace经验谈 放一些全局的测试代码..不用花时间去想新名字 template的实现:二次编译 模板偏特化 -- 个数的偏 从左至右绑定类型名,不可跳过. 模板偏特化 -- 范围的偏 (例:特化指针类型) 模板模板参数 -- 具体内容见C++11 这个不算模板模板参数,因为模板类型…
1. 前言 几年前,我就一直想着要设计一款自己的实时通讯框架,于是出来了TinySocket,她是基于微软的SocketAsyncEventArgs来实现的,由于此类提供的功能很简洁,所以当时自己实现了缓冲区处理,粘包拆包等,彼时的.net平台还没有一款成熟的即时通讯框架出来,所以当这款框架出来的时候,将当时公司的商业项目的核心竞争力提升至行业前三.但是后来随着.net平台上越来越多的即时通讯框架出来,TinySocket也是英雄暮年,经过了诸多版本迭代和诸多团队经手,她不仅变得臃肿,而且也不符…
说道本章标题,相信很多人知道我在暗喻石中剑这个典故,在此典故中,天命注定的亚瑟很容易的就拔出了这把石中剑,但是由于资历不被其他人认可,所以他颇费了一番周折才成为了真正意义上的英格兰全境之王,亚瑟王.说道这把剑,剑身上铭刻着这样一句话:ONLY THE KING CAN TAKE THE SWORD FROM THE STONE.虽然典故中的the king是指英明之主亚瑟王,但是在本章中,这个king就是读者自己,我们今天不仅要从百万并发基石上拔出这把epoll之剑,也就是Netty,而且要利用…
client 关闭后会执行 finally 代码块,可以在这里可以进行重连操作 public class NettyClient implements Runnable { private final String host; private final int port; private final int reconnectSleepSeconds; public NettyClient(String host, int port, int reconnectSleepSeconds){ t…
原文:http://www.iteye.com/magazines/130 博客是记录学习历程.分享经验的最佳平台,多年以来,各路技术大牛在ITeye网站上产生了大量优质的技术文章,并将系列文章集结成专栏,以便读者能够更便捷.更系统地浏览学习,这些可称之为“编程精华资源”. 为了便于读者更好地查阅,本文将ITeye中的这些精华资源进行了整理分类,你可以通过文中链接跳转到相应的专栏,希望技术大牛们的这些不可多得的经验分享,能够为你的技术学习.开发之路带来一些帮助. 在此首先要感谢分享这些知识的各位…