三高系统架构演变

4 篇文章 0 订阅
2 篇文章 0 订阅

一、什么是三高系统

高并发、高可用、高性能

二、三高系统演变历史

a、单节点maven聚合项目

在项目创建之初,赶进度、抢时间、为了尽快做出可用产品,往往选择最为简单的单节点maven聚合项目。
有点:开发周期短、运维部署方便、可快速提供可用产品,成本低
缺点:单点故障、难以承受较大流量

b、集群环境maven聚合项目

优点:可用性提高
缺点:无论哪个模块修改,整个项目都要重新发布

ECS:ECS是云服务器, 本质就是一个服务器。运行在云上的一个服务器。主要作用是做运算的,跑各种程序的。

RDS:RDS是云数据库,专业的SQL服务器。用得到MYSQL的非常推荐使用,可以规避ECS装MYSQL遇到的各种问题。

OSS:OSS是对象存储,专业的文件存储服务,推荐文件量大的场景使用,普通小站可用可不用。(不过阿里云现在有5G免费资源。可以用来代替CDN使用,省钱。)

SLB:SLB是负载均衡,均衡负载 价格高,不适合中小站。

c、微服务项目

随着业务量增加,原有项目缺点愈发明细,一个模块改动,这个项目需要重新发布。所以要做服务拆分,减少服务间耦合性
优点:各业务模块互相独立,方便开发
缺点:增加了服务间调用成本、服务拆分后不方便管理
在这里插入图片描述

1、如何找到服务间调用的地址
答:采用注册中心,服务启动时将其注册到注册中心服务器上。其他服务想要调用时,到注册服务器上查询。
2、如何发起服务间调用
答:RPC
3、如何实现负载均衡和高可用
答:需要实现服务选择算法和服务集群

1、微服务间调用过程:
a、微服务1想调用微服务2
b、服务1调用注册服务器接口获取到所有服务2的列表
c、通过算法选取一个服务2的通讯方式
d、通过指定的RPC协议来调用服务1的通讯方式
2、内部服务可以这样调用,外部服务如何调用?
答:外部服务无法知道注册服务,无法获取注册服务列表实现自己的调用算法。所以我们需要一个服务提供给外部服务调用,使用此服务作为统一且唯一的服务调用入口。
在这里插入图片描述

我们知道服务调用会产生一条链路:A(订单中心)----->B(支付中心)----->C(物流服务),假如有一天,整个服务调用链路特别慢,甚至部分调用会超时,此时如何定位排查问题?,如何避免再发生此类问题?
在这里插入图片描述

服务之间不相互影响,不让用户长时间等待无响应,防止引起雪崩。此时我们引入超时机制,即服务的熔断 降级
在这里插入图片描述

面试题:
1、dubbo和spring cloud有什么区别?
阶段一、dubbo最早提供了支持RPC调用的商业化框架,期间近一年无更新。
阶段二、spring cloud开源,支持了几乎所有dubbo的功能,制定了规范
阶段三、dubbo地位降低,为了抢占地盘推出spring alibaba
dubbo采用二进制,占用带宽小,开发难度较大;
spring cloud采用http,(s)----->json,带宽大,开发简单

d、云原生分布式微服务项目

ci/cd:持续化集成、持续化部署

Dev Ops
在这里插入图片描述

三、三高系统架构图

在这里插入图片描述

注:以上内容均学习子马士兵教育黄老师,自己动手整理。如有雷同,纯属师出同门。

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值