SpringCloud:浅谈分布式系统微服务架构

前言:

  srping‘Cloud无可置疑他是基于springboot的,通俗的说就是每个speingboot代表一个微服务,springCloud就是用来管理他们的,所以说学习spring cloud本质上学的是组件(中间件),目的是通过相关指定的中间件管理微服务,一般中间件所要解决的问题是,微服务之间的通信,服务的治理,客户端的访问,和开发人员的维护。

 参考网址:

  SpringCloud中文网:https://www.springcloud.cc

  SpringCloud中国社区:http://www.springcloud.cn

  

 

1,我对微服务架构的理解

  微服务架构是一种思想,本质是将项目的各功能模块拆分成可以独立运行的小项目,各项目之间依然有联系(通过相关分布式组件),项目与项目之间通过联系又形成一个完整的项目,目的是充分利用和节省了计算机资源,让每个小项目(微服务)只干自己的事

 

2.为什么选择SpringCloud作为微服务架构

  整体的解决方案齐全,成熟度高(稳定)

  生态好,社区热度高

  可维护性强

 

3.当前各大IT公司用的微服务架构

  阿里:dubbo+HFS

  京东:JSF

  新浪:Motan

  当当:DubboX

 

4.分布式架构/微服务架构会遇到的四个核心问题

  1.这么多服务,客户端如何去访问? 

  一般会一个代理或者叫API Gateway,他的作用包括

  • 提供统一服务入口,让微服务对前台透明
  • 聚合后台的服务,节省流量,提升性能
  • 提供安全,过滤,流控等API管理功能

  2.服务之间如何通信?

  • 同步调用
    • REST(JAX-RS)
    • RPC(Dubbo)
  • 异步消息调用(Kafka, Notify, MetaQ),所谓的消息队列mq

  3.微服务该如何治理?

  注册中心(zookeeper):注册与发现

  4,服务挂了怎么办?

  首先为了避免各服务分配的服务器资源不合理情况?负载均衡

  比如微服务a的使用率要远远小于微服务b,那么就应该自动的给a少分些服务器资源,给b多份一些,而这个过程就叫做负载均衡,其中使用比较广泛的就是dubbo框架

  熔断机制

  微服务有时会因为依赖关系复杂,或者服务拆分不够规范产生雪崩效应,而熔断机制就是其中的解决方案之一

  降级(本地缓存)

  限流

  

5.微服务完整架构图

 

6.微服务相关技术栈

 

 

  

 

7.常见面试题:

 

 

 

 

 

posted @ 2021-01-20 20:09  凸然猿  阅读(370)  评论(0编辑  收藏  举报