SpringCloud笔记一:扫盲

前言

这篇文章作为我学习SpringCloud的第一课,先来扫盲,再来讲解技术

注意:本扫盲贴的内容,我写的都要背熟,要很熟悉的说出来,不要看了就忘。

什么是微服务?

微服务提倡将单一应用拆分成一组小服务,每个服务在自己独立的进程中运行。

这就是微服务,例如淘宝,商品,订单,付款等等,如果都做在一起,那么一个模块有问题,势必会影响其他的模块,而且耦合度也高,现在使用微服务技术,把淘宝拆分成商品系统,订单系统,付款系统等等,这样一个偌大的淘宝就拆分成了一组小服务,耦合度大大降低。

微服务的优缺点是什么?

微服务的优点:

  1. 每个服务足够小,聚焦于一个业务功能或需求
  2. 代码开发简单,效率高,一个服务只专注于一个功能模块
  3. 微服务可以小团队开发,2~5人的小团队
  4. 松耦合,每个小服务都有意义,无论是开发阶段还是部署阶段
  5. 微服务可以使用不同的语言开发
  6. 易于和第三方服务集成,比如Jenkins,Hudson,Bambook
  7. 微服务易于被一个开发人员理解,修改,维护,小团队只需要专注于自己的工作
  8. 微服务允许你使用融合最新技术
  9. 微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面组件混合
  10. 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库

微服务的缺点:

  1. 开发人员要处理分布式系统的复杂性
  2. 微服务数量多,运维难度增加
  3. 系统部署依赖
  4. 各个微服务之间通信的成本增加
  5. 数据的一致性问题
  6. 系统集成测试
  7. 性能监控

微服务之间是如何通讯的?

SpringCloud和Dubbo有哪些区别?

这个区别只有自己使用过两种服务之后才能真正明白。

我目前所知,SpringCloud很强,而且更新的很快。Dubbo是阿里的,断更了5年,现在虽然重启了更新,但还是更新的慢,所以我打算先学SpringCloud,Dubbo等等再说。

给个表格参考一下

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

SpringCloud和SpringBoot的关系?

  1. SpringBoot是微观的,只关注于一个服务的实现。而SpringCloud不同,SpringCloud是分布式微服务的一站式解决方案,它关注的是宏观的。
  2. SpringBoot不依赖于SpringCloud,而SpringCloud依赖于SpringBoot。我举个栗子,SpringBoot就是医院的科室,可以是耳喉鼻科,可以是心脏科,可以是骨科。而SpringCloud就是医院。科室可以不依赖医院,就是小诊所。而医院不能没有科室。这就是二者的关系。

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

微服务的技术栈有哪些?

微服务条目 技术
服务开发 SpringBoot,Spring,SpringMVC
服务配置与管理 Archaius,Diamond
服务注册与发现 Eureka,Consul,Zookeeper
服务调用 Rest,RPC,gRPC
服务熔断器 Hystrix,Envoy
负载均衡 Ribbon,Nginx
服务接口调用 Feign
消息队列 Kafka,RabbitMQ,ActiveMQ
服务配置中心管理 SpringCloudConfig,Chef
服务路由(API网关) Zuul
服务监控 Zabbix,Nagios,Metrice,Spectator
全链路追踪 Zipkin,Brave,Dapper
服务部署 Docker,OpenStack,Kubernetes
数据流操作开发包 SpringCloud Stream
时间消息总线 SpringCloud Bus

eureka和zookeeper都可以提供服务注册和发现的功能,区别是什么?

猜你喜欢

转载自www.cnblogs.com/yunquan/p/10658704.html