自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CDN 回源之罪魁祸首-etag

      最近网站做推广,预期访问量将会增加20倍左右(原来PV在10亿左右),其中大部分是静态页面,也有ajax动态请求。我们采取了如下策略。机器扩容到原来的2倍所有静态内容都加上CDN缓存所有的动态请求都利用缓存定时更新机制,实现动态内容静态化。    在灰度放量初期,我们观察JS回源的请求,发现CDN并没有如期挡住请求,单台机器每分钟去到1万左右。找运维人员反复沟通...

2015-12-20 15:00:24 1943

原创 也谈一谈XSS

XSS攻击是一个很老的话题了,通常都认为是比较好防范的,但是却很容易忽视,所以今天又来总结下。关于攻击的总类以及概念不做过多解读了,网上基本一大把,我这里总结下防御方案。XSS攻击是很危险,并且很容易出现,浏览器也做了安全限制,防止跨域访问数据,但是我们都知道jsonp可以饶过这些限制,所以就有了session劫持。 第一层防御:在服务端对提交的数据包含URL,header,做一个...

2015-12-05 23:30:01 135

原创 并发包源码分析 -- AQS

Java 的concurrent 包给我们的并发编程提供了更灵活高效的方案,开发人员可以很方便的利用API利用线程池去处理多任务。最近对concurrent包进行了比较细致的分析,最核心的基础莫过于AQS(AbstractQueuedSynchronizer)。下面看看来自官方的摘要。 Provides a framework for implementing blocking loc...

2015-11-29 19:38:43 125

原创 Java ByteBuffer 之 DirectBuffer

ByteBuffer 提供了两种方式创建缓冲区,一个是在heap内分配即DirectBuffer,一个是在heap外分配。一个比较普遍的说法是,heap外分配的内存不太好把控,JVM不会回收其内存。然而事实上真的如此吗?我做了一个实验,我写了一个NIO服务端程序不断读取客户端发送过来的内容,然后回写到客户端。回写的时候用了DirectBuffer, 并且开辟的内存故意设的比较大128M。请看如...

2015-11-28 22:24:27 256

原创 Mysql Using where using index

Mysql 的执行计划中有项不起眼但同时很让人产生误解的东西,其中有一项就是Extra, 这一列放在了最后,并且意思是额外的辅助信息,似乎是最不起眼的一个项。 ColumnJSON NameMeaningidselect_idThe SELECT identifierselect_typeNoneThe SELECT typetable...

2015-11-28 13:51:41 746

原创 逻辑写在SQL中还是写在后台程序代码中

       最近转去了做互联网开发,看到了最大的不同就是后台代码算法比较多,模块服务化,很多逻辑都写在了后台代码中,比如各种计算甚至连诸如分组排序这种SQL最擅长的功能。       到底逻辑是应该写在后台程序中还是SQL中?这个话题其实没少讨论过,我这里仅想把一些看法总结下。如果这个问题交给数据库专家去回答,那么十有八九的答案是写在SQL中,理由如下。性能尽在掌控中,集群,共享存...

2015-11-14 20:38:27 4155

Oracle Interval-Partition

众所周知,Oracle的Partition可以为大表查询降低IO开销从而带来显著的性能提升,对于一个事务表,我们通常用时间戳来进行分区。理论上来说,表的大小可以基本无限制的延伸,但是前提是需要要启动一个定时任务去新增加分区从而让所有时间的记录都能划分到某个时间段的区域,一直觉得这样挺繁琐的,Oracle就应该具备这样一个可以动态增加分区的功能,好在在新版本的12c增加了 Interval-Par...

2015-05-19 22:27:44 135

事务隔离级别

先来看看在事务应用中可能出现的各种问题. 丢失更新(lost update)是一个经典的数据库问题。实际上,所有多用户计算机环境都存在这个问题。简单地说,出现下面的情况时(按以下所列的顺序),就会发生丢失更新: (1) 会话Session1中的一个事务获取(查询)一行数据,放入本地内存,并显示给一个最终用户User1。 (2) 会话Session2中的另一个事务也获取这一行,但是将数据显示给另一个...

2008-03-10 16:01:36 81

OO的复用原则

最近在看java设计模式,想对OO的服用原则稍微终结下.OO的复用设计原则有 :OCP,DIP,LSP,ISP,CARP,LoD。 充分利用这些原则可以提高软件的复用性1.开闭原则 OCP(Open-Closed Princple):很简单,一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩展开放”。如果从另外一...

2008-03-05 10:45:43 147

原创 基于BeanUtils和Annotation的值copy工具类(转载)

 关键字Javabean, beanutils, annotation, introspection, SQL, ORM 一,一些可改进的代码片段据我平常观察,周围的同事还存在不少类似的代码,举两例进行说明:这段是操作ResultSet的 CustBean bean = new CustBean(); bean.setCustId(rs.getString

2007-12-26 08:59:00 1651

空空如也

空空如也

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

TA关注的人

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