<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[堆码时刻]]></title><description><![CDATA[偶尔沉思，偶尔睡觉，思绪来来去去，也许会在这里停留]]></description><link>https://blog.youkuaiyun.com/abc_key</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; abc_key]]></copyright><item><title><![CDATA[关于手游app的开发]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/88772204</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/88772204</guid><author>abc_key</author><pubDate>Sun, 24 Mar 2019 20:23:49 +0800</pubDate><description><![CDATA[前端用的unity，使用xlua做热更，基本百分之九十的功能都是使用xlua来编写的，只有网络、协议、核心通用工具是用c#来做的；

后端使用java，网络使用netty框架，数据库用mysql；

前后端通讯协议使用google的protobuf，需要到git上找protobuf的xlua支持，官方已经支持了java；

游戏中都会有定时器的处理，比如某玩法中的发牌、抢庄、翻牌等，如果放在客户端...]]></description><category></category></item><item><title><![CDATA[java中读取配置文件]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/46511259</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/46511259</guid><author>abc_key</author><pubDate>Tue, 16 Jun 2015 01:56:12 +0800</pubDate><description><![CDATA[若是java web项目，项目运行于tomcat或其他容器时，可以使用下面方式来获取文件的输入流
1、当属性文件放在src下面时
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.properties");
Properties p = new Properties]]></description><category></category></item><item><title><![CDATA[游戏服务端中使用Servlet和Java注解的一个好设计]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/46449833</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/46449833</guid><author>abc_key</author><pubDate>Thu, 11 Jun 2015 02:10:22 +0800</pubDate><description><![CDATA[SNS类游戏基本都是使用HTTP短连接，用Java来开发服务端时可以使用Servlet+Tomcat很轻松的架构起服务端来。在这里介绍一种使用Servlet比较好的一种设计，我也见过很多基于HTTP请求的游戏服务端使用Struts、Spring、Hibernate等等，其实我感觉对于游戏来说使用这些东西很繁琐，若是开发Java Web应用使用SSH倒是合情合理。
使用Servlet时，我们可以只]]></description><category></category></item><item><title><![CDATA[号称性能最好的JDBC连接池:HikariCP]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/46434447</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/46434447</guid><author>abc_key</author><pubDate>Wed, 10 Jun 2015 01:27:32 +0800</pubDate><description><![CDATA[HikariCP号称是现在性能最好的JDBC连接池组件，具体的性能到底如何，我也没有仔细的测试过，不过从它现在的发展来看，其可能确实如它宣传的那样其性能高过目前所有的连接池组件。之前对连接池的记忆一直都是C3P0、DBCP、BoneCP，这三者中BoneCP的性能是最好的，C3P0的性能在现在来说确实是非常差的了，好像C3P0很久都没有更新了，所以我们应该杜绝在项目中使用C3P0，至于是否要使用H]]></description><category></category></item><item><title><![CDATA[减少linux服务器大量TIME_WAIT]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/46420417</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/46420417</guid><author>abc_key</author><pubDate>Tue, 09 Jun 2015 01:08:46 +0800</pubDate><description><![CDATA[将项目部署到linux上后，发现系统有大量的TIME_WAIT状态的链接，大量TIME_WAIT状态的链接不能被及时回收导致的结果就是系统可用socket被耗尽而无法处理新的请求。对于http协议的短连接请求，应该要防止产生大量的TIME_WAIT，我们可以通过设置linux网络参数来达到目的，步骤如下：
1、编辑sysctl.conf
#cd /etc/
#vim sysctl.conf]]></description><category></category></item><item><title><![CDATA[nginx+tomcat负载均衡]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/46137941</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/46137941</guid><author>abc_key</author><pubDate>Fri, 29 May 2015 00:48:07 +0800</pubDate><description><![CDATA[仅作记录以备后用。

 

1、修改nginx配置文件

 

nginx的配置文件在nginx安装目录的conf下，集群配置需要修改nginx.conf文件，linux上可以直接使用vi命令进行修改，下面是nginx.conf完整配置，也是经过优化的配置，可以直接拿过来就用的，重点是其中两个中文注释的地方：

 


user  www www;
worker_processes  auto;
...]]></description><category></category></item><item><title><![CDATA[java中volatile关键字的使用]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38539975</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38539975</guid><author>abc_key</author><pubDate>Wed, 13 Aug 2014 18:17:01 +0800</pubDate><description><![CDATA[volat是java提供的一个轻量级的同步机制，使用v]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十六章：从EventLoop取消注册和重新注册]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38492105</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38492105</guid><author>abc_key</author><pubDate>Mon, 11 Aug 2014 14:25:26 +0800</pubDate><description><![CDATA[本章介绍]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十五章：选择正确的线程模型]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38419469</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38419469</guid><author>abc_key</author><pubDate>Thu, 07 Aug 2014 15:38:41 +0800</pubDate><description><![CDATA[本章介绍


线程模型(thread-model)
事件循环(EventLoop)
并发(Concurrency)]]></description><category></category></item><item><title><![CDATA[memcached binary protocol]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38396933</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38396933</guid><author>abc_key</author><pubDate>Wed, 06 Aug 2014 11:20:40 +0800</pubDate><description><![CDATA[Introduction]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十四章：实现自定义的编码解码器]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38388031</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38388031</guid><author>abc_key</author><pubDate>Tue, 05 Aug 2014 17:18:01 +0800</pubDate><description><![CDATA[本章讲述Netty中如何轻松实现定制的编解码器，由于Netty架构的灵活性，这些编解码器易于重用和测试。为了更容易实现，使用Memcached作为协议例子是因为它更方便我们实现。
        Memcached是免费开源、高性能、分布式的内存对象缓存系统，其目的是加速动态Web应用程序的响应，减轻数据库负载；Memcache实际上是一个以key-value存储任意数据的内存小块。可能有人会问]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十三章：通过UDP广播事件]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38370567</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38370567</guid><author>abc_key</author><pubDate>Mon, 04 Aug 2014 16:26:00 +0800</pubDate><description><![CDATA[本章介绍


UDP介绍UDP程序结构和设计]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十二章：SPDY]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38339203</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38339203</guid><author>abc_key</author><pubDate>Fri, 01 Aug 2014 17:09:30 +0800</pubDate><description><![CDATA[本章我将不会直接翻译Netty In Action书中的原文，感觉原书中本章讲的很多废话，我翻译起来也吃力。所以，本章内容我会根据其他资料和个人理解来讲述。]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十一章：WebSocket]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38323737</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38323737</guid><author>abc_key</author><pubDate>Thu, 31 Jul 2014 23:31:14 +0800</pubDate><description><![CDATA[本章介绍


WebSocket
ChannelHandler,Decoder and Encoder
引导一个Netty基础程序
测试WebSocket]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第十章：单元测试代码]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38304217</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38304217</guid><author>abc_key</author><pubDate>Wed, 30 Jul 2014 17:46:38 +0800</pubDate><description><![CDATA[本章介绍


单元测试
EmbeddedChannel

        学会了使用一个或多个ChannelHandler处理接收/发送数据消息，但是如何测试它们呢？Netty提供了2个额外的类使得测试ChannelHandler变得很容易，本章讲解如何测试Netty程序。测试使用JUnit4，如果不会用可以慢慢了解。JUnit4很简单，但是功能很强大。本章将重点讲解测试已实现的Cha]]></description><category></category></item><item><title><![CDATA[Netty In Action中文版 - 第九章：引导Netty应用程序]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38275333</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38275333</guid><author>abc_key</author><pubDate>Wed, 30 Jul 2014 11:26:19 +0800</pubDate><description><![CDATA[本章介绍


引导客户端和服务器]]></description><category></category></item><item><title><![CDATA[java判断素数(质素)]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38261287</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38261287</guid><author>abc_key</author><pubDate>Tue, 29 Jul 2014 11:33:56 +0800</pubDate><description><![CDATA[素数就是质素，英文是Prime Number。]]></description><category></category></item><item><title><![CDATA[棋牌游戏服务器开发心得]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38235137</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38235137</guid><author>abc_key</author><pubDate>Mon, 28 Jul 2014 18:05:29 +0800</pubDate><description><![CDATA[一个多人在线的棋牌类网络游戏的项目临近尾声，我参与了该项目的整个设计流程，并且完成了90%的核心代码。关于这个项目，有很多地方值得聊一聊。本系列不打算把这个项目将得多么详细规范，那是设计文档应该描述的，我打算只说说一些值得注意的地方。这个项目的一个特别之处是，客户端是手机，用户通过移动网络与服务器通信。和PC相比，手机的处理能力极弱，而且网络流量费用昂贵。因为除了要考虑普通网络游戏的一些问题之外，]]></description><category></category></item><item><title><![CDATA[用来开发IOS应用的Java工具包]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38227227</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38227227</guid><author>abc_key</author><pubDate>Mon, 28 Jul 2014 11:55:31 +0800</pubDate><description><![CDATA[1. Codename One
Codename One是一个针对移动应用开发者的、开源的、跨平台的Java工具，旨在帮助Java开发者通过单一代码库来针对所有移动平台（智能手机和平板电脑）构建本地应用，且无需在应用性能、功能或开发简易性方面妥协。该工具是开源的，可免费用于商业用途。]]></description><category></category></item><item><title><![CDATA[谈谈陌陌争霸在数据库方面踩过的坑(前篇)]]></title><link>https://blog.youkuaiyun.com/abc_key/article/details/38118521</link><guid>https://blog.youkuaiyun.com/abc_key/article/details/38118521</guid><author>abc_key</author><pubDate>Fri, 25 Jul 2014 15:06:14 +0800</pubDate><description><![CDATA[转自：
陌陌争霸 这个项目一开始不叫这个名字，它在 2013 年中的时候，还只是一个我们公司 用来试水移动游戏的试验项目。最开始的目标很明确，COC
 是打动我的第一款基于移动平台网络游戏，让我看到了和传统 MMO 不同的网络游戏设计方向。我觉得只需要把其中最核心的部分剥离出来，我们很快可以做出一个简单的却不同于以往 MMO 的游戏，然后就可以着手在此基础上发展。


至于后来找到陌陌合]]></description><category></category></item></channel></rss>