`
文章列表
Base: ACID外的另外一种选择   在分区数据库中,为可用性牺牲一定的一致性能够显著提高可扩展性 DAN PRITCHETT, EBAY   在过去的十年中,Web应用变得日益流行。无论您是为最终用户构建应用程序还是为应用程序开发人员(即服务),您希望您的应用程序是最可能被广泛采用的,而广泛的应用将会使事务处理量增长。如果您的应用程序依赖于持久性,那么数据存储很可能将成为你(系统)的瓶颈。  
        支付宝tcc架构困惑了我很久。感谢https://github.com/changmingxie/tcc-transaction提供的源码,可惜github中文档较少,对此,我整理了一份类图文档,方便对程序结构进行梳理:   
分布式事务与消息  
一、ps -ef | grep java     二、jps  -l  注:6417和29076是我们关心的LVMID,即虚拟机进程ID   三、jstat -gc 6417 说明: S0C:Current survivor space 0 capacity (KB). S1C:Current survivor space 1 capacity (KB). S0U:Current survivor space 0 utilization (KB). S1U:Current survivor space 1 utilization (KB). EC: ...
    个人整理的Java并发涉及的技术关系图:    
一、简单模型:CDN、Redis,索引,原理就是:“空间换时间”、“高速设备提升性能”   二、复杂模型:     (一)、“数据并行度”和“数据一致性”之间的取舍。         1、单机数据库:ACID中的I其实就是“一致性”和“并行性”的取舍结果:C要求高,则加锁,并行度低;C要求低,则并行度高。         2、分布式系统:CAP理论中,C一致性如果理解为最强一致性,则意味着在某个一个特定时刻,系统间/内存磁盘间完全一致;P表示一个需要多个分区;A表示即使一个分区坏掉依然可以提供服务。具体场景如下:             (1)、分布式两个系统S1、S2, ...
〇、信息来源: 1、http://itjiehun.iteye.com/blog/1826029 2、http://www.360doc.com/content/13/0521/13/9437165_287009615.shtml 3、http://blog.sina.com.cn/s/blog_4c925dca0102vdhl.html 4、http://www.tuicool.com/articles/zqyYrm   一、MetaQ是什么?     (一)、师从kafka ,是一款高可用,可无限水平扩展的消息中间件。核心为:         1、他使用拉模型的 ...
一、核心配置:   二、对比Hibernate: 1、Mybatis原生态的SQL,方便进开发前进行调优,也可以很容易取实现调优;而hibernate自己封装尽管更OO化,但需要打印输出SQL才方便找到真正执行脚本,而且SQL由于是自动生成,不一定容易变动。 2、Mybatis在动态SQL上更为灵活 3、Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。 4、Hibernate生成的对象为代理对象,MyBatis生成的对象是否是代理对象呢?
一、2PC: 通过2PC,但需要丧失CAP的A特性,如果部分服务不可用,则无法实现整个事务提交   二、Paxos或Zookeeper: (一)、Paxos: 偏向C,弱化A;但也要求至少N+1结点同时操作,在可用性(性能和吞吐量)方面也打了不少折扣。主要应用于同时两个人要改一件事情,到底以谁的为准。Paxos的游戏场景: 甲乙两个客户端分别提交100、200两个事务,其中100需要把数据库比如学生姓名改为张三,200事务改成李四,后台有三个数据库服务器A、B、C。时间顺序为: 1、100咨询张三A、B、C是否可以预提交,A、B口头答应,C没有答 ...
大型系统架构核心:一点、一平行、一纵切   〇、点: 提升快资源访问比例,将读较多的放在性能较快设备中,如使用Redis、Memcache提升性能。这个在单机也有应用比如索引   一、平行提升并行性 1、在单机中,一般通过多线程实现。但并行性带来的问题是共享资源访问,避免共享资源访问的原则就是通过锁,数据库的核心即ACID中的CI就是通过锁来实现,Java同步关键字也是为了解决这个问题。 2、在多机中,解决并行的方法就集群部署,又分为两种:     1、Master-Work模式:平行的负载均衡调度策略,如Ngix、F5均为解决该问题,而Ngix和F5实现负载 ...
一、在不使用MVCC情况下,隔离性、锁之间的关系: 隔离级别 并行级别 锁实现 Seriallizable 读读并行
     个人心得:     核心定律为费马定律:当 n = p · q(p,q为质数) , m = (p - 1)(q - 1) ,a为小于n任意自然数,则a1+m mod n = a mod n = a     RSA扩展:当e 乘以 d 的结果除以 m 余 1时,ae*d mod n = a mod n,即ae*d mod n = a,应用于运 ...

深入浅出JMS

企业消息系统       Java Message Service是由Sun开发的,它为 Java程序提供一种访问企业消息系统的方法。在讨论JMS之前,我们分来析一下企业消息系统。       企业消息系统,即面向消息的中间件(MOM),提供了以松散耦合 ...
xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制。 xss攻击可以分成两种类型: 非持久型攻击 持久型攻击 下面我们通过具体例子,了解两种类型xss攻击。   1.非持久型xss攻击 顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击
  我们不断的拆分schema,说了为了下一步的分库做准备,但是由此带来的代价也是显而易见的,我们的分布式事务在不断的增多。我们期望利用分布式事务来保证数据的一致性,但是其带来的影响也是不容忽视的。    摘录他人语:分布式事务提供的ACID保证是以损害系统的可用性、性能与可伸缩性为代价的 。只有在参与分布式事务的各个数据库实例都能够正常工作的前提下,分布式事务才能够顺利完成,只要有一个工作不正常,整个事务就不能完成。这样,系统的可用性就相当于参加分布式事务的各实例的可用性之积,实例越多,可用性下降越明显。从性能和可伸缩性角度看,首先是事务的总持续时间通常是各实例操作时间之和,因为一个事务 ...
Global site tag (gtag.js) - Google Analytics