关闭

如何实施异构服务器的负载均衡及过载保护?

后端的service有可能部署在硬件条件不同的服务器上: 1)如果对标最低配的服务器“均匀”分摊负载,高配的服务器的利用率不足; 2)如果对标最高配的服务器“均匀”分摊负载,低配的服务器可能会扛不住; 能否根据异构服务器的处理能力来动态、自适应进行负载均衡及过载保护,是本文要讨论的问题。   一、service层的负载均衡通常是怎么做的 “一分钟了解负载均衡...
阅读(50) 评论(0)

lvs为何不能完全替代DNS轮询

上一篇文章“一分钟了解负载均衡的一切”引起了不少同学的关注,评论中大家争论的比较多的一个技术点是接入层负载均衡技术,部分同学持这样的观点: 1)nginx前端加入lvs和keepalived可以替代“DNS轮询” 2)F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询” “DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接入层架构技术演进,是本文将要细致讨...
阅读(83) 评论(0)

一分钟了解负载均衡的一切

什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。   常见的负载均衡方案 常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游...
阅读(174) 评论(0)

一分钟了解四层/七层反向代理

什么是四层反向代理hash 什么是七层反向代理hash 中间还有三层那里去了 ... 今天花几分钟简单和大家解释一下。 场景:访问用户通过proxy请求被访问的真实服务器 路径:用户 -> proxy -> real-server 什么是代理? 回答:[proxy]代表[访问用户],此时proxy是...
阅读(122) 评论(0)

究竟啥才是互联网架构“高并发”

一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。 响应时间:系统对请...
阅读(120) 评论(0)

究竟啥才是互联网架构“高可用”

一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。 很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系...
阅读(95) 评论(0)

58到家MQ如何快速实现流量削峰填谷

问:站点与服务,服务与服务上下游之间,一般如何通讯? 答:有两种常见的方式 一种是“直接调用”,通过RPC框架,上游直接调用下游。   在某些业务场景之下(具体哪些业务场景,见《到底什么时候该使用MQ?》),可以采用“MQ推送”,上游将消息发给MQ,MQ将消息推送给下游。   问:为什么会有流量冲击? 答:不管采用“直接调用”还是“...
阅读(94) 评论(0)

消息总线能否实现消息必达?

一、缘起 任务、延迟消息都放在内存里,万一重启了怎么办? 能否保证消息必达?   今天就简单聊聊消息队列(MsgQueue)的消息必达性架构与流程。   二、架构方向 MQ要想尽量消息必达,架构上有两个核心设计点: (1)消息落地 (2)消息超时、重传、确认   三、MQ核心架构 上图是一个MQ的核心架构图,基本可...
阅读(75) 评论(0)

消息总线真的能保证幂等

一、缘起 如《消息总线消息必达》所述,MQ消息必达,架构上有两个核心设计点: (1)消息落地 (2)消息超时、重传、确认   再次回顾消息总线核心架构,它由发送端、服务端、固化存储、接收端四大部分组成。 为保证消息的可达性,超时、重传、确认机制可能导致消息总线、或者业务方收到重复的消息,从而对业务产生影响。   举个栗子: ...
阅读(36) 评论(0)

1分钟实现“延迟消息”功能

一、缘起 很多时候,业务有“在一段时间之后,完成一个工作任务”的需求。   例如:滴滴打车订单完成后,如果用户一直不评价,48小时后会将自动评价为5星。 一般来说怎么实现这类“48小时后自动评价为5星”需求呢?   常见方案:启动一个cron定时任务,每小时跑一次,将完成时间超过48小时的订单取出,置为5星,并把评价状态置为已评价。 假设订单表...
阅读(26) 评论(0)

10w定时任务,如何高效触发超时

一、缘起 很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。   例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消息,keepalive包),服务端就要将这个用户的状态置为离线”。   ...
阅读(40) 评论(0)

到底什么时候该使用MQ

一、缘起 一切脱离业务的架构设计与新技术引入都是耍流氓。   引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。 就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问题(详见《互联网架构为什么要做微服务?》)。   最近分享了几篇MQ相关的文章: 《MQ如何实现延时消息》 《MQ如何实现消息必达》 ...
阅读(21) 评论(0)

一分钟了解索引技巧

花1分钟时间,了解聚集索引,非聚集索引,联合索引,索引覆盖。   举例,业务场景,用户表,表结构为: t_user( uid primary key, login_name unique, passwd, login_time, age, … );   聚集索引(clustered index):聚集索引决定数据在磁盘上的...
阅读(88) 评论(0)

多key业务,数据库水平切分架构一次搞定

数据库水平切分是一个很有意思的话题,不同业务类型,数据库水平切分的方法不同。 本篇将以“订单中心”为例,介绍“多key”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。   一、什么是“多key”类业务 所谓的“多key”,是指一条元数据中,有多个属性上存在前台在线查询需求。   订单中心业务分析 订单中心是一个...
阅读(67) 评论(0)

多对多业务,数据库水平切分架构一次搞定

本文将以“好友中心”为例,介绍“多对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。   一、什么是多对多关系 所谓的“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的关联关系,一个学生可以选修多个课程,一个课程可以被多个学生选修,这里学生与课程时间的关系,就是多对多关系。   二、好友中心业务分析 好友...
阅读(59) 评论(0)
34条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:18284次
    • 积分:1077
    • 等级:
    • 排名:千里之外
    • 原创:92篇
    • 转载:10篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论