微服务问题汇总

什么是springboot?
自动化配置,内嵌Tomcat ,可执行的jar包

dubbo与spring cloud的区别?
dubbo是RPC框架,springcloud是微服务一站式解决方案.

为什么要用springcloud?

独立的程序拆分成多个服务,原来一个进程分成多个进程,便于开发部署和维护,每个服务可以有自己的数据库,可以用不同的语言开发,服务之间通过http调用的方式进行调用

why 微服务?

不至于牵一发动全身,开发部署容易,便于维护和迭代开发

why cloud?

技术稳定,社区活跃,学习成本低,一般的问题都有成熟的解决方案

what is cloud?

一站式微服务解决方案,注册发现,网关,熔断,负载均衡,消息总线,链路跟踪等.

cloud vs dubbo?
cloud 微服务解决方案,dubbo 分布式协调服务 RPC框架.

微服务的基础?
springboot ,自动配置,快速开发

微服务架构基础?
远程过程调用:http RESTful风格调用

服务多了怎么办?
Eureka服务治理:服务的注册和发现

what is Eureka?
分布式服务注册中心,CS架构,基于AP设计,可以自我保护,客户端缓存服务列表

Eureka vs Zookeeper?
Eureka 基于Ap设计,好死不如赖活着,服务请求会返回不实信息也不会不返回信息,客户端可以缓存服务,
zookeeper 基于cp设计,访问量小的时候可以使用,如果服务因为网络原因没有响应会被剔除,客户端得不到服务响应,需要leader选举,leader选举可能会失败(大规模宕机)

服务如何调用?
Ribbon, RestTemplate调用,可以负载均衡,客户端维护服务列表通过心跳检测来更新

更简单的调用?
Feign: 声明式调用,通过注解标明服务名称和服务接口即可,内部使用Ribbon可以负载均衡

Ribbon和Feign的区别?
Feign调用更加简单

外部请求如何处理?
Zuul:通过网关进行路由,过滤和权限验证等,本质上就是个web servlet ,其中使用filter来实现,有四种 pre router post error 分别在不同场景下触发以进行不同的处理.filter间通过 context进行通信

如果请求量特别大其中一个服务停用怎么办?
Hystrix: 分布式中一次请求可能需要多个服务共同协作,但是如果一个宕机或请求超时可能会导致线程资源耗尽,导致雪崩的出现.通过线程隔离,断路器,降级等方式来保证系统可用性.降级:为了利益最大化暂时停掉可用的服务;熔断:服务不可用了,为了防止雪崩,暂时停止这个服务.

如果服务不部署到一个Tomcat资源是否不会耗尽?这时需要熔断吗?

微服务中服务那么多,配置起来很不方便?
Config:集中化外部配置中心,CS架构. 要素:远程git仓库,本地仓库,服务A 服务B;原理:启动应用根据配置从配置中心获取配置,配置中心根据维护的git仓库信息和client传来的定位信息去找配置信息,克隆岛server本地,创建ApplicationContext实例加载配置传给客户端,客户端获取后加载即可.

一个服务有多份的时候配置很不方便,需要每个都传输给服务?
Bus:轻量级消息系统,配置中心只要把消息给Bus其他服务即可自动读取,有rabbitmq和kafka两种方式

有错怎么办?
Sleuth:全链路跟踪,可以日志分析,抽样收集,traceid spanid来实现. ZipKin 日志要比ELK好一些.ELK缺少对时间延迟的关注,性能分析问题需要使用ZIPkin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值