自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 96

原创 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 132

原创 源码基础-核心类

分别列举client、nameserver、broker三个部分的核心类,rocketMQ的功能实现跟这些类密不可分。有时间的话,可以一一弄清楚每个类的具体作用。ClientDefaultMQProducer对于生产消息来说,我们一般接触的第一个类就是它。DefaultMQProducer producer = new DefaultMQProducer(this.groupName);producer.setNamesrvAddr(this.namesrvAddr);producer

2020-09-25 15:45:05 145

原创 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 104

原创 消息保存-消息发送

我们主要看看生产者在调用了send之后的整个时序:生产者发送消息:broker从网络中读取到消息:

2020-09-24 16:29:00 506

原创 消息保存-消息刷入磁盘

消息入盘的基本逻辑都在MappedFile这个类中。根据配置的不同,MappedFile为我们准备了两块不同的缓存。DirectBuffer类型的writeBuffer MappedByteBuffer类型的mappedByteBuffer如果writeBuffer不为空的情况下,优先使用writeBuffer,否则数据将写入到mappedByteBuffer。数据只会写入一块buffer,不会同时写入。首先,我们看看什么情况下会使用writeBuffer。public boolea...

2020-09-24 15:08:53 256 1

原创 消息保存-总述

消息保存的主要逻辑在DefaultMessageStore这个类中。这里先列出关于消息保存的6个要点,这6个点可以看成是整个整个流程的主干,通过了解这些,我们可以知道在消息保存的过程中,rocketmq到底做了些什么。然后围绕这6个要点展开,挖掘其中的细节,达到彻底了解消息保存的整个流程的目的。 public PutMessageResult DefaultMessageStore::putMessage(MessageExtBrokerInner msg) 首先,我们要知道,这整个流程都是.

2020-09-23 11:20:23 118

原创 MyBatis Interceptor

最近有个需求,想对mybatis的sql查询的条件进行修改,网上查了一下,很多人说可以使用Interceptor,之前没有用过,所以做了些了解,做一下记录。 主要想了解一下基本的时序,写了点测试代码,如下:/** * 完成插件签名: * 告诉MyBatis当前插件用来拦截哪个对象的哪个方法 * 四大对象(Executor,StatementHandler,Parame...

2019-08-30 10:44:48 470

原创 棋牌游戏服务器-数据同步和持久化

涉及的角色:1 业务服务器2 数据服务器3 redis4 canal5 mysql其中业务服务器是多组的,负责游戏的业务逻辑,是数据的生产者和消费者。产生和更新的数据会将请求发送给数据服务器,由数据服务器顺序写入。数据的读取,分两种情况:1 优先通过RedisClient从Redis中读取2 如果reidis中不存在,则发送读取请求给数据服务器数据服务器

2017-11-09 16:14:26 3453

原创 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 661

原创 andengine load texture

记录一下texture的几种加载方式1 BitmapTextureAtlasBitmapTextureAtlas mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1024, TextureOptions.BILINEAR);ITextureRegion textureRegion =

2014-12-06 17:56:47 648

原创 实例对象与类变量

在Python中,变量因赋值而生。这是刚看到一句话,深以为然,作为这篇记录的开头。刚开始接触python,用很多以前语言的概念往这个上面套,结果就掉坑里了。class Index(object): value = 'test' def __init__(self): passi = Index()i2 = Index()print Index.

2014-02-26 14:15:06 741

原创 序列之索引和分片

索引:序列的所有元素都是有编号的,编号从0开始递增,这个编号就是索引。Python也提供负数索引,作用是从最后一个元素开始,反向索引。索引的有效范围为[-n, n - 1],如果索引值不在这个范围内, 则会导致IndexError:index out of range 分片:分片通过冒号相隔的两个索引来访问一定范围内的元素。我们通过例子说明numbers = [1,

2014-01-16 20:15:24 1553

原创 Java内部类

开宗明义,本文主要阐述java内部类。关于内部类的种类,网文中有很多介绍,大概分成了四类:1 成员内部类。2 静态内部类3 局部内部类4 匿名内部类其中1和2是定义在类内部的类,2有static限定词修饰,被称为静态内部类。3和4是定义在方法内部的类 一、成员内部类首先要说明一点,所谓的内部类都是编译期间的概念。在编译完成生成之后,对于虚拟机而言,内部类和其

2013-10-18 14:35:45 2436

原创 Thread with Looper

Looper与线程之间的关系:一直没有搞得很清楚,今天有时间,翻了一下源码,记录过程 /* * class : Looper */static final ThreadLocal sThreadLocal = new ThreadLocal();请注意, sThreadLocal是一个static对象, 所有的Looper将共用一个sThreadLocal对象

2013-10-10 16:51:09 1769

原创 private/protected constructor

private constructor一个典型应用就是singleton模式 protected constructor可以禁止父类实例化

2013-07-17 19:38:22 714

转载 vim官方中文版手册

转载地址:http://bbs.chinaunix.net/thread-2026233-1-1.html================================================================================      欢     迎     阅     读   《 V I M  教  程 》   ——     版本

2012-11-21 10:57:53 716

原创 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 4714

原创 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 578

原创 网络基础知识

网络层协议IP               Internet Protocol                                                网际互联协议ARP          Address Resolution Protocol                         地址解析协议RARP       Reverse Add

2012-10-30 15:59:43 481

转载 GetLastError的返回值

GetLastError的返回值的含义:(0)-操作成功完成。(1)-功能错误。(2)- 系统找不到指定的文件。(3)-系统找不到指定的路径。(4)-系统无法打开文件。(5)-拒绝访问。(6)-句柄无 效。(7)-存储控制块被损坏。(8)-存储空间不足,无法处理此命令。(9)-存储控制块地址无效。(10)-环境错 误。(11)-试图加载格式错误的程序

2012-10-30 13:20:37 2141

原创 Android之measure流程

预备知识:1 View实现了两个方法:measure()onMeasure()有个细节需要注意,就是measure()的方法申明:public final void measure(int widthMeasureSpec, int heightMeasureSpec);这表明这个方法是不能被其子类所重写的。2 Decorview类的继承体系DecorView-

2012-10-15 10:45:30 926

原创 Android Activity 生命周期

网上介绍Activity的生命周期的文章已经很多了,大家也说得很详细,这里只是记录自己的实验结果。先列举出Activity的关于生命周期的一系列回调函数:void onCreate(Bundle savedInstanceState)void onStart()void onRestart()void onResume()void onPause()void o

2012-10-09 16:30:48 517

转载 HTTP的错误码

错误码: 1xx-信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。 100-继续。 101-切换协议。 2xx-成功 这类状态代码表明服务器成功地接受了客户端请求。 200-确定。客户端请求已成功。 201-已创建。 202-已接受。 203-非权威性信息。 204-无内容。 205-重置内容。 206-部分内容。 3xx

2012-09-13 10:23:27 4794

原创 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 3597

原创 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 21969 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 627

转载 函数重载、重写与覆盖

成员函数的重载、重写和覆盖很容易混淆,有必要搞清楚概念和它们之间的区别!1 成员函数被重载的特征(1) 相同的范围(2) 函数名字相同(3) 参数不同(4) 与virtual关键字无关//函数名相同、参数相同,但是返回值不同会被编译器视为redifinition 覆盖是指派生类函数覆盖基类函数,特征如下:(1) 不同的范围(分别位于子类和基类)(2) 函数名

2010-01-26 19:43:00 431

sed(windows)

小工具,文本操作比较方便。命令也很简单,不会的话随便网上找找一堆。

2013-09-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除