hengyunabc的专栏

日落黄金台金黄落日 -- 横云断岭

排序:
默认
按更新时间
按访问量

JVM GC调优一则--增大Eden Space提高性能

缘起 线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。 思路 思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或者环境改变了,总之Tomcat的优先级排在最后。 先把应用的heap dump下...

2014-05-03 18:29:54

阅读数:39248

评论数:3

扯谈网络编程之自己实现ping

ping是基于ICMP(Internet Control Message Protocol)协议实现的,而ICMP协议是在IP层实现的。 ping实际上是发起者发送一个Echo Request(type = 8)的,远程主机回应一个Echo Reply(type = 0)的过程。 为什么用ping...

2014-05-03 05:37:12

阅读数:4766

评论数:0

Apache HttpClient 没有设置time out导致应用长时间阻塞的问题

现在的对外接口一般都是Http + json的,因为简单,语言无关。 Apache HttpClient应该是最常用的Java http组件了。这货有个坑爹的地方,Apache HttpClient如果对方不回应,或者网络原因不返回了,那么HttpClient会一直阻塞。这种情况在公网可能比较容易...

2014-04-21 19:46:12

阅读数:19151

评论数:2

利用redis缓存热门数据,分页的一种思路

普通分页 一般分页做缓存都是直接查找出来,按页放到缓存里,但是这种缓存方式有很多缺点。 如缓存不能及时更新,一旦数据有变化,所有的之前的分页缓存都失效了。 比如像微博这样的场景,微博下面现在有一个顶次数的排序。这个用传统的分页方式很难应对。 一种思路 最近想到了另一种思路。 数据以ID为key缓存...

2014-04-21 19:26:52

阅读数:26460

评论数:0

在Java里处理文件的技巧

update: 2016-8-4从URL转换为File的方法:1. 先判断URL是否是 file: 开头的2. 用 new File(url.toURI());  来转换为File注意,因为url当有空格时,会被转义为%20,所以要转换为URL,再转为File。另外要注意处理这个转义时不能使用UR...

2014-04-19 21:05:52

阅读数:13494

评论数:0

为什么在Spring的配置里,最好不要配置xsd文件的版本号

为什么dubbo启动没有问题? 这篇blog源于一个疑问: 我们公司使了阿里的dubbo,但是阿里的开源网站http://code.alibabatech.com,挂掉有好几个月了,为什么我们的应用启动没有问题? 我们的应用的Spring配置文件里有类似的配置: <beans xmlns=...

2014-03-30 14:24:31

阅读数:51337

评论数:7

应对Memcached缓存失效,导致高并发查询DB的几种思路

当Memcached缓存失效时,容易出现高并发的查询DB,导致DB压力骤然上升。 这篇blog主要是探讨如何在缓存将要失效时,及时地更新缓存,而不是如何在缓存失效之后,如何防止高并发的DB查询。 个人认为,当缓存将要失效时,及时地把新的数据刷到memcached里,这个是解决缓存失效瞬间高并发查...

2014-03-07 22:45:30

阅读数:12586

评论数:9

Web API 版本控制的几种方式

http://www.troyhunt.com/2014/02/your-api-versioning-is-wrong-which-is.html 这篇文章写得很好,介绍了三种实现web api版本控制的三种方式。我从评论里又收集到两种方式,所以一共是5种: 方式一:利用URL HTTP GE...

2014-03-05 20:28:32

阅读数:30518

评论数:12

扯谈下XA事务

普通事务的实现是比较好理解的。以jdbm3为例,大概是这样的过程: 每个事务都新建一个事务文件,当commit时,先把修改过的数据块,写到事务文件里,然后再一次性地写到数据库文件里。 如果commit时挂掉了,那么重启之后,会再次从事务文件里把修改过的块写到数据库文件里。最后再删除事务文件。 ht...

2014-02-20 21:34:19

阅读数:17096

评论数:2

利用redis + lua解决抢红包高并发的问题

抢红包的需求分析 抢红包的场景有点像秒杀,但是要比秒杀简单点。 因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。 另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工...

2014-02-20 20:08:26

阅读数:116147

评论数:29

抢红包的红包生成算法

过年微信红包很火,虽然我没有抢过,但是有个项目也要做抢红包,于是写了个红包的生成算法。 红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]。 最简单的...

2014-02-18 22:16:32

阅读数:53292

评论数:20

分片(Sharding)的全局ID生成

数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求: 不能有单点故障。 以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。 可以控制ShardingId。比如某一个用户的文章要放在同一个分...

2014-02-16 18:37:48

阅读数:16395

评论数:2

zookeeper运维

尽管zookeeper在编程上有很多的阱陷,API也非常的难用,但zookeeper服务本身可以说是很牢靠的了,所以在网上貌似关于运维的文章比较少。 但省心并不代表不会出麻烦,下面总结下zookeeper运维相关的东东。 重要的参考资料 这里有一个很好的Pdf,介绍了很多zookeeper的东东,...

2014-02-09 15:06:37

阅读数:69431

评论数:3

Linux配置启动项,自启动服务

Linux下有两种机制,一个是旧式的System V initialization,它来源于Unix并且至今仍被各种Linux distros所采用;另一种是近几年提出的Upstart机制。 参考:http://www.cnblogs.com/cassvin/archive/2011/12/25/...

2014-02-08 21:02:00

阅读数:15826

评论数:0

适应各种开发,测试,线上,线下环境的Spring配置方式

比如开发了一个中间件,比如是一个缓存系统,这个中间件要配置一个IP地址,还要配置一个Factory,从这个Factory里得到一个client,如: 然后这个中间件有三个集群(clusterA, clusterB, clusterC),分别给不同的业务使用,那就这时会有很多的配置...

2014-01-25 22:36:43

阅读数:7924

评论数:0

hazelcast的坑爹事

简介 开源中国的简介: Hazelcast是一个高度可扩展的数据分发和集群平台。特性包括: 提供java.util.{Queue, Set, List, Map}分布式实现。提供java.util.concurrency.locks.Lock分布式实现。提供java.util.c...

2014-01-19 22:11:44

阅读数:24421

评论数:5

Java7里try-with-resources分析

这个所谓的try-with-resources,是个语法糖。实际上就是自动调用资源的close()函数。和Python里的with语句差不多。 例如: static String readFirstLineFromFile(String path) throws IOException { ...

2014-01-18 22:18:34

阅读数:33783

评论数:10

编绎调试HotSpot JVM及在Eclipse里调试

编绎整个OpenJDK要很久,而且有很多东西是不需要的。研究HotSpot的话,其实只要下HotSpot部分的代码就可以了。 下面简单记录下编绎调试HotSpot一些步骤。 一、编绎 进入hotsopt的make目录下: cd code/cpp/openjdk/hotspot/make/ ...

2013-12-08 16:20:29

阅读数:7497

评论数:2

http response乱码的真相

这个是很久以前的笔记,最近遇到一个编码问题,重新把它翻出来了。 这个只和java servlet有关,现在通常都用各种框架,很少会直接用到Servlet了。 查看servlet源代码的方法 查看servlet源代码的方法。因为servlet只是一些接口,并不是真正的实现,所以,如果想...

2013-12-01 16:09:44

阅读数:16449

评论数:0

http request乱码的真相

当然,终极原因http协议里没有规定request一定要指定编码,导致浏览器,web服务器都各搞一套…… 下面一一理清。 首先,从浏览器端看下有多少种情况: 1.在浏览器的地址栏,或者搜索框里输入地址:http://www.test.com/衣服/search?keyword=T恤  2.在一个指...

2013-12-01 15:58:13

阅读数:25162

评论数:1

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