自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 命令备忘

cd pathdu -hsx * | sort -rh | head -10 找到path下面最大的十个文件

2017-01-13 14:42:05 197

采用filter包装器动态的添加参数

背景:需要动态的给url添加一些参数,需要重写httprequest包装器由于servlet的参数map不可写,直接在map中添加参数会报如下错误java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap 因此需要重新new一下这个ParameterMapMap&l...

2016-11-12 12:19:02 504

原创 MySQL索引背后的数据结构及算法原理

摘自http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于...

2016-10-24 19:12:47 247

删除数据库中多字段重复的数据

SELECT idFROM tablename aWHERE (a.stu_id, a.tea_id) IN ( SELECT stu_id, tea_id FROM tablename GROUP BY stu_id, tea_id HAVING count(*) > 1 )AND id...

2016-10-12 19:59:55 230

原创 电商业务中多平台订单与全局库存管理

前言随着电商行业增速的回落,野蛮生长的阶段已经过去,电商开始进入精细化运作阶段,商家之间竞争从比拼营销和低价,转移到后台的供应链,供应链效率和成本的高低决定了商家的生死。在电商的供应链管理中,有两块业务是核心内容,即订单处理和库存管理。订单是所有后台业务的源头,在多平台开店已经成为普遍采用的操作手法之后,如何高效、协调地管理来源于不同平台的订单成为影响用户口碑的关键环节。电商消除了购物过...

2016-05-30 15:28:12 487

原创 电商库存管理

转自:http://ec.sina.com.cn/ec/2011-05-23/12599.html  电子商务虽然属于新兴行业,但本质上还属于零售业。抛开种种电子、网络方面的因素不谈,也仍然是一个低价买进、高价卖出的基本模式。但是由于电子化、网络化、异地化的新特点,导致了电子商务与传统零售业的不同。  除去以携程、e龙为代表的酒店、旅游服务提供商,以拉手、美团为代表的服务信息团购商以外,...

2016-05-30 15:22:54 572

原创 Google著名的三篇论文

Google的著名的三篇大数据的论文,分别讲述GFS、MapReduce、BigTable,取自网上,排版整理完成,以供参考。Google File System中文版Google MapReduce中文版Google Bigtable中文版 ...

2016-05-21 00:43:06 2126 2

原创 MySQL的InnoDB索引原理详解

原文链接http://www.codeceo.com/article/mysql-innodb-index.html本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyISAM作为对比。这篇文章是我在学习过...

2016-03-29 11:18:39 120

原创 Kafka实践:通过8个case学习Kafka的功能

Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka与传统消息系统相比,有以下不同:它被设计为一个分布式系统,易于向外扩展;它同时为发布和订阅提供高吞吐量;它支持多订阅者,当失败时能自动平衡消费者;它...

2016-02-24 16:35:48 150

原创 跟着实例学习ZooKeeper的用法: 文章汇总

跟着实例学习ZooKeeper的用法提供了全面的例子, 演示了Curator在项目中的应用,全面的介绍了ZooKeeper的Recipe的实现, 以及CuratorFramework的基本用法。都是独立的, 你可以挑选感兴趣的章节阅读,方便在需要的时候查找。欢迎在评论中提供意见和建议以及内容的错误,我会及时的更新。以下是各章节的汇总。所有的代码都可以在github下载。leader选举...

2016-02-24 16:32:31 139

原创 防止并发重复提交

蘑菇街的一个方案,下面的文章转自蘑菇街的技术方案http://mogu.io/prevent-duplicate-requests-4redis官方给出的方案及模式http://redis.io/commands/incr #防重复处理总结##背景在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重...

2016-01-30 12:07:19 895 1

原创 dapper大规模分布式跟踪系统(google论文中文版)

概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系...

2016-01-19 13:55:05 663

原创 linux 命令备忘

1.找出大于100M的文件列表find / -size +100M -exec ls -lh {} \;2.scp 拷贝到远程机器 scp ./uc_members.dump jw@192.168.0.187:/home/jw 

2016-01-13 14:23:40 116

原创 ebay分布式事务方案中文版

由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类面向低端用户的开...

2016-01-04 10:42:50 251

原创 mysql2阶段事务

