自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 LTS 轻量级分布式任务调度框架(Light Task Scheduler)

框架概况:LTS是一个轻量级分布式任务调度框架。有三种角色, JobClient, JobTracker, TaskTracker。各个节点都是无状态的,可以部署多个,来实现负载均衡,实现更大的负载量, 并且框架具有很好的容错能力。 采用多种注册中心(Zookeeper,redis等)进行节点信息暴露,master选举。(Mongo or Mysql)存储任务队列和任务执行日志, netty做底层通

2017-03-08 18:06:57 7698 1

转载 Bloom Filter概念和原理

Bloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter

2017-02-28 20:35:38 408

转载 轻量级中间件MySQL Router介绍与性能测试

话说去年11月去参加OOW大会,听了一场关于MySQL Router的分享。因为我以为这货没这么快会GA,但是没想到的是在OOW大会前MySQL Router就同MySQL 5.7一起GA了。回来之后一直想去测试,但是一直因为各种原因耽搁了。好在过年时抽出点时间研究了下,今天在服务器上完成了性能测试。官方对于MySQL Router的定义是:MySQL Router is li

2017-02-28 17:56:44 2341

转载 Drizzle、MariaDB和Percona Server_超越MySQL:三个流行MySQL分支的对比

导读:尽管MySQL是最受欢迎的程序之一,但是许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长。该 需求以及Oracle对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的子项目和分支。本文将讨论受人们关注的三个流行MySQL分 支:Drizzle、MariaDB和Percona Server(包括XtraDB引擎)。文中简要介绍每个分支出现的原因及其目标,以及是否

2017-02-16 17:33:51 3961

转载 MySQL Group Replication正式发布

MySQL Group Replication GA很多同学表示昨天的从你的全世界路过画风不对,好在今天MySQL界终于有大事情发生可作为聊资。话说,当昨天小伙伴们沉浸于双12的买买买节奏中,孰料远在美国西海岸的Oracle官方放出了最新的MySQL 5.7.17版本。更为重要的是,MySQL Group Replication(下简称MGR)终于来了。

2017-02-16 17:31:05 550

转载 数据库 分库分表中间件 Cobar 介绍

最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家。Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目前已经接管了3000+个MySQL数据库的schema,平均每天处理近50亿次的SQL执行请求。首先,使用Cobar的核心功能如下:分布式:Cobar的分布式主要

2016-11-25 14:56:08 2759

转载 Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的

2016-11-21 11:14:20 449

原创 关于抢购,秒杀的一些细节

以下均为出现在抢购、秒杀的常经理1、token的作用token的用法为,用户渲染商品抢购页面时,服务端做一个加密处理,可以考虑为用MD5(户ID + 商品ID + 任意数字(例如用户生日)) .这个做法的关键是,防批量刷新商品。例如:A、一个用户在登录态下,刷所有抢购商品接口。B、一个用户不同的切换账号,来刷所有抢购商品接口。(如果登录有验证码,此步可以忽略)

2016-08-29 10:37:05 2716

转载 秒杀系统架构分析与实战

秒杀系统架构分析与实战目录1 秒杀业务分析2 秒杀技术挑战3 秒杀架构原则4 秒杀架构设计5 大并发带来的挑战6 作弊的手段:进攻与防守7 高并发下的数据安全8 总结转载: 秒杀系统架构分析与实战1 秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5

2016-08-22 14:17:48 906

转载 心跳检测的思路及代码

外网服务端保存内网服务端会话的有效性以及平台上监控所有内网服务端的网络状况,模仿心跳机制实现,这里在做一点叙诉,关于思路和具体实现。在很多的平台应用中,都有这样的需求,平台内包括多个子系统或者属于其管控范围内的其他平台,需要对这些系统进行统一的监控,来查看当前的运行状态或者其他运行信息,我们的应用也有这样的一个情况,需要再外网服务端(平台)上监控,其下运行的多个内网服务端的网络状况,查阅了

2016-08-22 11:20:56 23286 2

转载 设计模式-命令模式

本文继续介绍23种设计模式系列之命令模式。定义将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。角色Command定义命令的接口,声明执行的方法。ConcreteCommand命令接口实现对象,是“虚”

2016-08-18 16:03:29 427 1

转载 熔断器设计模式

熔断器设计模式如果大家有印象的话,尤其是夏天,如果家里用电负载过大,比如开了很多家用电器,就会”自动跳闸”,此时电路就会断开。在以前更古老的一种方式是”保险丝”,当负载过大,或者电路发生故障或异常时,电流会不断升高,为防止升高的电流有可能损坏电路中的某些重要器件或贵重器件,烧毁电路甚至造成火灾。保险丝会在电流异常升高到一定的高度和热度的时候,自身熔断切断电流,从而起到保护电路安

