SpringCloud学习笔记——持续更新中
程序员文章站
2022-06-19 10:06:53
SpringCloud学习笔记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 什么是微服务?服务的目的是有效的拆...
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官方
本文地址:https://blog.csdn.net/qq_33572703/article/details/107584450
上一篇: 容器技术在企业落地的最佳实践
下一篇: Dubbo集群容错源码剖析