自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT技术精选文摘

专注于Java架构知识分享,文章内容主要涵盖Java基础,底层原理,架构设计(高可用,高性能,消息,缓存等),Android移动开发等范围.

  • 博客(25)
  • 收藏
  • 关注

转载 10分钟让你明白MySQL是如何利用索引的

一、前言在MySQL中进行SQL优化的时候,经常会在一些情况下,对MySQL能否利用索引有一些迷惑。譬如:MySQL 在遇到范围查询条件的时候就停止匹配了,那么到底是哪些范围条件?MySQL 在LIKE进行模糊匹配的时候又是如何利用索引的呢?MySQL 到底在怎么样的情况下能够利用索引进行排序?今天,我将会用一个模型,把这些问题都一一解答,让

2017-11-30 00:00:00 375

转载 JTA深度历险-原理与实现

在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子、一致、隔离、持久)属性。对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)。JTA 为 J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,实现了透明的

2017-11-29 00:00:00 2045

原创 JVM致命错误日志(hs_err_pid.log)分析

当jvm出现致命错误时,会生成一个错误文件 hs_err_pid.log,其中包括了导致jvm crash的重要信息,可以通过分析该文件定位到导致crash的根源,从而改善以保证系统稳定。当出现crash时,该文件默认会生成到工作目录下,然而可以通过jvm参数指定生成路径(JDK6中引入):-XX:ErrorFile=./hs_err_pid.log该文件包含如下几类关键信息:

2017-11-28 00:00:00 610

原创 技术人员的发展之路

2012年的时候写过一篇叫《程序算法与人生选择》的文章,我用算法来类比如何做选择,说白了就是怎么去计算,但是并没有讲程序员可以发展的方向有哪些。 所以,就算是有这些所谓的方法论,我们可能对自己的发展还是会很纠结和无所事从,尤其是人到了30岁,这种彷徨和迷惑越来越重。虽然我之前也写过一篇《编程年龄和编程技能》的文章,但是还是有很多做技术的人对于自己能否在年纪大时还能去做技术感到没有信心。我猜测,这其

2017-11-27 00:00:00 261

原创 RabbitMQ关于吞吐量,延迟和带宽的一些理论

你在Rabbit有一个队列,然后一些消费者从这个队列中消费。如果你根本没有设置QoS(basic.qos),那么Rabbit会把所有的队列消息都按照网络和客户端允许的速度推送给客户端。消费者将会飞速增加它们的内存占用,因为它们将所有消息都缓存在自己的RAM中。如果您询问Rabbit,队列可能会显示为空,但会有大量在客户端中,正准备由客户端应用程序处理的消息未被确认。如果您添加新的消费者,则队列中不

2017-11-24 00:00:00 3086

原创 跟着实例学习ZooKeeper的用法: 缓存

可以利用ZooKeeper在集群的各个节点之间缓存数据。 每个节点都可以得到最新的缓存的数据。 Curator提供了三种类型的缓存方式:Path Cache,Node Cache 和Tree Cache。Path CachePath Cache用来监控一个ZNode的子节点. 当一个子节点增加, 更新,删除时, Path Cache会改变它的状态, 会包含最新的子节点, 子节点的数

2017-11-23 00:00:00 902

原创 基于分布式环境下限流系统的设计

前提业务背景就拿前些天的双十一的 “抢券活动” 来说,一般是设置整点开始抢的,你想想,淘宝的用户群体非常大,可以达到亿级别,而服务接口每秒能处理的量是有限的,那么这个时候问题就会出现,我们如何通过程序来控制用户抢券呢,于是就必须加上这个限流功能了。生产环境服务接口所能提供的服务上限(limit)假如是 500次/s用户请求接口的次数未知,QPS可能达到 800次/s

2017-11-22 00:00:00 204

原创 跟着实例学习ZooKeeper的用法: 计数器

这一篇文章我们将学习使用Curator来实现计数器。 顾名思义,计数器是用来计数的, 利用ZooKeeper可以实现一个集群共享的计数器。 只要使用相同的path就可以得到最新的计数器值, 这是由ZooKeeper的一致性保证的。Curator有两个计数器, 一个是用int来计数,一个用long来计数。SharedCount这个类使用int类型来计数。 主要涉及三个类。