1 二阶段提交协议    一般分为协调器C和若干事务执行者Si两种角色:    当执行某一事务T的所有站点Si都通知C事务执行完成,C即启动二阶段提交协议。    1.首先C向所有Si发<prepare>消息(C先将<prepare>消息写到本机日志),Si收到<prepare>消息后,根据本机T的执行情况,如果成功返回<ready T>,不...

2015-12-25 18:52:57 208

原创 Base: An Acid Alternative

Base: An Acid AlternativeIn partitioned databases, trading some consistency for availability can lead to dramatic improvements in scalability.Dan Pritchett, EbayWeb applications have grown in p...

2015-12-25 18:51:16 243

原创 如何使用消息系统避免分布式事务

作者:伯乐在线-meituanalibaba网址:http://blog.jobbole.com/89140/http://www.cnblogs.com/LBSer/p/4715395.html不知道谁抄的谁的 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账...

2015-12-25 18:48:09 134

原创 分布式注册中心设计思路

http://blog.csdn.net/jiyiqinlovexx/article/details/43702035http://blog.csdn.net/jiyiqinlovexx/article/details/38326865http://vernonzheng.com/2015/02/09/开源分布式配置中心选型/

2015-12-24 15:06:34 311

原创 Uber容错设计与多机房容灾方案

此文是根据赵磊在【QCON高可用架构群】中的分享内容整理而成。赵磊,Uber高级工程师,08年上海交通大学毕业,曾就职于微软,后加入Facebook主要负责Messenger的后端消息服务。这个系统在当时支持Facebook全球5亿人同时在线。目前在Uber负责消息系统的构建并推进核心服务在高可用性方向的发展。前言赵磊在7月21号的全球架构师峰会深圳站上,做了主题演讲:...

2015-12-24 14:50:58 205

原创 魅族多机房方案(转)

转自:http://blog.chinaunix.net/uid-30571370-id-5465017.html魅族经过2014-2015年的转型以及销量大爆发后,随之而来的互联网服务业务越来越多,用户基数越来越大,之前单机房的扩展架构已经满足不了魅 族的发展,此外加上国内复杂网络环境下,单机房无法满足我们的可靠性需求。近年经常出现的光缆被挖、机房掉电。如支付宝光纤被挖断,导致业务中断;...

2015-12-24 14:47:05 152

原创 facebook open api 版本设计策略

VersioningNot all APIs and SDKs share the same versioning system. For example, the Graph API is versioned with a different pace and numbering compared to the iOS SDK. All SDKs released after 30...

2015-12-10 14:50:24 513

原创 流行的版本设计策略

I am currently working on a REST API, and the question was raised, how are, and how should, REST APIs be versioned? Here are the results of my research.It seems that there are a number of people re...

2015-12-10 14:45:38 95

原创 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高......    这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能...

2015-12-10 13:51:57 96

原创 Memcached slab 分配策略

Memcached 自带了一个内存分配模块slab,自己在用户层实现了内存的分配,而不是完全依赖于系统的 malloc。这篇文章,来看看 Memcached slab 内存分配算法是怎么做的。一个内存分配算法要考虑算法的效率,管理内存所占的空间和内存碎片的问题。这个是三个衡量点往往不能个个都得到满足,每个实现都会各有所长。slab 能较好的规避内存碎片的问题,但也带来了一定的内存浪费,算法的...

2015-11-20 17:42:44 335

原创 使用tcpcopy导入线上流量进行功能和压力测试

假设我们要上线一个两年内不会宕机的先进架构。在上线前,免不了单元测试,功能测试,还有使用ab,webbench等等进行压力测试。但这些步骤非生产环境下正式用户的行为。或许你会想到灰度上线,但毕竟可能会影响到部分用户,这怎么对得起我们两年内不宕机的承诺呢?好在网易的 王斌 开发了tcpcopy, 可以导入线上流量进行功能和压力测试。tcpcopy介绍tcpcopy是一种请求复制工具...

2015-11-12 17:45:19 178

原创 Twitter-Snowflake 自增id实现

 package io.github.id;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 第一位为未使用(实际上也可作为long的符号位),接下来的41位为毫秒级时间,然后5位datacenter标识位,</br> * 5位机器ID(并不算标识符,实际是为线程标识),然后12...

2015-11-12 13:55:28 175

