微服务项目常用术语

术语科普

开始讲SpringCloud Alibaba之前先科普一下项目常用术语,方便后续内容讲解

服务器:分软件与硬件,软件:类型tomcat这种跑项目的程序, 硬件:用来部署项目的电脑(一般性能比个人电脑好)

服务:操作系统上术语:一个程序,开发中术语:一个能对外提供功能的程序

微服务:小的服务,一个完整项目可以拆n个子项目,这些子项目能独立运行,独立对为提供功能。

节点:微观上:一个服务,宏观上:一台服务器

垂直扩展:垂直扩展是指增强单机硬件性能

水平扩展:通过增加更多的服务器或者程序实例来分散负载,从而提升存储能力和计算能力。

容错率:允许服务器集群(一堆服务器)错误(异常/故障)出现的范围和概率,

高内聚低耦合:内聚-->讲究程序功能独立 耦合--->讲究程序间交互,

以java为例子:高内聚低耦合:讲究类设计时尽快简单(边界清晰/功能简单),类与类间交互尽可能少(减少类间的相互调用)

流量:有很多种说,开发中说的是访问量(请求次数)

服务间依赖:项目与项目间的调用,程序与程序间的调用

资源调度:各种资源进行合理有效的调节和测量及分析和使用,开发中资源:服务器,内存,CPU,IO等项目运行需要各种软硬件。

单点:唯一,开发中的单点:唯一一个mysql数据库,唯一个服务器

单点故障:如果项目/程序部署唯一一个服务器,它挂了,那就玩完了

宕机:服务器挂了

项目结构术语

需求:假设一种场景,项目部署上线,需要需要MySQL,Redis环境,此时该怎么保证项目平稳运行。

方案1:单体

如果项目业务体量小,可以将所有业务放置在一个项目中实现,部署时将项目,与相关MySQL,Redis 环境一种安装在一台服务器中,此为单体结构。

优点:开发简单,部署简单

缺点:单机性能有限,只适合简单项目,可用性不高

优化方向:拆分

方案2-分布式

单台服务器处理能力有限,既要运行项目,又要支持MySQL,Redis环境,资源有点捉襟见肘,此时可以实现分布式部署,俗称分家。

将MySQL、Redis、项目分开部署,项目通过远程的方式连接MySQL跟Redis

优点:提高项目处理能力,扩大业务容量

缺点:维护成本增加,可用性不高

优化方向:人多力量大

方案3-集群

上面的单体,分布式都存在一个问题,可用性不高,比如:当Tomcat/MySQL/Redis 3个宕机时,都会造成项目不可用,这就是经典的单点故障问题。此时需要引入集群概念了。

所谓集群简单的讲就是备份,将Tomcat/MySQL/Redis复制几份,然后让它们同时运行,同时提供相同的服务,这样项目处理能力可以提高好几倍。

上图,项目,MySQL,Redis都做了集群了,当一个损坏了,另外一个可以接上,项目的可用性自然就上去了。 但是这也存在一个问题,客户端怎么知道访问哪个服务器(项目),项目怎么知道要访问哪个Redis,哪个MySQL?这时就引入调度者的概念。

客户端访问服务器的调度者:Nginx负载均衡服务器

项目调用MySQL的调度者:MyCat/Sharding-JDBC

项目调度Redis的调度这:Redis Cluster集群服务器
 

优点:提高项目处理能力,扩大业务容量

缺点:维护成本倍增,各个节点访问都需要注意网络延时

优化方向:网络优化

到这就够了,再往后就是网络概念啦,本节科普到这。

看文字不过瘾可以切换视频版:SpringCloud Alibaba 极简入门

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪飞yes

我对钱没兴趣~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值