2017-11-21 00:00:00 282

原创 跟着实例学习ZooKeeper的用法: 队列

使用Curator也可以简化Ephemeral Node (临时节点)的操作。Curator也提供ZK Recipe的分布式队列实现。 利用ZK的 PERSISTENTSEQUENTIAL节点, 可以保证放入到队列中的项目是按照顺序排队的。 如果单一的消费者从队列中取数据, 那么它是先入先出的,这也是队列的特点。 如果你严格要求顺序,你就的使用单一的消费者,可以使用leader选举只让leader

2017-11-20 00:00:00 245

原创 阿里云双11云产品之互联网中间件

中间件技术一开始是支撑阿里巴巴内部的系统。很多外部客户在从集中式系统向分布式系统转型过程中碰到一些技术上的难题。为了更好的服务客户、把阿里云一些成熟的技术分享给外部的客户,阿里云推出了类似恢复框架、消息队列、实时监控、性能测试等一系列互联网中间件产品。在制作EDAS产品过程中,一开始我们对外部客户提供应用的基础功能,包括应用管理、应用的发布等一系列功能,之后我们将阿里内部RPC框架提供给外部客

2017-11-18 00:00:00 1643

原创 海量用户的实时互动直播云服务

实时互动直播架构的演进 公众号推荐:公众号:VOA英语每日一听微信号: voahk01可长按扫码关注,谢谢

2017-11-17 00:00:00 363

转载 当当网价格系统架构分析

摘要只讲故事,不讲道理。• 背景• 整体架构• 消息中间件• 缓存服务集群•智能价格• 未来尝试 系统如何设计?•千万级商品的价格变化•亿级访问量的价格精准计算•促销时段几十倍的压力•嗅探对手的价格变化并迅速做出反应

2017-11-16 00:00:00 2983

原创 跟着实例学习ZooKeeper的用法: Leader选举

Leader ElectionBarriersQueuesLocksTwo-phased Commit其它应用如Name Service, Configuration, Group Membership在实际使用ZooKeeper开发中,我们最常用的是Apache Curator。 它由Netflix公司贡献给Apache,目前版本2.7

2017-11-15 00:00:00 295

原创 跟着实例学习ZooKeeper的用法: Barrier

分布式Barrier是这样一个类: 它会阻塞所有节点上的等待进程,知道某一个被满足, 然后所有的节点继续进行。比如赛马比赛中, 等赛马陆续来到起跑线前。 一声令下,所有的赛马都飞奔而出。栅栏BarrierDistributedBarrier类实现了栅栏的功能。 它的构造函数如下:public DistributedBarrier(CuratorFramework

2017-11-14 00:00:00 445

转载 跟着实例学习ZooKeeper的用法: 临时节点

使用Curator也可以简化Ephemeral Node (临时节点)的操作。 临时节点驻存在ZooKeeper中,当连接和session断掉时被删除。比如通过ZooKeeper发布服务,服务启动时将自己的信息注册为临时节点,当服务断掉时ZooKeeper将此临时节点删除,这样client就不会得到服务的信息了。PersistentEphemeralNode类代表临时节点。

2017-11-13 00:00:00 2206

转载 跟着实例学习ZooKeeper的用法: 分布式锁

锁分布式的锁全局同步, 这意味着任何一个时间点不会有两个客户端都拥有相同的锁。可重入锁Shared Reentrant Lock首先我们先看一个全局可重入的锁。 Shared意味着锁是全局可见的, 客户端都可以请求锁。 Reentrant和JDK的ReentrantLock类似, 意味着同一个客户端在拥有锁的同时,可以多次获取,不会被阻塞。 它是由类InterProcess

2017-11-12 00:00:00 1185

转载 从Java视角理解系统结构(三)伪共享

从我的前一篇博文中, 我们知道了CPU缓存及缓存行的概念, 同时用一个例子说明了编写单线程Java代码时应该注意的问题. 下面我们讨论更为复杂, 而且更符合现实情况的多核编程时将会碰到的问题. 这些问题更容易犯, 连j.u.c包作者Doug Lea大师的JDK代码里也存在这些问题.MESI协议及RFO请求从前一篇我们知道, 典型的CPU微架构有3级缓存, 每个核都有自己私有的L1, L

2017-11-11 00:00:00 212

转载 从Java视角理解系统结构(二)CPU缓存

众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢一点儿. 由于内存的发展都到技术及成本的限制, 现在获取内存中的一条数据大概需要200多个CPU周期(CPU cycles), 而CPU寄存器一般情况下1个CPU周期就够

2017-11-10 00:00:00 226

转载 从Java视角理解系统结构(一)CPU上下文切换

在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Switch).上下文切换的精确定义可以参考: http://www.linfo.org/conte

