分布式相关
文章平均质量分 78
sjmnh1
这个作者很懒,什么都没留下…
展开
-
java并发(二十六)正确使用Volatile变量
博客分类: 多线程 概述 您只能在有限的一些情形下使用 volatile 变量替代锁。要使volatile变量提供理想的线程安全,必须同时满足下面两个条件: 对变量的写操作不依赖于当前值。该变量没有包含在具有其他变量的不变式中。实际上,这些条件表明,可以被写入volatile变量的这些有效值独立于任何程序的状态,包括变量的当前状态。 与锁相比,V转载 2014-11-10 00:14:19 · 619 阅读 · 0 评论 -
分布式事务
转于自己在公司的Blog: http://pt.alibaba-inc.com/wp/experience_1264/distributed-transaction.html 关于Dubbo服务框架的分布式事务,虽然现在不急着做,但可以讨论一下。 我觉得事务的管理不应该属于Dubbo框架, Dubbo只需实现可被事务管理即可, 像JDBC和JMS都是可被事务管理的分布式转载 2014-11-21 22:07:12 · 689 阅读 · 0 评论 -
Spring的分布式事务,使用或不用XA - 5
原文链接:http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html?page=5Page 5 of 6性能和JDBCPersistenceAdapterActiveMQ社区的一些人宣称JDBCPersistenceAdapter存在性能问题。然而,很多项目和正式系转载 2014-11-21 22:27:51 · 486 阅读 · 0 评论 -
MySQL事务隔离级别详解
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirt转载 2014-11-05 16:07:11 · 418 阅读 · 0 评论 -
分布式系统的事务处理
当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:1)数据分区:就是把数转载 2014-11-26 23:54:06 · 490 阅读 · 0 评论 -
Redis应用场景
1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。转载 2014-11-27 14:07:35 · 652 阅读 · 0 评论 -
构建高负载高性能大型网站的十个终极秘诀
对互联网有了解的人都有自己的想法,有人就把想法付诸实现,做个网站然后开始运营。其实从纯网站技术上来说,因为开源模式的发展,现在建一个小网站 已经很简单也很便宜。当访问量到达一定数量级的时候成本就开始飙升了,问题也开始显现了。因为带宽的增加、硬件的扩展、人员的扩张所带来的成本提高是显而 易见的,而还有相当大的一部分成本是因为代码重构、架构重构,甚至底层开发语言更换引起的,最惨的就是数据丢失,辛辛苦苦转载 2014-11-27 18:00:32 · 596 阅读 · 0 评论 -
mysql处理高并发,防止库存超卖
今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个问题,并希望以后这样的课程能多点。先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购一个商品。转载 2014-12-01 15:27:55 · 879 阅读 · 0 评论 -
浏览器的“刷新”&“缓存机制”
1)Last-Modified 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样: Last-Modified: Fri, 12 May 2006 18:53:33 GMT 客户端第二次请求此URL时,会在头部加入一个属性,询问该时间之后文件是否有被转载 2014-12-01 15:35:01 · 488 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它转载 2014-12-01 15:33:42 · 395 阅读 · 0 评论 -
也谈如何构建高性能服务端程序
也谈如何构建高性能服务端程序引子:我接触过很多编程语言,接触过各种各样的服务器端开发,Java,Go,Ruby,Javascript等语言,Spring,Node.js,Rails 等等常见服务器端框架和编程模型都有接触。这里谈一下我个人对高性能服务器端程序的一些看法,希望给各位读者一些认识。这片文章提到的内容也是 Coding(https://coding.net) 代码托管乃至整站转载 2014-11-21 23:02:46 · 581 阅读 · 0 评论 -
在开发高访问量、高负载的系统时要注意什么?
开发大型的电子商务系统高访问量和高负载的问题是不能不考虑的。总的来说需要注意以下几点: 1、HTML静态化 我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现。在进行html静态化的时候可以使用一种折中的方法,就是前转载 2014-11-27 17:59:45 · 727 阅读 · 0 评论 -
web架构师必看:一步一步教你如何做架构
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互转载 2014-11-27 17:58:42 · 664 阅读 · 0 评论 -
memcached(十八)并发原语CAS与GETS操作
博客分类: 缓存memcached/redis 最近笔者自己的项目中,遇到了乐观锁的需求。但是redis没有这个操作,无奈,看了memcache天然的支持这种并发原语,即:GETS和CAS操作。因此准备打算继续使用REDIS,业务没有那么强的时序执行要求,因此可以使用没有CAS的算法在某种程度上解决。 我们为什么要使用这种并发原语呢?如果是单机版的,我们转载 2014-11-10 00:15:27 · 728 阅读 · 0 评论 -
HTTP协议缓存原理
Last-Modified 是什么 Last-Modified 是 HttpHeader 中的资源的最后修改时间,如果带有 Last-Modified ,下一次发送 Http 请求时,将会发生带 If-modified-since 的 HttpHeader 。如果没有过期,将会收到 304 的响应,从缓存中读取。 Etag 是什么 Etag 是 HttpHeader 中代表资源的标转载 2014-11-10 00:28:13 · 466 阅读 · 0 评论 -
java并发(二十二)分布式锁
博客分类: 多线程 Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。 用SETNX实现分布式锁 利用SETNX非常简单地实现分布式锁。例如:某客户端要获得一个名字foo的锁,客户端使用下面的命令进行获取:转载 2014-11-10 00:13:03 · 591 阅读 · 0 评论 -
关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事转载 2014-10-17 16:23:28 · 484 阅读 · 0 评论 -
海量数据-事务一致性2
上次我们聊到,大家对于在数据库中的一致性和在分布式体系中的一致性理解上存在差异,那么这两个看似不同,但又相同的概念,是否能够得到统一呢?让我来尝试一下吧~ 要讨论这件事,我们首先需要先忘记一致性和隔离性等概念,先来把问题重新定义一下。 之前我们也讲过,数据库底层的核心,是映射(mapping),也就是一大堆的key-value。针对这些映射数据,我们转载 2014-11-05 00:37:10 · 594 阅读 · 0 评论 -
关于分布式系统的数据一致性问题(一)
最近写了一个关于 铁道部购票系统的若干文章 铁道部新客票系统的设计(一)铁道部新客票系统的设计(二)铁道部新客票系统的设计(三)正好遇到一个博友,咨询了一个问题,这个问题正好可以作为分布式系统的数据一致性的简单例子,当然,这个只是比较简单的情况现在先抛出问题,假设有一个主数据中心在北京M,然后有成都A,上海B两个地方数据中心,现在的问题是,假设成都上海各自的转载 2014-11-05 00:23:33 · 916 阅读 · 0 评论 -
关于分布式系统的数据一致性问题(二)
在分布式系统的数据一致性问题(一)里面,简单的介绍了分布式数据的同步问题,上面的问题比较抽象,在目前的互联网应用中还很少见,这次在通过一个比较常见的例子,让大家更深入的了解一下分布式系统设计中关于数据一致性的问题 这次我们拿我们经常使用的功能来考虑吧,最近网购比较热门,就以京东为例的,我们来看看京东的一个简单的购物流程 用户在京东上下了一个订单,发现自己在京转载 2014-11-05 00:33:43 · 485 阅读 · 0 评论 -
关于分布式系统的数据一致性问题(三)
在我的博文里面 关于分布式系统的数据一致性问题(二) 里面主要介绍了数据分布的情况下保证一致性的情况,在第二篇文章里面,我这里提出了三个问题订单系统调用支付系统支付订单,支付成功,但是返回给订单系统数据超时,订单还是I(初始状态),但是此时会员帐户余额100,会员肯定会马上找京东骂京东,为啥不给老子发货,我都付钱了订单系统调用支付系统成功,状态也已经更新成功,但是通知仓库发货失败,这个时候转载 2014-11-05 00:33:58 · 502 阅读 · 0 评论 -
缓存、缓存算法和缓存框架简介
缓存、缓存算法和缓存框架简介我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。面试“缓存就是存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以转载 2014-11-27 14:36:57 · 523 阅读 · 0 评论 -
通向架构师的道路(第七天)之漫谈使用ThreadLocal改进你的层次的划分
一、什么是ThreadLocal早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许转载 2014-12-01 15:44:09 · 565 阅读 · 0 评论