2016-08-18 15:32:06 766

转载 分布式服务弹性框架“Hystrix”实践与源码研究(一)

文章初衷为了应对将来在线(特别是无线端)业务量的成倍增长,后端服务的分布式化程度需要不断提高,对于服务的延迟和容错管理将面临更大挑战,公司框架和开源团队选择内部推广Netflix的Hystrix,一是为了推进各部门的服务使用覆盖率,二是为了增加C Sharp语言版本的参与度(目前公司至少三成服务由.NET编写)。该博文属于个人对Hystrix研究和实践经验。什么是Hystrix?Hys

2016-08-18 15:21:46 1590

转载 RAFT分布式一致性算法

Why Not PaxosPaxos算法是莱斯利·兰伯特(LeslieLamport,就是 LaTeX 中的”La”,此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法。由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后1998年重新发表到ACM Transactions on Computer Systems上(The Part-TimeParlia

2015-06-15 00:46:16 816

转载 jstack排查定位线程

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

2015-05-31 15:54:47 8493

原创 python的编译

pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。1.

2015-05-24 14:29:18 497

原创 python学习笔记(一)

学习一门语言之前,要先搞清楚为什么要学习它,不能因为它火,就去学习,要明白火在哪里,优势在哪,在哪方面是其他语言无法取代的。那么我学习python的初衷就是因为它有一个出色的轻量级爬虫框架 scrapy,其实想应用框架是不需要学习python的,因为python的语法真的是很简单易懂,但既然接触了,就要系统的学习一下吧。

2015-05-24 13:38:44 609

原创 在蘑菇街的阶段性技术总结

来到蘑菇街一晃有半年时间了,这半年时间真正体会到了一个告诉发展的互联网公司的告诉迭代开发产品的整个过程。

2015-05-19 22:43:40 1169

转载 canal概述

背景   早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支持mysql5.x和oracle部分版本的日志解析

2015-01-19 21:33:28 1112

转载 KAFKA分布式消息系统

Kafka[1]是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录、浏览、点击、分享、喜欢)以及系统运行日志(CPU、内存、磁盘、网络、系统及进程状态)。 当前很多的消息队列服务提供可靠交付保证,并默认是即时消费(不适合离线)。高可靠交付对linkedin的日志不是必须的,故可通过降低可靠性来提高性能,同时

2015-01-18 15:19:34 458

转载 Redis的数据回写机制

转载地址:http://blog.csdn.net/xiangliangyu2008/article/deta... Redis的数据回写机制Redis的数据回写机制分同步和异步两种,同步回写即SAVE命令,主进程直接向磁盘回写数据。在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的。异步回写即BGSAVE命令,主进程fork后,复制自身并通过这个新

2014-11-20 13:37:43 1502

原创 第一天上班

昨天是第一天上班,早上进行了员工培训,领取了自己的电脑MacBook Pro。领取到后,一直以来的担心果然没有错,完全不适应os系统,处处碰壁,连最基本的删除操作都搞不定,有那么一点点头疼,看来私下得下足功夫来对付这个操作系统。      昨天真是感受到来双十一的氛围,这在之前的公司是几乎感觉不到的,每个人都都有点手舞足蹈,可能是这个公司年轻人比较多的原因吧,今年30岁的我,感觉有点不太能和他

2014-11-11 11:43:59 1075 4

转载 Java 栅栏 CyclicBarrier 介绍

1、类说明:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。2、使用场景:需要所有的子任务都完成时,才执行主任务,这个时候就

2014-10-24 18:49:48 919

转载 Java 信号量 Semaphore 介绍

Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 Sem

2014-10-24 18:20:44 472

原创 猎头,希望您能更理解找工作的人

这些日子找工作,接触到了很多很多猎头,曾经看过一篇文章说,猎头喜欢和什么样的人打交道,不喜欢和什么样的人打交道,而我恰好是猎头喜欢的那种类型,因此,平均每天都会有一个新的猎头找到我。      猎头这个职业,其实表面上看是一种服务行业,但实际上我认为它是一种具有“马太效应”的人脉关系网。所谓供需关系,有需求就会有供给,前些天看过一篇报道,说现在IT市场上每年的人才需求量在30万,而每年从各大互

2014-10-23 21:06:00 1113

原创 FutureTask类

FutureTask类是Future 的一个实现,并实现了Runnable,所以可通过Executor(线程池)来执行,也可传递给Thread对象执行。 如果在主线程中需要执行比较耗时的操作时,但又不想阻塞主线程时,可以把这些作业交给Future对象在后台完成,当主线程将来需要时,就可以通过Future对象获得后台作业的计算结果或者执行状态。 Executor框架利用Futur

2014-10-23 20:14:03 819

原创 JAVA 模拟瞬间高并发

前些日子接到了一个面试电话,面试内容我印象很深,如何模拟一个并发?当时我的回答虽然也可以算是正确的,但自己感觉缺乏实际可以操作的细节,只有一个大概的描述。      当时我的回答是:“线程全部在同一节点wait,然后在某个节点notifyAll。”      面试官:“那你听说过惊群效应吗?”      我:“我没有听过这个名词,但我知道瞬间唤醒所有的线程,会让CPU负载瞬间加大。”

2014-10-21 17:48:58 32174 10

转载 JAVA CAS原理深度分析

参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.htmlhttp://www.searchsoa.com.cn/showcontent_69238.htmhttp://

2014-10-21 15:41:47 552

转载 java自带线程池和队列详细讲解

一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中

2014-10-20 19:38:49 509

原创 离职感言

离职手续都办理完毕,最终还是离开的这个地方;这几天和以前的同事都聊了聊,发现以前的同事基本都过得很惨,大多数都是因为没有勇气离开公司,也算是坚守阵地的人吧,但目前看来,他们没有得到应用的回报,有些朋友甚至被公司以各种非正规手段劝退。感觉自己很幸运,走了很多路,上演了一场屌丝的逆袭,最终找到了自己喜欢的行业、喜欢的公司。

2014-10-19 19:35:59 1407

原创 换工作了,新的开始

在这儿

2014-10-14 09:04:15 1025 2

转载 ConcurrentLinkedQueue的实现原理分析

1.    引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下Doug Lea是如何使用非阻塞的方式来实现线程安全队列Concurr

2014-09-27 19:11:51 597

转载 JVM调优总结

JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。 如何调优观察内存释放情况、

2014-09-17 22:29:17 455

转载 lvs、haproxy、nginx 负载均衡的比较分析

对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了F5硬件设备的60%性能,其他几个10%都有点困难。     不过就因为LVS忒牛了,配置也最麻烦了,而且健康检测需要另外配置Ldirector,其他HAPROXY和NGINX自己就用,而且配置超级简单。      所以小D建议,如果网站访问量不是门户级别的用HAPROXY或者NGI

2014-09-14 13:44:22 634

转载 B树、B+树、B*树

BST即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B-树(B树)是一种多路搜索树(并不是二叉的):1.定义任意非叶子结点最多只有M个儿子;且M>2;2.根结点的儿子数为[2, M];3.除根结点以外的非叶子结点的儿子数

2014-09-10 17:45:52 511

原创 JVM垃圾回收算法 总结及汇总

先看一眼JVM虚拟机运行时的内存模型:1.方法区 Perm(永久代、非堆)2.虚拟机栈3.本地方法栈 (Native方法)4.堆5.程序计数器1 首先的问题是:jvm如何知道那些对象需要回收 ?目前两种标识算法、三种回收算法、两种清除算法、三种收集器引用计数法每个对象上都有一个引用计数,对象每被引用一次,引

2014-09-07 20:22:52 1837

转载 JVM内存模型 及 调优方案

(1)类装载子系统                装载 连接 初始化(2)方法区。被所有线程共享。垃圾收集也会清理方法区中的无用类型对象。                a. 类型信息。类加载器加载类时,从类文件中提取出来。                                类的完整有效名                             

2014-09-03 14:32:25 715

转载 memcached 内存策略

Slab Allocation机制:整理内存以便重复使用最近的memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。 在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。 但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下, 会导致操作系统比memcached进程本身还慢。Slab Allocator就是

2014-09-02 10:38:48 442

转载 MapReduce工作原理图文详解

前言:前段时间我们云计算团队一起学习了hadoop相关的知识,大家都积极地做了、学了很多东西,收获颇丰。可是开学后,大家都忙各自的事情,云计算方面的动静都不太大。呵呵~不过最近在胡老大的号召下,我们云计算团队重振旗鼓了,希望大伙仍高举“云在手,跟我走”的口号战斗下去。这篇博文就算是我们团队“重启云计算”的见证吧,也希望有更多优秀的文章出炉。汤帅,亮仔,谢总•••搞起来啊!呵呵,下面

2014-09-01 15:37:04 450

转载 JAVA 动态代理

1.什么是动态代理?答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么使用动态代理? 答:因为动态代理可以对请求进行任何处理3.使用它有哪些好处?

2014-08-31 19:01:55 440

编程常用英语词汇

想成为高手,必须英语熟练; 先看看这个编程英语吧。

2014-06-03

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

TA关注的人

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