原创 Twitter-Snowflake,64位自增ID算法详解

Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。Snowflake算法核心把时间戳,工作机器id,序列号组合在一起。  除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业...

2015-11-12 13:26:40 168

原创 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究...

  1.XA XA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引...

2015-11-05 18:02:52 69

原创 58同城数据库软件架构设计与实践

转载自http://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=400465735&idx=1&sn=8d7067de4cc8f73ea5558f07e0a9340e&scene=0#wechat_redirect缘起:受@萧田国 萧总邀请,上周五晚上在“高效运维1号群”内分享了《58同城数据库软件架构设计与...

2015-11-04 14:46:23 144

原创 mvn eclipse

-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.可以设一个环境变量M2_HOME指向你的maven安装目录M2_HOME=D:\Apps\apache-maven-3.3.1然后在Window->...

2015-11-04 11:17:21 72

原创 rest api的版本设计

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

2015-11-03 10:31:49 139

eclipse分支合并到主干,主干合并到分支

eclipse SVN 分支合并到主干,主干合并到分支一个非常简单的问题,网上很多文章写来写去抄来抄去全是错的!!!!分主干和分支的原因a.主干版本是稳定版本b.开发的时候全部在分支上开发c.开发完毕后合并到主干上发布  1.将分支合并到主干先是将分支修改的内容提交到自己的分支然后将工程切换到主干在切换后的工程上右键点击m...

2015-10-25 09:29:36 1519

mycat 的datanode注意点

<schema name="dbtest" checkSQLschema="false" sqlMaxLimit="100" dataNode="dbtest"> <table name="ena_app_time" dataNode="talktest" rule="sharding-by-murmur&

2015-10-21 19:57:56 2311

原创 mycat1.4 amoeba3.0.5 mysql atlas对比

同样jvm的配置,下面是amoeba跑的数据,还是用前面sysbench的脚本跑的 JAVA_OPTS="-server -Xms2G -Xmx2G -XX:MaxPermSize=64M  -XX:+AggressiveOpts -XX:MaxDirectMemorySize=2G" 查询脚本./sysbench --mysql-host=127.0.0.1 --mysql-...

2015-10-20 17:15:23 578

原创 sysbench 使用说明

一、sysbench压力测试工具简介: sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以下操作都将以支持MySQL数据库为例进行。 1.      sysbench工具安装:默认支持<span "="" style...

2015-10-20 16:24:14 287

原创 sysbench mycat压力测试02

0.在mycat1.4中做好配置1.首先在物理数据库上创建sbtest2.在sbtest中创建10个sbtest表从1到10这里之所以要手工建是因为sysbench自动建表功能在mycat上不可以用CREATE TABLE `sbtest1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `k` int(10)...

2015-10-20 15:40:41 626

原创 sysbench mycat压力测试01

采用sysbench做压力测试,需要修改mycat的两个文件1.修改schema.xml和server.xml修改目的是不用写所有的表名,只需要写db的名字就行了,这个在文档中是不存在的,并且这个功能在amoeba的最初版本中就是支持的,竟然在过渡了几个版本以后这个功能没了,该功能只能在1.4的版本才可以   <schema name="sbtest" check...

2015-10-20 15:36:30 343

原创 sysbench压力测试

1.下载sysbench并安装wget https://github.com/cailin186/sysbench/archive/0.5.zip2.unzip 0.5.zip3. 安装./autogen.sh./configure --prefix=/home/xxx/sysbenchmakemake install 4.如果是系统自带的数据库,上述安装完毕后就...

2015-10-20 10:58:49 150

原创 zookeeper场景

ZooKeeper典型应用场景一览数据发布与订阅(配置中心)发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。    1. 应用中用到的一些配置信息放到ZK上进行集中管理。这类场景通常是这样:应用在启动的时候会主...

2015-09-30 13:33:42 92

Tomcat7 优化到7000每秒

硬件信息双cpu,4核 16线程 8g内存Intel(R) Xeon(R) CPU E5620 @ 2.40GHz Tomcat 7.0.64  jdk1.6  httperf 用tomcat的线程池<Executor name="tomcatThreadPool" namePrefix="catalina-exec-...

2015-09-23 17:38:59 343

空空如也

空空如也

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

TA关注的人

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