自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(357)
  • 收藏
  • 关注

原创 记录写得比较好的博客。

http://qifuguang.me/2015/09/29/Redis%E4%BA%94%E7%A7%8D%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E4%BB%8B%E7%BB%8D/一个不错的博客。

2016-01-27 14:13:58 329

原创 netty4更新详解

netty现在应该是java界最流行的网络框架之一了,高性能,可扩展,代码优雅。之前做的页游都是用netty3.x来做网络层通信。最近看到netty4快要出来了,一些新的特性还是很值得推介的。 1.BuffChannelBuffer变成了ByteBuff。还引入了Buff对象池Unpooled来管理回收不用的buff,避免gc的频率。在netty3中,buff都是固定大小或者dynam...

2015-11-14 10:52:13 232

原创 lua

因为最近的项目需要,学习了lua编程,并使用lua进行网络相关的开发,在此记录一下用到的相关的知识。 在整个项目中,我只是负责其中的固件升级模块的开发,数据格式是自定义的,并没有采用Json或者是XML,主要是因为传输的字段比较少,而且不希望引入太多的第三方库。一、LuaSocket 项目中,采用的是tcp通信,这里仅介绍tcp相关的知识。 ...

2015-11-12 19:11:20 229

原创 Lua使用protocolbuf

在https://code.google.com/p/protoc-gen-lua/ 下载网易兄弟写的lua的protobuf插件(网易都把pb给弄完了,as3的也是他们写的..) 编译python版的protobuf模块在https://code.google.com/p/protobuf/downloads/list 下载官方的原生版本protobuf, 这里发文时使用...

2015-11-10 16:04:24 256

原创 领域模型设计

一:面向对象设计中最简单的部分与最难的部分如果说事务脚本是 面向过程 的,那么领域模型就是 面向对象 的。面向对象的一个很重要的点就是:“把事情交给最适合的类去做”,即:“你得在一个个领域类之间跳转,才能找出他们如何交互”,Martin Flower 说这是面向对象中最难的部分,这具有误导的成份。确切地说,我们作为程序员如果已经掌握了 OOD 和 OOP 中技术手段,那么如何寻找类之间的关...

2015-09-12 17:29:35 283

原创 关于分表与分库思路

首先主要实现应该参考开源产品,目前比较能上台面的是 tddl,cobar,mycat(火)。其他路由方面的思路开源参考一下学习Riak我们先分1024个虚拟表然后虚拟表再映射到实体数据库上Zookeeper存储元信息这样你就不会出现分表不够用的...

2015-07-06 15:36:59 96

原创 [原]TDDL、Amoeba、Cobar、MyCAT架构比较

布式数据库中间件TDDL、Amoeba、Cobar、MyCAT架构比较分比较了业界流行的MySQL分布式数据库中间件,关于每个产品的介绍,网上的资料比较多,本文只是对几款产品的架构进行比较,从中可以看出中间件发展和演进路线框架比较TDDL分布式数据库中间层TDDLAmoeba分布式数据库中间件AmoebaCobar分布式数据库中间件Cobar...

2015-07-06 15:02:27 222

原创 关于mysql分表

开源产品一览diamond:http://code.taobao.org/svn/diamond/trunk/Dubbo:https://github.com/alibaba/dubbometaq:https://github.com/alibaba/metaqsqlautoreview:https://github.com/taobao/sqlautoreviewtaokee...

2015-04-28 14:19:33 108

原创 NAT穿透解决方案介绍

最近公司要实现在各种网络环境下面的多屏互动(机顶盒、android phone、iphone及PC端)的需求;由于IP地址资源有限的原因,目前我们使用的各种终端设备都位于局域网后面也就是多台设备共享同一个公网IP;例如:如果位于局域网里面的一个终端Agent A要与互联网上的另一个终端Agent B通信,当A发送的data packet经过局域网出口处的NAT设备时,NAT会将data packe...

2015-04-01 03:12:08 298

原创 音视频即时通讯开发中使用P2P技术的好处

