重型网站架构演进(9)服务化

  随着工作尤其拆越聊,而且各个应用还要是单身布置以及维护的,这样的架是以下问题:

数存储重要性:

1,数据库连接数之问题,如果逐个应用都连现有数据库,当使用集群和产出访问量十分之情况下,就会促成数据库连接数超过限定。当然,如果逐个应用还出投机的数据库,则非在是问题。

    数据是店铺最重大之财;

2,代码复用的题目,有些基础信息于逐个应用中都存在,比如用户信息,这样就算造成代码的复与成为难以保障。

    数据可靠性是商店之掌上明珠,一定要是确保。

服务化

服务化就是管每个应用都亟需执行之工作操作,比如职工信息和客户信息,提供出来,然后独立布置及保护,由这些只是复用的事情连接数据库,提供合用工作服务(api接口),而用体系只待管住用户界面,通过远程服务调用完成具体工作操作。架构使下图:

澳门美高梅手机网站 1

 

总结:

1,服务化解决了政工拆分后的代码复用问题及数据库连接问题,同时也衍生出来一个题材:原来工作中的调用是单机内部的不二法门调用,现在变为了远距离的劳务调用,即通常的RPC,如果以了分布式服务,还要考虑引入服务框架中件。

2,如果当服务实现了分布式的状态下,单纯解决服务路由的题材,可以以服务层前面使用负载均衡服务器来化解。

3,关于微服务的架,还索要后面的驳斥加实践备受逐渐总结。

 

 

单机存储原理:

    存储引擎:存储系统的发动机,它决定存储系统的功用以及总体性;

    引擎类型:哈希存储引擎、B树存储引擎、LSM存储引擎

  1. 哈希存储引擎:基于哈希表结构
    :数组+链表;支持Create\Update\Delete\随机Read
  2. B树存储引擎:基于B
    Tree实现,支持才条记下的CURD,支持顺序查找。RDBMS使用于多。
  3. LSM树存储引擎:对数码的改动增量保存在内存,达到一定原则又批量创新到磁盘;优势在于批量描写副;劣势在于读取需合并磁盘和内存;

    1. 避免内存数据丢失:修改操作写副到CommitLog日志。

数据模型:

  1. 文本:以目录树组织,如linux,mac,windows;
  2. 关系型:每个关系是一个报表,多尽组成,每行多列;
  3. 键值(Key-Value):Memcached, Tokey, Redis;
  4. 列存储型:Casadra, Hbase;
  5. 图片数据库:Neo4J, InfoGrid, Infinite Graph
  6. 文档型:MongoDB, CouchDB

政工以及出新控制:

    事务4单中心属性:ACID 原子性、一致性、隔离性、持久性

         并作控制:

            锁粒度:Process->DB->Table->Row

                 提供Read并发,Read不加锁:写时复制、MVCC

        数据恢复:通过操作日志

    

多机存储原理:

    单机存储原理在多机存储仍然可用;多级存储基于单机存储;

    数据分布:

        分布于差不多个节点,节点内负载均衡;

        分布方式:

            静态:取模、uid%32;

            动态:一致性hash,数据飘移问题(A节点更新前出现故障,更新迁移到B节点后A节点又卷土重来);

        复制:

            分布式存储多个副本;保证高可靠和赛可用;Commit Log。

        故障检测:

            心跳机制、数据迁移、故障恢复;

 

FLP定理与设计:

    FLP Impossiblity(FLP不可能):

        在异步消息通信场景,即使单独生一个历程受挫,没有外措施能保证不失败进程上一致性。

CAP定理与统筹:

    CAP:一致性(Consistency)、可用性(Availabilty)、分区容忍性(Tolerance
of network Partition)。

    一致性与可用性需要折中权衡

    分布式存储系统要会自行容错,也就是说分区容忍性需要保证。

2PC(Two Phase Commit)协议及规划:

    用于分布式事务;

    两类似节点组成:

        协调者(1个);

        事务参与者(多单);

    分点儿路:

        请求阶段:协调者通知参与者准备付出或吊销事务,所有参与者都需要表决同意或不容许。

        提交等:

收下参与者所有决策后,协调者进行裁决(提交或吊销);

通报参与者执行操作,所有参与者都允许便付给,否则取消;

参与者收取协调者的打招呼后执行操作。

    2PC商量是阻塞式:

        事务参与者或者产生故障

            –设置过时间;

        协议者可能出故障

            –日志记录、备用协调者

    应用:交易订单 等;

 

Paxos协议及规划:

    作用:

        解决节点内的一致性问题;

        主节点宕掉,则选择新节点;

        主节点常以操作日志的样式共备节点。

    分点儿栽角色:提议者(Prpposer)、接受者(Acceptor);

    执行步骤:

  1. 准予:Proposer发送accept消息澳门美高梅手机网站给Accepter要求受有提议者;
  2. 承认:超一半之Accepter接受,则建议值生效,Proposer发送acknowledge消息通知所有的Accepter提议生效。

    与2PC比较::

2PC协议保多单数据分片上操作的原子性;

        Paxos协议保一个数码分片多个副本中的数额一致性;

    Paxos协议用法:

        实现全局的吊服务要命名暨安排服务;

            —Apache Zookeeper

        将用户数据复制到大半只数据核心;

            —Google Megastore

 

数量存储层冗余:

    多个副本,实现访问的高可用性。

    如何落实:

        数据复制:

            基于日志;

            Master-Slave:mysql\MongoDB

            Replic Set:MongoDB

        双写:

            存储层多主对等组织;比较灵敏,但数额模块层成本比较高;

    数据备份:

        冷备份:

            定期以数据复制到某存储介质,是民俗的数据保护手段;

            优点:简单、廉价,技术难度低;

            缺点:定期在数据未雷同;恢复数据时增长;

        热备份:

            online备份;提供更好之高可用性;

            异步热备份:

                从主存储写副即返给应用端,由存储系统异步写副另外副本;

            同步热备份:

                多客数据副本写入同步到位,无主从之分;

                为增强性能,应用程序并发写副;

                响应延迟是极端缓慢的那台服务器;

 

数码存储层失效转移机制:

    失效确认:是否宕机、心跳;

    访问转移:访问行程由于至非宕机机器;存储数据完全一致;

    数据恢复:主从、日志;

发表评论

电子邮件地址不会被公开。 必填项已用*标注