SpringCloud学习笔记——持续更新中

SpringCloud学习笔记——持续更新中_第1张图片
SpringCloud学习笔记——持续更新中_第2张图片

1.常见面试题

1.1 什么是微服务?

1.2 微服务之间如何通信?

1.3 SpringCloud和Dubbo有哪些区别?

1.4 SpringCloud和SpringBoot,谈谈你对他们的见解

1.5 什么是服务熔断,什么是服务降级?

1.6 微服务的优缺点是什么?说说你在项目开发中遇到的坑?

1.7 你所知道的微服务技术栈有哪些?

1.8 eureka和zookeeper都可以提供服务注册和发现功能,说说两者区别

1.1 什么是微服务?

​ 服务的目的是有效的拆分应用,实现敏捷开发和部署。它有四个特点:

  • 小 服务体积小,比如亚马逊的"2 pizza 团队"
  • 独:服务能够独立部署和运行
  • 轻:服务之间采用轻量级通信机制(Http/RPC)
  • 松:服务之间是松耦合的

​ 我们再来了解什么是微服务架构。

​ 微服务架构是一种架构模式,它提倡将all in one的单一程序划分为一组小型服务,每个服务运行在单独的进程内,服务之间相互协调通信,最终为用户提供完整的服务。服务之间采取轻量级通信机制进行沟通,能够被独立部署到生产环境中,并使用一个轻量级的集中式管理来协调这些业务

1.2 微服务的设计原则

  • 单一职责
  • 服务自治
  • 轻量通信
    • 跨平台,跨语言
  • 接口明确
    • 规范服务之间的接口调用

1.2.1 微服务的优缺点

  • 优点
    • 耦合性低,易于单个模块开发和维护
    • 启动较快
    • 局部易修改(相比重启整个项目)
    • 服务之间不受限
      • 跨技术、跨语言、跨平台
    • 按需伸缩
    • 每个微服务有自己的存储能力,可以有自己的数据库
  • 缺点
    • 整体维护要求较高
    • 分布式架构基于复杂性
    • 接口调整成本高

1.4 SpringCloud和SpringBoot的关系

  • SpringBoot专注于开发快速方便的单体微服务
  • SpringCloud则关注全局的微服务协调治理,来为微服务之间提供:配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务。

1.7 微服务技术栈

微服务条目 落地技术
服务开发 Spring,SpringBoot,SpringMVC
服务配置与管理 Netflix–Archaius、阿里的Diamond等
服务注册与发现 Eureka, Consule, Zookeeper等
服务调用 Rest,RPC,gRPC
服务熔断 Hystrix,Envoy等
负载均衡 Nginx,Ribbon等
服务接口调用(客户端调用服务的工具) Feign
消息队列 Kafka, RabbitMQ,ActiveMQ,RocketMQ等
服务配置中心管理 SpringCloudConfig,Chef等
API网关(服务路由) Zuul等
服务监控 Zabbix, Nagios, Metrics, Specatator等
全链路追踪 Zipkin,Brave,Kubernetes
服务部署 Docker,OpenStack等
数据流操作开发包 SpringCloudStream(封装与Redis,Kafka等发送接收消息)
事件消息总线 SpringCloudBus

2. SpringCloud入门

2.1 Why SpringCloud

选型依据

  • 整体式解决方案,成熟的框架
  • 高热度社区
  • 可维护性强

大公司的微服务架构

  • 阿里:dubbo + HFS
  • 京东:JSF
  • 新浪:Motan
  • 当当网:DubboX

框架对比

功能 Dubbo SpringCloud+Netflix
服务注册中心 Zookeeper Eureka
服务调用方式 RPC Rest API
服务监控 Dubbo-monitor SpringBoot Admin
断路器 不完善 Netflix Hystrix
服务网关 Netflix Zuul
分布式配置 SpringCloud Config
服务跟踪 SpringCloud Sleuth
消息总线 SpringCloud Bus
数据流 SpringCloud Stream
批量任务 SpringClode Task

2.2 SpringCloud官方

SpringCloud官方

SpringCloud Netflix

SpringCloud中文API文档

SpringCloud中文社区

SpringCloud技术栈

你可能感兴趣的:(SpringCloud)