在服务器的配置文件“AnyChatCoreServer.ini”中网络配置部分,“RoutingPolicy”字段表示了P2P数据路由传输策略的配置信息,可取值分别表示:1 服务器转发模式, 所有数据传输均由服务器转发(禁止P2P);2 P2P直传模式,NAT穿透成功的用户之间互传,穿透失败的用户由服务器转发,该策略适用于局域网使用;(默认)3 P2P路由模式,P2P网格...

2015-04-01 02:59:19 153

原创 nat穿透原理

一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络程序的人员“谈穿透色变”。那么,使用T...

2015-04-01 02:01:16 122

原创 Erlang学习记录(二)——基本数据类型

Erlang学习记录(二)——基本数据类型2013-07-27 20:16 865人阅读 评论(6) 收藏 举报目录(?)[+]Erlang可以说和我以前接触过的语言都大不相同,这个从它的类型定义就可以看出来。。。反正学起来觉得既不熟悉,也不亲切,我估计在用Erlang写应用的时候,整个编程思路都要变一下了。不过存在即是合理的,鉴于Erlang在面向并发,轻量进程,方便的数据处理还有...

2015-03-30 03:51:36 106

原创 集群、分布式、负载均衡区别与联系

1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)(下面只介绍负载均衡集群) 负载均衡集群(Load Balance Cluster) 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。 负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时...

2015-03-25 22:54:37 94

原创 :如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身 ...

附标题:如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身 原文:Writing Low-Pain Massively Scalable Multiplayer Servers 介绍 本文以我的OpenPoker项目为例子,讲述了一个构建超强伸缩性的在线多游戏玩家系统。 OpenPoker是一个超强多玩家纸牌服务器,具有容错、负载均衡和无限伸缩性等特性。 ...

2015-03-24 04:04:37 110

原创 转备份 redis

关于Redis的常识分类: php开发 学习笔记 2014-02-08 13:49 1639人阅读 评论(0) 收藏 举报目录(?)[+]1. Overview1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。作者Antirez的博客,Antirez维护的Redis推特。Redis 命令中文版, huangz同学的翻译。Redis设计与实现 ...

2015-03-24 03:57:46 123

原创 备份redis

redis哈希环,如何解决mget问题?为了解决redis存储数据量问题,通常会用若干台服务器形成一个环,然后根据数据的key,哈希得到一个值,根据这个哈希值将数据存储到某一台服务器。现在我遇到一个问题:jedis又一个方法是mget,参数是一批key,然后根据这一批key从服务器获得对应的一批value。如果是根据key的哈希值来确定服务器,那么是不是意味着无法通过一次网络访问,来批量获...

2015-03-24 03:25:16 106

原创 edis在游戏服务器中的应用

