微服务介绍以及微服务架构

1. 单体架构-Monolithic Architecture

对于非专业人士来说,所谓的单体架构,其就像一个超大容器,容器内集中包含了该应用的所有软件组件,并且组件与组件之间紧密耦合。

总结:

  • **臃肿僵化不灵活:**单体架构很难采用多种技术
  • **可靠性较差:**这种架构最明显的特征就是牵一发而动全身,一个小小的功能失效可能会导致系统的不可用
  • **扩展性较差:**应用本身无法轻易的进行扩展,一旦需要进行对某个或者某些功能进行扩展或者更新,我们需要重新构建整个系统
  • **阻碍连续性的开发:**应用的许多功能特性无法被同时构建和部署
  • **开发速度慢:**单体应用的开发耗时较长,因为我们需要依次构建相应的功能模块
  • **不适用于复杂的应用:**复杂应用的各个功能特性紧耦合
2. 何为微服务?

微服务,又称微服务架构,这种架构聚焦业务领域,将应用通过一个个小而自治的服务组织起来。在微服务架构中,每一个服务都是自包含的且唯一实现某个单一业务功能。

2.1 微服务与传统单体架构的区别

为了便于理解,我们这里以我们常见的电子商务应用为示例说明,很明显,传统的单体架构下,所有服务共享一个应用实例并且共享同一个后台数据库,而微服务架构下则应用本身业务功能划分为不同的微小服务,每个服务都自行处理各自业务数据,处理不同的业务功能。

2.2 微服务架构

img

  • 设备不同,各客户端所使用的的服务也不尽相同,比如:检索、构建、配置抑或其他管理功能
  • 基于各自业务领域的不同,每个服务都相对独立,而且会根据实际被进一步细化为更小力度的服务
  • 每个服务都有各自的负载均衡和运行环境,并且各自拥有相对独立的数据源
  • 服务间的通信通常采用无状态通信协议 ,比如:REST或者消息总线
  • 借助服务发现机制,服务消费方与提供方可以彼此无忧通信,并可进行一些自动化及监控操作
  • 服务与客户端的交互都是通过服务网关进行的
  • 所有内部连通节点均与服务网关相连,即一旦你连接到服务网关,你即可访问网关后的所有服务端口
2.3 微服务的主要特征

在这里插入图片描述

  1. 解耦
  2. 组件化
  3. 业务功能化
  4. 自治
  5. 持续集成
  6. 单一责任
  7. 去中心化
  8. 敏捷
2.4 微服务架构的优势
  • 独立部署开发
  • 独立开发
  • 故障隔离
  • 混合技术栈
  • 细粒度级扩展,即单个组件可以自由横向扩展
3. SpringCloud
3.1为什么要学习SpringCloud

不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用.但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复杂.这就会给应用带来如下的几个问题:

  • 代码结构混乱:业务复杂,导致代码量很大,管理越来越困难.同时,这也会给业务的快速迭代带来巨大挑战;
  • 开发效率变低:开发人员同时开发一套代码,很难避免代码冲突.开发过程中会伴随着不断解决冲突的过程,这会严重的影响开发效率;
  • 排查解决问题成本高:线上业务出现bug,修复bug的过程可能很简单.但是,又只有一套代码,需要重新编译,打包,上线,成本很高.

由于单体结构的应用随着系统复杂度的增高,会暴露出各种各样的问题.近些年来,微服务架构逐渐取代了单体架构,且这种趋势将会越来越流行.spring cloud是目前最常用的微服务开发框架,已经在企业级开发中大量的应用.

3.2 SpringCloud技术栈
  1. 服务网关:ZUUL,zuul2,gateway(主流)
  2. 服务注册与发现:Eureka(停更),Nacos(主流)
  3. 服务调用:Ribbon(停更),LoadBalancer
  4. 服务负载与调用:Feign,OpenFeign
  5. 服务熔断降级:Hystrix,resilience4j,sentienl
  6. 服务分布式配置:Spring Cloud Config,Nacos
  7. 服务开发:Spring Boot
  8. 服务总线:Bus,Nacos
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值