LinkNemo

  • 随遇而安

    用大白话聊聊分布式系统(转载)

    原文出处:waylau一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。什么是分布式系统关于“分布式系统”的定义,我们先看下老外是怎么说的。《分布式系统原理和范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。关于这个定义,我们直观的感受就是:首先,这种系统相对来说比较牛逼,起码由好几台主机组成。以谷歌、亚马逊等服务商而言,他们......
    2018/01/09 14:46:24发表 16赏阅 0点评
  • 随遇而安

    分布式系统常见的事务处理机制(转载)

    原文出处:waylau为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去。另外一个例子,当访问单一服务器管理的数据的进程数不断增加时,系统就需要对服务器的数量进行扩充,此时,对服务器进行复制,随后让它们分担工作负荷,就可以提高性能。但同时,如何保障多个数据节点之间数据的一致以及如何处理分布式事务,将成为为一个复杂的话题。本文将介绍常用的事务处理机制。CAP定理CAP定理(也称为Brewer定理),是由计算机科学家EricBrewer提出的,即在分布式计算机系统不可能同......
    2018/01/09 14:44:53发表 18赏阅 0点评
  • Nemo

    关于分布式系统中事务相关简单探索

    数据的原子性对于一个系统而言,重要性不言而喻。这里拿普遍的购物付款举个栗子:      你在淘宝上买了一件商品,结账的时候,其实淘宝会帮你处理两件事情:      1、从你的余额扣款。      2、添加你的购物订单。如果这时候,系统在扣除了你的余额后,忽然挂掉了,这时候该怎么办?这时候你的账户被扣钱了,但是你的订单并没有添加,淘宝的系统就会出现数据不一致的情况了。类似的场景在各种类型的系统中都会有。本质其实归纳起来......
    2018/01/05 15:45:47发表 40赏阅 0点评
  • Nemo

    分布式数据库架构--分库、分表、排序、分页、分组、实现 (转载)

    MySQL分库分表总结:单库单表:单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表:随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql,还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待。 可以通过某种方式将user进行水平的切分,产生两个表结构完全一样的user_0000,user_0001等表,user_0000+user_0001+…的数据刚好是......
    2017/12/12 14:23:56发表 34赏阅 0点评
  • Nemo

    Redis事务

    Redis事务可以一次执行多个命令,并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。实例事务先以 MULTI 开始一个事务,然后将多个命令入队到事务中,最后由 EXEC 命令触发事务,一并执行事务中的所有命令,可以看到,set完命令之后,反馈信息是QUEUED,最后再执行exec,这些命令才会真正的执行:对应的Ja......
    2017/02/10 10:37:32发表 223赏阅 0点评
  • Nemo

    SpringMVC +Spring+ Ibaties + Dubbo + Zookeeper实现简单分布式架构备份

    之前有一个项目上正好需求上要求使用Dubbo+Zookeeper做分布式。稍稍找了下Dubbo的文档,结合了下网络上的一些资料,简单做了一个整合SpringMVC+Spring+Ibaties+Dubbo+Zookeeper的架构。这里稍稍简单整理记录下这个架构的一些内容,留作备忘。准备工作:1、这里需要用到一个服务注册中心,这里使用的是Zookeeper。之前做过一个Ubuntu下安装Zookeeper的备忘,可以参考这里。安装完Zookeeper之后记得务必打开Zookeeper的服务,不然在后面测试的时候会有问题。2、项目是使用maven做的版本控制。架构分层:core//这一层用来存放......
    2016/11/28 11:31:16发表 632赏阅 1点评
  • Nemo

    [转载]理解JAVA MQ消息中间件

    MQ的几种消息传递方式发布订阅模式发布订阅模式有点类似于我们日常生活中订阅报纸。每年到年尾的时候,邮局就会发一本报纸集合让我们来选择订阅哪一个。在这个表里头列了所有出版发行的报纸,那么对于我们每一个订阅者来说,我们可以选择一份或者多份报纸。比如北京日报、潇湘晨报等。那么这些个我们订阅的报纸,就相当于发布订阅模式里的topic。有很多个人订阅报纸,也有人可能和我订阅了相同的报纸。那么,在这里,相当于我们在同一个topic里注册了。对于一份报纸发行方来说,它和所有的订阅者就构成了一个1对多的关系。这种关系如下图所示:发布订阅模式点对点模式点对点模式就相当于打电话,由两端的双方独享这一通信链路点对点......
    2016/11/23 12:15:57发表 298赏阅 0点评
  • Nemo

    Ecache 与 Redis的使用场景

    ehcache直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。补充下:ehcache也有缓存共享方案,不过是通过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共享可以,但是涉及到缓存恢复,大数据缓存,则不合适。
    2016/08/18 16:15:10发表 265赏阅 0点评
  • Nemo

    关于Nginx的配置

    唔,之前做BBS的时候玩过Nginx了,不过当时没有做好记录...博客上正好也用到了Nginx,现在简单记录下简单的使用方式。=====Nginx和Tomcat的简单整合:=====假如,在tomcat上跑着http://localhost:8080/temp/index.jsp用vi打开/etc/nginx/下的nginx配置文件,一般名称是config结尾的在server{}中加入:#所有jsp页面以及do/action请求均交由tomcat处理location~.*.[jsp|do|action]${indexindex.jsp;proxy_passhttp://localhost:80......
    2016/01/11 23:17:44发表 399赏阅 0点评

最新点击

热门人物

热门标签

回到顶部