去年参加了一个技术分享活动,七牛的一个技术大牛给简要的介绍了一些高可用可伸缩的一些最佳实践,虽然只是一次简短的介绍,但是依然从中学到了很多东西,PPT内容主要分以下几个部分:

  • 入口层高可用

  • 业务层高可用

  • 缓存层高可用

  • 数据库高可用

  • 入口层可伸缩

  • 业务层可伸缩

  • 缓存层可伸缩

  • 数据库可伸缩

打算分两次把参加的技术活动日内容归类整理,
第一次主要讲下高可用,第二次讲一下可伸缩


下面来分层介绍实践方法。

入口层高可用

nigix两个 keeplive保活 心跳做好。

  • 使用心跳技术:keeplive提供这个技术

  • 比如机器A IP是1.2.3.4,机器B IP是1.2.3.5,那么再申请一个IP (1.2.3.6)我们称之为心跳IP,平时绑定再A上面,如果A宕机,那么IP会自动绑定到B上面

  • DNS 层面绑定到心跳IP即可

  • 两台机器必须在同一网段

  • 服务监听必须监听所有IP,如果仅仅监听心跳IP,那么从机上的服务(不持有心跳IP的机器)会启动失败

  • 服务器利用率下降(混合部署可以改善这一点)

考虑一个问题,两台机器,两个公网IP,DNS把域名同时定位到两个IP,这算高可用吗

不算,客户端(比如浏览器) 解析完后会随机选一个 IP访问 , 而不是一个失败后就去另一个 。 所以如果一台机器当机 ,那么就有一半左右的用户无法访问 。

业务层高可用

  • 业务层不要有状态 , 状态分散到缓存层和数据库层 。 只要没有状态,业务层的服务死掉后,前面的nginx会自动把流量打到剩下的服务 。 所以,业务层无状态是一个重点。

  • 友情提醒:不要因为想让服务无状态就直接用cookie session, 里边的坑有点大,考察清楚后再用比较好。比如重放攻击 。

缓存层高可用

  • 缓存层分得细一点,保证单台缓存宕机后数据库还能撑得住 。

  • 中小模下缓存层和业务层可以混合部署, 这样可以节省机器

  • 大型规模网站,业务层和缓存层分开部署。

  • 缓存层高可用,缓存可以启用主从两台,主缓存活着的时候,主缓存读,主从缓存都写,主缓存宕机后,从变主,主恢复后, 变成新的从。这样可以保证数据完整性,实现高可用

数据库高可用

  • MySQL有主从模式, 还有主主模式都能满足你的需求

  • MongoDB也有ReplicaSet的概念,基本都能满足大家的需求。
    这里就不做详细介绍了,有兴趣的同学可以自行百度。

高可用小结

原文链接:http://www.cnblogs.com/liuroy/p/6536630.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

后端架构高可用可伸缩讲解之高可用相关推荐

  1. 后端架构高可用可伸缩

    Reference: https://www.cnblogs.com/liuroy/p/6537660.html 后端架构高可用可伸缩 去年参加技术分享活动,七牛的一个技术简要的介绍了一些高可用可伸缩 ...

  2. 高可用可伸缩架构实用经验谈

    移动互联网.云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品.此时,如果用户需求抓得准,用户数量将很可能获得爆发式增长,而不需要像以往一样需要精心运营几年的时间.然而用户数量的快 ...

  3. 打造千万级流量秒杀系统第六课 云架构:基础设施是如何做到高可用的?

    你好,欢迎进入模块三"高可用架构设计",这一讲我会和你聊聊云架构高可用原理以及秒杀系统是如何使用云架构的. 我为什么要跟你聊聊云架构呢? 实际上,许多互联网服务都是部署在云上的,这 ...

  4. 我的架构梦:(九十九)消息中间件之RocketMQ的高可用机制——消息消费高可用

    欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在前两篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...

  5. 我的架构梦:(九十八)消息中间件之RocketMQ的高可用机制——消息发送高可用

    欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在上一篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...

  6. 金蝶k3rpc服务器不可用_金蝶K3CLOUD高并发阿里云部署架构方案

    金蝶作为中大型企业信息化管理的ERP管理软件,其特点在于对于服务器配置要求较高,作为针对性的云计算服务厂商我会讲解一下K3cloud高并发如何部署在阿里云上. 做项目的都知道,小客户比较关注的是成本, ...

  7. 【高并发、高性能、高可用】系统设计经验分享!

    知识分享,以技会友.大家好,我是Tom哥.阅读本文大约需要 15 分钟. 软件开发通常会提到一个名词 "三高",即高并发.高性能.高可用. 具体的指标定义,如:高并发方面要求QPS ...

  8. 高并发、高性能、高可用

    互联网三高架构:高并发.高性能.高可用,简称三高(3H) 那么,构建一个三高的系统,到底可以从哪些方面下手呢. 大概可以从以下方面入手:横向分层.纵向分割.分布式化.集群化.使用缓存.使用异步模式.使 ...

  9. 全面认识高并发:高性能、高可用、高扩展

    Table of Contents 01 如何理解高并发? 02 高并发系统设计的目标是什么? 2.1 宏观目标 2.2 微观目标 ❇ 性能指标 ❇ 可用性指标 ❇ 可扩展性指标 03 高并发的实践方 ...

最新文章

  1. [css] 如何解决html设置height:100%无效的问题?
  2. java实现对大文件切割下载_Java实现大文件的切割与合并操作示例
  3. 怪兽充电宝 共享充电宝源码
  4. python实现装饰器_python装饰器的实现
  5. python语言变量随时命名随时赋值_Python变量及数据类型用法原理汇总
  6. 从闭包到 语法糖 装饰器
  7. 物理课上该怎样使用计算机,物理课堂教学中怎样使用演示课件.doc
  8. matlab图像低通滤波,用于RGB图像的Matlab低通滤波器
  9. mysql拼接字符串的方式_mysql 字符串拼接,你知道几种方式?
  10. 《SQL进阶教程》学习
  11. Python数据可视化Part 5-Matplotlib 3D图片与投影教学-代码详解
  12. php获取判断图片大小,php 获取图片尺寸的方法
  13. 15.Elasticsearch 7.15 Query DSL 之 Wildcard查询、Regexp查询
  14. 【js】不间断空格 特殊的空格-ASCII码值160
  15. SPH算法简介(四):Hello,SPH
  16. 洛谷P1095 守望者的逃离 (从未感觉DP如此清晰, 所以这是DP吗2333)
  17. 3D建模学习?选次世代场景还是次世代角色?
  18. 凹凸中的相与国 ——读《大清相国》
  19. 使用CubeMX生成工程时Debug模式为No Debug与Serial Wire的代码差异
  20. 如何使自己跳得更高?------学习跳蚤效应的五点体会

热门文章

  1. ActionContext和ActionSupport的学习
  2. [笔试题]交换两个数不使用第三方变量 深入理解按位异或运算符
  3. 在Eigrp做不等值路由的负载均衡
  4. Excel分列功能的妙用
  5. Blazor University (7)组件 — 双向绑定
  6. OAuth 2.1 的进化之路
  7. ASP.NET Core 6 Minimal API
  8. ML.NET Cookbook:(5)如何查看中间过程数据?
  9. C# 搭建自己的NuGet服务器,上传自定义NuGet包
  10. . NET5正式版本月来袭,为什么说gRPC大有可为?