2017-11-09 00:00:00 189

转载 再论分布式事务:从理论到实践

本文补充一种分布式事务解决方法:Best Effort.Best Effort  best effort即尽最大努力交付,主要用于在这样一种场景:不同的服务平台之间的事务性保证。比如我们在电商购物,使用支付宝支付;又比如玩网游的时候,通过App Store充值。拿购物为例,电商平台与支付平台是相互独立的,隶属于不同的公司,即使是同一个公司也很可能是独立的部门。因此,这两个平台是

2017-11-08 00:00:00 617 1

转载 快消品图像识别丨无人店背后的商品识别技术

人工智能一浪接一浪地席卷全球,AI的其中一个重要分支——计算机视觉,也如雨后春笋,不断涌现出新的想法和应用。人脸识别已经逐渐渗透我们的日常生活,机器能够认准人脸,想必大家都有所耳闻;而另一类计算机视觉的应用,是进行商品识别。当前新兴的一些无人零售店,背后就需要机器对商品进行自动识别,拍图购物、AR互动营销等场景,也运用了商品识别技术。人工智能商业公司ImageDT,则利用商品图像识别技术提供2

2017-11-07 00:00:00 6671

转载 十分钟入门RocketMQ

本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题。然后本文将介绍RocketMQ的架构设计,以期让读者快速了解RocketMQ。消息中间件需要解决哪些问题?Publish/Subscribe发布订阅是消息中间件的最基本功能,也是相

2017-11-06 00:00:00 302

转载 阿里巴巴分布式数据库服务DRDS研发历程

淘宝TDDL研发历史和背景淘宝DRDS/TDDL是阿里巴巴自主研发的分布式数据库服务。DRDS脱胎于阿里巴巴开源的Cobar分布式数据库引擎,吸收了Cobar核心的Cobar-Proxy源码,实现了一套独立的类似MySQL-Proxy协议的解析端,能够对传入的SQL进行解析和处理,对应用程序屏蔽各种复杂的底层DB拓扑结构,获得单机数据库一样的使用体验,同时借鉴了淘宝TDDL丰富的分布式数据库实

2017-11-03 00:00:00 194

转载 通过案例来学习TCP的MSS、MTU

问题的描述最近要通过Docker的方式把产品部署到客户机房, 过程中需要部署一个hbase集群,hbase总是部署失败(在我们自己的环境没有问题)发现hbase卡在同步文件,人工登上hbase 所在的容器中看到在hbase节点之间scp同步一些文件的时候,同样总是失败(稳定重现)手工尝试scp那些文件,发现总是在传送某个文件的时候scp卡死了尝试单独scp这个文

2017-11-02 00:00:00 450 1

转载 17.5W秒级交易峰值下的混合云弹性架构之路

前言每年的双11都是一个全球狂欢的节日,随着每年交易逐年创造奇迹的背后,按照传统的方式,我们的成本也在逐年上升。双11当天的秒级交易峰值平时的近10多倍,我们要用3-4倍的机器去支撑。但大促过后这批机器的资源利用率不高,到次年的双11会形成较长时间的低效运行。试想一下,电商交易有大促峰值,而阿里云有售卖Buffer,如果能充分发挥云计算的弹性能力,让资源可以两边快速腾挪,就可以解决资源浪费的问

2017-11-01 00:00:00 348

空空如也

空空如也

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

TA关注的人

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