微服务架构的核心问题?
1.服务这么多,客户端该怎么访问?
2.这么多服务,客户端如何通信?
3.这么多服务,如何治理?
4.服务挂了怎么办?

解决方案:
SpringCloud 不是技术 是个生态

1.Spring Cloud NetFlix一站式解决方案

  • api网关,zuul组件
  • Feign — HttpClient—Http通信方式,同步,阻塞
  • 服务注册发现:Eureka
  • 熔断机制:Hystrix

2.Apache Dubbo zookeeper半自动,需要整合别人

  • API:没有,找第三方组件,或者自己实现
  • Dubbo
  • Zookeeper
  • 没有,借助Hystrix
    Dubbo这个方案并不完善

3.Spring Cloud Alibaba一站式解决方案,更简单

4.新概念:服务网格~ server Mesh

  • istio

万变不离其宗:
1.Api 路由问题
2.Http,RPC 通信问题
3.注册与发现 高可用问题
4.熔断机制 服务降级问题

常见面试题:
1.什么是微服务
是一种架构模式或者架构风格,提倡将单一的应用程序划分成组小的服务,彻底解耦,每个微服务提供单个业务功能,类似于进程的概念,能单独启动,拥有自己独立的数据库

2.微服务之间是如何独立通信的

3.Spring Cloud和Dubbo的区别

Spring Cloud NetFlix一站式解决方案

  • api网关,zuul组件
  • Feign — HttpClient—Http通信方式,同步,阻塞
  • 服务注册发现:Eureka
  • 熔断机制:Hystrix

Apache Dubbo zookeeper半自动,需要整合别人

  • API:没有,找第三方组件,或者自己实现

  • Dubbo

  • Zookeeper

  • 没有,借助Hystrix
    Dubbo这个方案并不完善
    SpringCloud(一)学习中陆续补充
    最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用基于HTTP的REST方式
    4.SpringBoot和SpringCloud谈谈对他们的理解

  • Springboot专注于快速开发单个个体微服务–jar包

  • SpringCloud是关注全局的微服务协调整理治理框架,将Springboot开发的单个微服务整合起来,为各个微服务之间提供:服务注册发现、路由微代理、分布式会话等集成服务

  • Springboot可以离开SpringCloud独立使用开发项目但Spring Cloud离不来Springboot,有依赖关系

  • Springboot专注于快速、方便的开发单个个体微服务,SpringCloud关注全局服务治理框架

5.什么是服务熔断?什么是服务降级
6.微服务的优缺点分别是什么?项目中遇到的坑

  • 优点
    • 每个服务足够内聚,足够小
    • 开发简单,效率高
    • 松耦合,无论开发阶段还是部署阶段都独立
    • 微服务知识业务逻辑的代码,不会有Css、html 和其他界面混合
    • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库
  • 缺点
    • 服务间通信成本增加
    • 数据的一致性问题
    • 运维压力增加
    • 开发人员还要处理分布式系统的复杂性

7.微服务技术栈有哪些?

微服务条目 落地技术
服务开发 SpringBoot、Spring、SpringMVC
服务配置与管理 NetFlix公司的Archaius、阿里的Diamond
服务注册与发现 Eureka、Consul、Zookeeper
服务调用 Rest、RPC、gRPC
服务熔断器 Hystrix、Envoy
负载均衡 Ribbon、Nginx
服务接口调用 Feign
消息队列 Kafka、RabbitMQ、ActiveMQ
服务配置中心管理 SpringCloudConfig、Chef
服务路由(API网关) Zuul
服务监控 Zabbix、Nagios、Metrics、Specatator
全链路追踪 Zipkin、Brave、Dapper
服务部署 Docker、OpenStack、Kubernetes
数据流操作开发包) SpringCloud Stream(封装与redis、rabbit、kafka等发送接收消息)
事件消息总栈 SpringCloud Bus

8.eureka和zookeeper都可以提供服务注册与发现的功能,请说出两个的区别

简单网站内部架构图,请问技术都会了吗,会了没用,原理懂了吗?面试能通过否?作为程序媛的我冲鸭~~~~~~~SpringCloud(一)学习中陆续补充

相关文章: