zoukankan      html  css  js  c++  java
  • 架构小结

    分布式服务:
    1、dns轮询:一个域名配置多个ip,通过轮询的方式进行请求(无健康检查、分配不均、会话保持)
    2、cdn加速:将系统中的静态资源缓存在cdn节点上,用户请求不回直接落在企业的数据中心,而是请求离用户最近的服务商。
    3、业务系统垂直划分:根据不同的业务,拆分为不同的子业务来部署。
    4、服务化:垂直化拆分的过程中,不同的子业务可能会有共享的服务,共享的业务会被重复建设,重复建设导致的问题:(1)数据库等底层连接资源横向扩展节点受到限制(2)多个团队维护相同的模块,容易出问题。所以就需要将共享的业务提出来,进行服务化,让业务能共用。
    5、服务化-RPC:服务化是一个抽象的概念,而RPC是实现服务调用的关键,RPC调用本质上屏蔽了复杂的底层处理细节,让服务调用方甚至能向调用本地方法一样调用服务提供方的服务。
    6、服务治理
    7、分布式调用跟踪系统:dubbo实现filter接口
     
     
    限流消峰:
    1、5种常见提高系统可靠性方案:扩容、缓存、限流、服务降级、动静分离
    2、限流算法:令牌桶算法、漏桶算法、计数器算法
    3、消峰:基于时间分片的消峰方案(活动分时段/答验证题)
    4、异步调用实现解藕/流量消峰
    5、JMS消失模式:点对点、发布订阅模式
    6、activemq:
    jsmprovider:消息路由消息传递
    provider
    consumer
    7、rocketmq:
    nameserver :注册中心,负责客户端寻址工作
    broker :消息服务端,提供消息管理、存储、分发等功能
    provider
    consumer
    broker部署方式:单master、多master、多master/slave异步复制、多master/slave同步双写
     
     
    分布式配置管理:
    1、zk:配置管理、分布式协调/调用、分布式锁、
    2、zk的节点:持久节点、瞬时节点
    3、通过watcher监听节点值的变化
    4、通过从配置中心获取spring中的bean实现bean的动态注册
    5、
     
    大数据场景热点数据的读写优化
    读:
    1、redis多读多写方案:
    将热销的商品key,根据计算,落到所有的node节点上,实现数据坑余,客户端根据加工的key,进行轮训或者其他查询操作
    缺:多写时候缓存一致性(zk配置商品key)、扩容时node所持槽的变化
    2、localcache结合redis集群实现多集cache方案
    只缓存热点数据
    对不不经常变的设置较长的定时轮询
    对于库存之类,设置频繁轮询从分布式缓存中获取,允许一部分脏读,下单时再提示库存不足
    3、实时热点自动发布
    日志监控分析等
     
    写:
    innodb的行锁会导致吞吐量下降,采用数据库行锁,防止超售方案:1、添加version版本2、判断扣除的库存是否小于剩余库存
    redis中扣除库存:悲观锁
    优化:对库存扣除进行收集,到达指定阀值再获取锁合并处理
    采用redis中的watcher命令实现优化,watcher进行key标记后,事务提交的时候key值发生变化就回滚
    抢购环节:单机限流,10秒钟最多1000个请求,超过则直接返回失败
     
    分库分表
     
  • 相关阅读:
    Sqlserver日期函数应用
    SSRS匿名访问
    SSAS动态添加分区(一)
    BI就是报表?
    CreateEvent函数/多线程/c++
    字符编码介绍
    Win7 64下Visual C++ 6.0不兼容
    Winpcap安装,Cannot open include file 'pcap.h'
    PPT开发 * .pps 文件类型
    Visual Assist X 工具栏不显示 toolbar
  • 原文地址:https://www.cnblogs.com/guoliangxie/p/7596691.html
Copyright © 2011-2022 走看看