- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Disruptor分析
public class Disruptor<T> { - 523 //消息队列 - 640 private final RingBuffer<T> ringBuffer; //线程池 private final Executor executor; //消费者管理 - 714 private final ConsumerRepository<T> consumerRepository; private final.
2020-11-03 16:51:37 108
原创 netty启动中的nio接口
final EchoServerHandler serverHandler = new EchoServerHandler();EventLoopGroup bossGroup = new NioEventLoopGroup(1);EventLoopGroup workerGroup = new NioEventLoopGroup(4);try{ ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup).
2020-10-16 10:15:48 148
原创 源码基础-核心类
分别列举client、nameserver、broker三个部分的核心类,rocketMQ的功能实现跟这些类密不可分。有时间的话,可以一一弄清楚每个类的具体作用。ClientDefaultMQProducer对于生产消息来说,我们一般接触的第一个类就是它。DefaultMQProducer producer = new DefaultMQProducer(this.groupName);producer.setNamesrvAddr(this.namesrvAddr);producer
2020-09-25 15:45:05 159
原创 rocketMQ源码学习
目录帖,持续更新。消息保存-总述 ------https://blog.csdn.net/wusheng520/article/details/108746538消息保存-消息发送 ------https://blog.csdn.net/wusheng520/article/details/108777217消息保存-消息刷入磁盘 ------https://blog.csdn.net/wusheng520/article/details/108772638...
2020-09-25 15:42:05 120
原创 消息保存-消息刷入磁盘
消息入盘的基本逻辑都在MappedFile这个类中。根据配置的不同,MappedFile为我们准备了两块不同的缓存。DirectBuffer类型的writeBuffer MappedByteBuffer类型的mappedByteBuffer如果writeBuffer不为空的情况下,优先使用writeBuffer,否则数据将写入到mappedByteBuffer。数据只会写入一块buffer,不会同时写入。首先,我们看看什么情况下会使用writeBuffer。public boolea...
2020-09-24 15:08:53 290 1
原创 消息保存-总述
消息保存的主要逻辑在DefaultMessageStore这个类中。这里先列出关于消息保存的6个要点,这6个点可以看成是整个整个流程的主干,通过了解这些,我们可以知道在消息保存的过程中,rocketmq到底做了些什么。然后围绕这6个要点展开,挖掘其中的细节,达到彻底了解消息保存的整个流程的目的。 public PutMessageResult DefaultMessageStore::putMessage(MessageExtBrokerInner msg) 首先,我们要知道,这整个流程都是.
2020-09-23 11:20:23 127
原创 MyBatis Interceptor
最近有个需求,想对mybatis的sql查询的条件进行修改,网上查了一下,很多人说可以使用Interceptor,之前没有用过,所以做了些了解,做一下记录。 主要想了解一下基本的时序,写了点测试代码,如下:/** * 完成插件签名: * 告诉MyBatis当前插件用来拦截哪个对象的哪个方法 * 四大对象(Executor,StatementHandler,Parame...
2019-08-30 10:44:48 497
原创 棋牌游戏服务器-数据同步和持久化
涉及的角色:1 业务服务器2 数据服务器3 redis4 canal5 mysql其中业务服务器是多组的,负责游戏的业务逻辑,是数据的生产者和消费者。产生和更新的数据会将请求发送给数据服务器,由数据服务器顺序写入。数据的读取,分两种情况:1 优先通过RedisClient从Redis中读取2 如果reidis中不存在,则发送读取请求给数据服务器数据服务器
2017-11-09 16:14:26 3519
原创 java web系列之一 web容器的理解
web容器在web流程中的作用:1 当web服务器接到http请求后,把http协议转给web容器去解析。2 web容器 创建 HttpServletRequest、HttpServletResponse、HttpSession等对象。3 web容器由请求的URL決定要使用哪个Servlet来处理请求(事先由开发人员定义)。4 servlet根据请求对象(HttpS
2015-06-10 18:17:47 681
原创 andengine load texture
记录一下texture的几种加载方式1 BitmapTextureAtlasBitmapTextureAtlas mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1024, TextureOptions.BILINEAR);ITextureRegion textureRegion =
2014-12-06 17:56:47 665
原创 实例对象与类变量
在Python中,变量因赋值而生。这是刚看到一句话,深以为然,作为这篇记录的开头。刚开始接触python,用很多以前语言的概念往这个上面套,结果就掉坑里了。class Index(object): value = 'test' def __init__(self): passi = Index()i2 = Index()print Index.
2014-02-26 14:15:06 752
原创 序列之索引和分片
索引:序列的所有元素都是有编号的,编号从0开始递增,这个编号就是索引。Python也提供负数索引,作用是从最后一个元素开始,反向索引。索引的有效范围为[-n, n - 1],如果索引值不在这个范围内, 则会导致IndexError:index out of range 分片:分片通过冒号相隔的两个索引来访问一定范围内的元素。我们通过例子说明numbers = [1,
2014-01-16 20:15:24 1577
原创 Java内部类
开宗明义,本文主要阐述java内部类。关于内部类的种类,网文中有很多介绍,大概分成了四类:1 成员内部类。2 静态内部类3 局部内部类4 匿名内部类其中1和2是定义在类内部的类,2有static限定词修饰,被称为静态内部类。3和4是定义在方法内部的类 一、成员内部类首先要说明一点,所谓的内部类都是编译期间的概念。在编译完成生成之后,对于虚拟机而言,内部类和其
2013-10-18 14:35:45 2460
原创 Thread with Looper
Looper与线程之间的关系:一直没有搞得很清楚,今天有时间,翻了一下源码,记录过程 /* * class : Looper */static final ThreadLocal sThreadLocal = new ThreadLocal();请注意, sThreadLocal是一个static对象, 所有的Looper将共用一个sThreadLocal对象
2013-10-10 16:51:09 1784
原创 private/protected constructor
private constructor一个典型应用就是singleton模式 protected constructor可以禁止父类实例化
2013-07-17 19:38:22 727
转载 vim官方中文版手册
转载地址:http://bbs.chinaunix.net/thread-2026233-1-1.html================================================================================ 欢 迎 阅 读 《 V I M 教 程 》 —— 版本
2012-11-21 10:57:53 735
原创 CCTexture2D、CCTextureAtlas、CCSprite及CCSpriteBatchNode
CCTexture2D的成员变量:m_tContentSize 图片的原始大小m_uPixelsWide 大于等于原始宽度的最接近原始宽度的2的幂次方m_uPixelsHeight 大于等于原始高度的最接近原始高度的2的幂次方m_fMaxS m_tContentSize .x / m_uPixelsWidem_fMaxT m_tConten
2012-11-08 19:05:44 4735
原创 Lua基础点学习
1 表表通过构造器来创建和初始化。最简单的构造函数是{}。举个栗子:table = {[1] = 0, "sunday", "monday", 0.3e12, 2,lable = "console", ["x"] = 5, x = 10, [0] = 15, [1] = 20, [1] = "tuesday", [2] = 25, [7] = 30, {math.sin(0),
2012-11-02 10:32:30 591
原创 网络基础知识
网络层协议IP Internet Protocol 网际互联协议ARP Address Resolution Protocol 地址解析协议RARP Reverse Add
2012-10-30 15:59:43 492
转载 GetLastError的返回值
GetLastError的返回值的含义:(0)-操作成功完成。(1)-功能错误。(2)- 系统找不到指定的文件。(3)-系统找不到指定的路径。(4)-系统无法打开文件。(5)-拒绝访问。(6)-句柄无 效。(7)-存储控制块被损坏。(8)-存储空间不足,无法处理此命令。(9)-存储控制块地址无效。(10)-环境错 误。(11)-试图加载格式错误的程序
2012-10-30 13:20:37 2157
原创 Android之measure流程
预备知识:1 View实现了两个方法:measure()onMeasure()有个细节需要注意,就是measure()的方法申明:public final void measure(int widthMeasureSpec, int heightMeasureSpec);这表明这个方法是不能被其子类所重写的。2 Decorview类的继承体系DecorView-
2012-10-15 10:45:30 956
原创 Android Activity 生命周期
网上介绍Activity的生命周期的文章已经很多了,大家也说得很详细,这里只是记录自己的实验结果。先列举出Activity的关于生命周期的一系列回调函数:void onCreate(Bundle savedInstanceState)void onStart()void onRestart()void onResume()void onPause()void o
2012-10-09 16:30:48 529
转载 HTTP的错误码
错误码: 1xx-信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。 100-继续。 101-切换协议。 2xx-成功 这类状态代码表明服务器成功地接受了客户端请求。 200-确定。客户端请求已成功。 201-已创建。 202-已接受。 203-非权威性信息。 204-无内容。 205-重置内容。 206-部分内容。 3xx
2012-09-13 10:23:27 4813
原创 Lua之迭代器和范性for
基本环境:Microsoft Windows XP/Service Pack 2Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio迭代器:百度百科的解释:迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。而在Lua 中我们常常使用函数来描述迭
2012-09-12 15:40:54 3628
原创 Lua之coroutine基础
一、基本环境:Microsoft Windows XP/Service Pack 2Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio二、 coroutine的接口:(1) coroutine.create()(2) coroutine.resume()(3) coroutine.yield()(4) co
2012-09-07 14:59:08 22028 1
原创 一小段程序中的问题
//*********************//int array[1024][1024][90]; for(int i = 0;i { for(int j =0; j { for(int m =0; m { array[i][j][m] = 0; } } }//************
2010-03-22 13:45:00 637
转载 函数重载、重写与覆盖
成员函数的重载、重写和覆盖很容易混淆,有必要搞清楚概念和它们之间的区别!1 成员函数被重载的特征(1) 相同的范围(2) 函数名字相同(3) 参数不同(4) 与virtual关键字无关//函数名相同、参数相同,但是返回值不同会被编译器视为redifinition 覆盖是指派生类函数覆盖基类函数,特征如下:(1) 不同的范围(分别位于子类和基类)(2) 函数名
2010-01-26 19:43:00 453
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人