微服务架构-SpringCloud

1.单体应用架构

将项目所有模块(功能)打成jar或者war,然后部署一个进程。

优点:

  1. 部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可。
  2. 技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。

缺点:

  1. 系统启动慢,一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长。
  2. 系统错误隔离性差、可用性差,任何一个模块的错误均可能造成整个系统的宕机。
  3. 可伸缩性差:系统的扩容只能只对这个应用进行扩容,无法结合业务模块的特点进行伸缩。
  4. 线上问题修复周期长:任何一个线上问题修复需要对整个应用系统进行全面升级。
  5. 跨语言程度差。
  6. 不利于安全管理,所有开发人员都拥有全量代码。

2. 微服务应用

微服务架构论文:Microservices

 简单来说,微服务架构风格[1]是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

 解读微服务特点:

  1. 微服务是一种项目架构思想(风格)
  2. 微服务架构是一系列小服务的组合(组件化与多服务)
  3. 任何一个微服务,都是一个独立的进程(独立开发、独立维护、独立部署)
  4. 轻量级通信http协议(跨语言,跨平台) [接口编写]
  5. 服务粒度(围绕业务功能拆分
  6. 去中心化管理

3. 微服务架构的优势

1.易于开发和维护 一个微服务只关注一个特定的业务功能,所以它的业务清晰、代码量较少。开发和维护单个微服务相对比较简单,整个应用是由若干个微服务构建而成,所以整个应用也会维持在可控状态;

部署麻烦----开发人员---容器化部署[docker]

⒉.单个微服务启动较快 单个微服务代码量较少,所以启动会比较快;

3.局部修改容易部署 单体应用只要有修改,就要重新部署整个应用,微服务解决了这样的问题。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可;

4.技术栈不受限 在微服务中,我们可以结合项目业务及团队的特点,合理地选择技术栈;

5.按需伸缩

购物车→ 购物车这个系统集群搭建。

4. 微服务架构的缺点(挑战)

  • 这么多小服务,如何管理他们?==> nacos
  • 这么多小服务,他们之间如何通讯? ==> openfeign
  • 这么多小服务,客户端怎么访问他们?==> gateway
  • 这么多小服务,一旦出现问题了,应该如何自处理?
  • 这么多小服务,一旦出现问题了,应该如何排错?

相应的组件可以解决上面的相应的挑战。把这些组件和在一起称为springcloud。

5. SpringCloud与微服务关系

  • Springcloud为微服务思想提供了完美的解决方案
  • Springcloud是一些列框架的集合体(服务的注册与发现【注册中心】、服务间远程调用、服务降级、服务熔断、服务限流、分布式事务等)
  • SpringCloud就是一系列框架的集合,为了解决微服务的挑战。

springcloud有两个版本:springcloud netflix(停止更新)和springcloud alibaba。

6. SpringBoot和SpringCloud关系

  • SpringBoot专注于快速方便的开发单个个体微服务。
  • SpringCloud是关注全局的微服务协调、整理、治理的框架,它将SpringBoot开发的单体整合并管理起来。
  • SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值