edis在游戏服务器中的应用Agent`K 最近在使用Redis,忽然发现以前很多费神的事情都迎刃而解了,又应了经典:我们要做的99%的事情,别人都早已做过了!(扫盲:Redis是内存型、键值对型数据库,独立运行,不是第三方库)排行榜游戏服务器中涉及到很多排行信息,比如玩家等级排名、金钱排名、战斗力排名等。一般情况下仅需要取排名的前N名就可以了,这时可以利用...

2015-03-24 02:57:56 243

原创 一个不分服的游戏服务器设计问题?

一个不分服的游戏服务器设计问题?最近自己想设计一个游戏,类似coc或者海盗骑兵,玩家不用选择服务器。游戏主要需求:整个游戏世界有很多村落组成,村落里是若干玩家(比如上线10人)组成,若干村落组成国家。战斗包括整个村落和村落打,及玩家和玩家打,还有玩家和系统设定的npc打,玩家之间可以相互组队去打副本。所有玩家之间都可以加好友,聊天,组队聊天,世界聊天等。游戏中没有场景的概念...

2015-03-24 02:44:57 216

原创 社交游戏之双机热备方案 预防单点故障

 某一天深夜,单盘配置的服务器出现硬盘损坏,导致该服务器上所提供的服务停止,于是有了开发双机热备服务的想法,经过长时间(半年)的多人的努力,这个东西慢慢就出来了。基于各种原因,这里不能提供相关源代码,仅仅提供设计思想,基本实现思路和实现过程遇到的问题和挑战,顺带记录下这半年努力的成果,若有描述不够详细或清楚的地方,敬请见谅!  1. 稳定性思考  废话不多说,本文所说的服务器特指使...

2015-03-23 04:46:21 203

原创 游戏服务器集群设计思路

对于我们的游戏服务器端来说,除了要满足一般的MMO服务器端功能要求外,还要达到两个附加需求: 1、高可用性 避免任何服务的单点故障,各种关键服务都提供一定的冗余和故障自动切换机制。 2、动态负载均衡 游戏世界和游戏场景服务能够根据服务器网络中机器的负载情况,选择合适的宿主机器创建和动态迁...

2015-03-23 04:45:28 357

原创 Erlang类型及函数声明规格

Erlang类型及函数声明规格Author: Mail: Date: Copyright:[email protected] document has been placed in the public domain.Contents概述意义规范类型及其定义语法自定义类型定义在record中使用类...

2015-03-04 14:33:40 138

原创 (转)Erlang的config文件读取效率问题

[Erl_Question19]Erlang的config文件读取效率问题 - 学贵有恒时间 2014-08-23 11:30:00  博客园-原创精华区 原文 http://www.cnblogs.com/zhongwencool/p/erlang_config_transform.html 方法 优点 缺点 1.把配置文件统一读取...

2015-02-13 15:14:49 263

原创 (转)erlang lists模块函数使用大全

一,带函数Pred1, all(Pred, List) -> boolean()如果List中的每个元素作为Pred函数的参数执行,结果都返回true,那么all函数返回true,否则返回false例子:lists:all(fun(E) -> true end,[1,2,3,4]).结果true2, any(Pred, List) -> bo...

2015-02-12 16:26:55 108

原创 (转)Erlang和Go的并行化concurrent比较

说到concurrent,一般会想到Erlang和Go语言,这两种语言的主打特性都是concurrent,Erlang有着20多年的历史,是为简化开发电信大并发和高可靠性应用而发明的语言,Go是Google从2007年开始设计,2009年opensource出来的,Go属于一种system language,opensource的就算这两种语言吧,公司内私有的语言则有TNSDL,SDL的一个变种,...

2015-02-09 12:01:51 111

原创 超越并行框架erlang之流的通讯框架

http://blog.codingnow.com/2011/02/zeromq_message_patterns.html

2015-02-05 17:41:45 127

原创 如何使用 Oracle Linux 中的硬件故障管理

如何使用 Oracle Linux 中的硬件故障管理in Oracle Linux作者:Robert Chase了解、安装、启用和使用 IPMI 和 MCE — Oracle Linux 中的两个硬件故障管理工具。2013 年 9 月发布-----------------------------------------------------------...

2014-11-10 14:38:52 985

原创 配置nginx

http://www.cnblogs.com/wenanry/archive/2012/04/16/2451881.html配置nginx

2014-06-14 18:04:00 68

原创 centos 安装mysql

你是root權限嗎?_操作系統的_兩種方法1 使用替換法,備份原來的data/mysql,用安裝檔的替換data/mysql。[b]靠谱[/b]2 用參數 --skip-grant-table ,啓動mysqld跳過授權表,全部連接的用戶均可完全控制mysql,比較危險。通常都是本機跳開network後使用這個方法。centos 安装mysql记下午没事,闲的蛋疼,刚搞...

2014-06-13 12:23:26 70

原创 一个定期备份MySQL数据库的Shell脚本

一个定期备份MySQL数据库的Shell脚本 Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。 假定你已经知道shell scripting、 mysqldump和crontab。首先给出完整的脚本...

2014-06-11 10:01:01 133

原创 Java5泛型的用法,T.class的获取和为擦拭法站台

http://www.blogjava.net/calvin/archive/2006/04/28/43830.html Java 5的泛型语法已经有太多书讲了,这里不再打字贴书。GP一定有用,不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚,GP和Ruby式的动态OO语言属于不同的意识形态,如果是一人一票,我想大部分的平民程序员更热衷动态OO语言的平白自然。但如果不准备跳槽到...

2014-05-23 15:49:34 65

原创 计算机科学中最重要的32个算法

奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。 A* 搜索算法——图形搜索算法,从给定起点到给定终点计...

2014-05-14 11:48:30 129

原创 Protocol Buffers 语法指南

Protocol Buffers 语法指南Posted on 2013 年 4 月 11 日 by Fowler Zhang 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息石头儿和本声明。否则将追究法律责任。http://shitouer.cn/2013/04/google-protocol-buffers-tutorial/1. 概述前两篇文章...

2014-04-04 16:47:47 51

原创 使用protobuufer生成协议代码

从以下链接下载 https://code.google.com/p/protobuf/downloads/list jar包拷贝protoc.exe文件进文件夹中,建立protoc.bat文件,编辑内容为protoc.exe --java_out=./proto/ ./proto/*.proto在当前目录建立proto目录将所有的.proto协议文件拷入其中双击运行bat文件,会...

2014-04-03 18:30:31 261

原创 行为树设计

概念 * Composite Node 组合节点 * Decorator Node 装饰节点 * Condition Node 条件节点* Action Node 行为节点behaviotree 行为树AbstractNode 抽象节点AiBaseEvent 事件BlackBoard CompositeController 复合控制器Compos...

2014-03-19 11:55:42 249

原创 AVA并发编程学习笔记之AQS简介

AVA并发编程学习笔记之AQS简介分类: JAVA并发编程 2012-05-10 21:19 815人阅读 评论(1) 收藏 举报java编程thread框架semaphorejvm目录(?)[+]1、引言JAVA内置的锁(使用同步方法和同步块)一直以来备受关注,其优势是可以花最小的空间开销创建锁(因为每个JAVA对象或者类都可以作为锁使用)和最少的时间开销获得锁(单线程可以在...

2014-03-10 11:59:47 110

原创 JAVA并发编程学习笔记之MCS队列锁

http://blog.csdn.net/aesop_wubo/article/details/7538934简介与CLH类似,MCS也是由QNode对象构成的链表,每个QNode表示一个锁持有者,表示一个线程要么已经获取锁,要么正在等待锁。它与CLH不同的是,队列是一个显示链表,是通过next指针串起来的。实现MCS队列锁的具体实现如下:1、如图(a)所示,队列初始化...

2014-03-10 11:57:40 80

原创 volatile原理与并发cas

volatile原理与并发cas博客分类: java多线程算法JDK设计模式工作  为什么使用volatile比同步代价更低?  同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能.  而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低. volatile原理是什么? volatile的语义, 其实是告诉处理器...

2014-03-10 11:00:39 78

原创 Java框架集合

- StartListArrayListArrayList 是一个可变数组, 它有数组的所有优缺点, 如高效的随机访问, 低效的插入和删除. 它允许重复值, 允许null, 有序(所谓的有序指的是读取元素的顺序和插入的顺序一致).VectorVector 除了提供了同步外, 它和 ArrayList 没有任何区别, 因为它是线程安全的, 所以效率比较...

2014-03-06 15:46:30 68

原创 Fork/Join模式(JSR166y)手记之ConcurrentLinkedDeque

Fork/Join模式(JSR166y)手记之ConcurrentLinkedDequeConcurrentLinkedDeque是JSR166y中新增的一个无界并发Deque实现,基于已链接节点的、任选范围的双端队列。在迭代时,队列保持弱一致性,但不会抛出ConcurrentModificationException异常。需要小心,与大多数 collection 不同,size...

2014-03-06 15:45:04 490

原创 stack,deque,queue对比

stack堆栈,没有迭代器,支持push()方法。后进先出,top()返回最顶端的元素,pop()剔除最顶元素deque双端队列,支持迭代器,有push_back()方法,跟vector差不多,比vector多了个pop_front,push_front方法queue队列,先进先出,不支持迭代器,有push()方法,pop()剔除第一个元素,front()返回第一个元素代码...

2014-03-06 15:37:19 87

空空如也

空空如也

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

TA关注的人

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