- 浏览: 83860 次
- 性别:
- 来自: 北京
-
最新评论
-
魔鸟科胖呆:
你好,如何才能使用JobCenter呢?
#研发中间件介绍#定时任务调度与管理JobCenter -
yangsong158:
难得的好文,必需支持。
安全基础教育第二季第1集:屡战屡败的找回密码 -
fisherhe:
只能说一句,受益匪浅
#研发解决方案介绍#基于ES的搜索+筛选+排序解决方案 -
houxinyou:
水是有源的,树是有根的,啥事都是有原因的
职场的真相——七句话 -
xiaoZ5919:
关于下厨房的这个事儿,只有close了所有指向该文件的文件描述 ...
被小伙伴们吓哭了:可怕的命令
文章列表
(研发系)职业化8个细节
@郑昀 北京报道 2013-03
警报自动、少、精、准
目的
主管要第一时间知道系统隐患
不要在发现和查询蛛丝马迹上浪费宝贵时间
自动化是王道
别让泛滥的、无关痛痒的、信息不足的警报折磨你
手段
工具
Nagios
Python
方式
报警邮件
N分钟扫描一次
每天汇总一次
报警短信
内容
WHO/WHEN/WHAT
何时(或哪个时间段)环比出问题,何时(或时间段)恢复,都要报警
注意事项
主管还有很多事情要关注,所以警报一定要(数量)少、(种类)精、( ...
@郑昀汇总 创建于2012/11
发布版本号:v1.3
概念:
退款期限,交易,交易关闭,交易结束,掉单,幂等性,数据一致性
关键词:
历史记录不得直接篡改原则,
交易关闭通知处理,退款处理结束通知,
掉单被动处理,掉单主动处理,
多个渠道的重复支付处理,
支付成功时商品不可售卖的处理,
订单金额变化交易流水号变化规则,
推送订单不得包含违禁词,
支付通知并发到达的处理,
支付子系统的独立性和可靠性,
补录数据的时间准则
一. 通用规则
1.1. 历史记录不得直接篡改
电商核心服务基本都是分布式应用,分布式事务如处理不妥善,容易产生数据不一致。一旦出 ...
2012·2郑昀汇总
我们做 Notify Server 时可以间接借鉴这个解决方案的思路。
Storm 是一个分布式的、容错的实时计算系统,由 Twitter 开源。
先不介绍术语和背景知识,直接来一些吸引眼球的内容:
一,Tuple Tree
spout 发射一 ...
郑昀 汇总 20130320
职业化所包含的行为模式
——总有一些工作套路是可以带走的
(1)
任务已读回执模式
示范A
数据中心的应答
收到数据提取邮件后立即应答: 应答人:某某 数据提取时间:1小时
示范B
测试 ...
20120917 @郑昀汇总
外界流传的JAVA/PHP服务器端获取客户端IP都是这么取的:
伪代码:
1)ip = request.getHeader("X-FORWARDED-FOR")
可伪造,参考附录A
2)如果该值为空或数组长度为0或等于"unknown",那么:
ip = requ ...
@郑昀汇总
创建日期:20120925
关键词索引:
令牌桶算法,漏桶算法
背景:
防注册机、秒杀器或扫号等常见电商流量过滤技术,一般具有如下要求:
1) 高性能。算法简单高效,能对HTTP Requests进行实时在线处理。
2) 分类错误率低。尤其是尽量保证不误杀正常顾客访问。
3) 鲁棒性强。由于双方攻防的对抗性很强,所以算法必须适应各种类型的攻击情形(包括DDoS攻击)。
课题1:
对网站某一个URL/表单提交/Ajax请求的访问进行实时检测,找出过于频繁请求的ip,对这些ip的访问频率进行限制。
课题2:
对网站开放平台访问,对某一个开放 ...
最佳实践系列:前端代码标准
@窝窝商城前端(刘轶/李晨/徐利/穆尚)翻译于2012年 版本0.55 @郑昀校对
isobar的这个前端代码标准和最佳实践文档,涵盖了Web应用开发的方方面面,我们翻译了大部分章节,并做了注解。请仔细阅读用标记的段落。
关键词列表:
渐进增强;Combo Handler;Quirks Mode;浏览器盒子模型;选择器特殊性;Spacer Image;CSS Sprites;PNG8;
编 写此文档的目的主要有两方面,第一,如何保持代码的一致性;第二,什么才是最佳实践。我们通过编码风格和约定保持一致,可以减轻代码维护的工作量,并降低 风险,在将来代码 ...
@郑昀汇总
关键词:
并发控制
防止并发
英文关键词:
Distributed Lock
Distributed Lock Manager
电商目的:
保证整个(分布式)系统内对一个重要事物(订单,账户等)的有效操作线程 ,同一时间内有且只有一个。比如交易中心有N台服务器,订单中心有M台服务器,如何保证一个订单的同一笔支付处理,一个账户的同一笔充值操作是原子性的。
基于哪些服务实现分布式锁?
memcache
ZooKeeper
Redis
Hazelcast
google Chubby
基于memcache的分布式锁
memc ...
——学习东北战争好榜样
2012/4/18
每一个快速发展、仓促之间聚集起来的团队都会经历1947年~1948年我党在东北所面对的局面。
从最开始出关的匆忙上阵、缺少武器彈藥、节节败退、老底子被打光、成群结队开小差的逃兵、迷茫沮丧,到一年后数百万装备整齐、挑着狗皮帽子沿路炫耀武力的军团入关,这中间到底发生了什么?
简单地说,对于现代公司运营者来说,可以借鉴那个时候他们做的三件事:
第一点,统一价值观,这也是每个期望基业长青的公司都在着手去做的。在东北,他们是通过在基层员工搞阶级教育、诉苦运动,解决为谁当兵、为谁打仗的问题,从而统一了包括大批“解放战士”在内的员工价值观。
第二点, ...
@郑昀汇总
与分布式缓存在高并发和高可用下所要解决问题差不多。
一.图示:
二.高并发下分布式Session需解决的问题:
透明处理存储介质的故障转移
动态增删节点,减小“缓存颠簸”问题
保证数据在各个节点的分布均衡
Session 序列化和反序列化
三.保证“基本可用 Basically Available”的分布式Session方案:
Eric A. Brewer 在 1988 年提出的 BASE 策略,即 Basically Available、Soft state、和Eventually consistent。
互联网大多数应用 ...
jstack Dump 日志文件中的线程状态
dump 文件里,值得关注的线程状态有:
死锁,Deadlock(重点关注)
执行中,Runnable
等待资源,Waiting on condition(重点关注)
等待获取监视器,Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重点关注)
停止,Parked
下面
@郑昀汇总
使用 TDA 工具,看到大量 Java Thread State 的第一反应是:
1,线程状态为“waiting for monitor entry”:
意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。
此时线程状态一般都是 Blocked:
java.lan ...
郑昀汇总
本文图例所引用的图片和文字均出自互联网公开内容,仅供运维人员和研发人员参考。
2013年5月12日#土豆网域名被劫持#记录(含实施过程还原),如图所示,其中有两个Web开发经典错误,小洞洞也能引发大事件。
2013年6月17日#点评网域名被劫持#记录(含实施过程还原),如图所示,新网在5月12日兄弟公司新网互联那么大漏洞暴露、土豆网域名被劫持之后仍忽略乌云上自己的漏洞,确实难辞其咎,有洞不补大洞受苦。
赠图一枚:
RT @一蚊丁:有个今年毕业的学弟最近在投简历,刚才他发这张短信截图哭着问我,大学生已经掉价到这个地步了吗?
2012·2汇总
Tumblr是世界上最流行的轻博客服务之一,2007年成立。
一,MySQL+Memcached
初期,其通知系统是由 MySQL+Memcached 的传统架构组成。
缺点:
MySQL负担重,表象就是 MySQL 并发事务数常常达到 InnoDB global transaction 最大 ...
传说中占据整个互联网每秒流量2%、100Gb/s、300K queries/s的 YouPorn,关于它的 HAProxy->Varnish->Nginx->PHP-FPM->Symfony2->Doctrine->HAProxy->Redis,郑昀简要记录几点:
2012年2月开始,YouPorn 的主数据库正式切换为 Redis,取代了 ...