面试题,程序员面试题,Java面试题,服务注册和发现,Eureka,Zookeeper,负载均衡,Nginx,Ribbon,通讯,REST同步,RPC同步,MQ异步,配置管理,Nacos,Spring Cloud Config,Apollo,容错,服务降级,Hystrix,服务依赖关系,服务文档,Swagger,Java doc,服务安全,Oauth,Shiro,Spring Security,流量控制,自动化测试,junit,服务上线,服务下线,服务编排,资源调度,容量规划,Docker,K8s,JVM隔离,Classload隔离,硬件隔离

服务的注册和发现

解决问题:集中管理服务

解决方法:

  • Eureka
  • Zookeeper

负载均衡

解决问题:降低服务器硬件压力

解决方法:

  • Nginx
  • Ribbon

通讯

解决问题:各个服务之间的沟通桥梁

解决方法:

  • REST(同步)
  • RPC(同步)
  • MQ(异步)

配置管理

解决问题:随着服务的增加配置也在增加,如何管理各个服务的配置。

解决方法:

  • Nacos
  • Spring Cloud Config
  • Apollo

容错和服务降级

解决问题:在微服务当中,一个请求经常会涉及到调用几个服务,如果其中某个服务不可以,没有做服务容错的话,极有可能会造成一连串的服务不可用,这就是雪崩效应。

解决方法:

  • Hystrix

服务依赖关系

解决问题:多个服务之间来回依赖,启动关系的不明确。

解决方法:应用分层。

服务文档

解决问题:降低沟通成本

解决方法:

  • Swagger
  • Java doc

服务安全问题

解决问题:敏感数据的安全性

解决方法:

  • Oauth
  • Shiro
  • Spring Security

流量控制

解决问题:避免一个服务上的流量过大拖垮整个服务体系

解决方法:

  • Hystrix

自动化测试

解决问题:提前预知异常,确定服务是否可用

解决方法:

  • junit

服务上线,下线的流程

解决问题:避免服务随意的上线下线

解决方法:新服务上线需要经过管理人员审核,服务下线需要告知各个调用方进行修改,直到没有调用该服务才可以进行下线。

兼容性

解决问题:服务开发持续进行如何做到兼容。

解决方法:通过版本号的形式进行管理,修改完成进行回归测试。

服务编排

解决问题:解决服务依赖问题的一种方式

解决方法:

  • Docker
  • K8s

资源调度

解决问题:每个服务的资源占用量不同,如何分配

解决方法:

  • JVM 隔离
  • Classload 隔离
  • 硬件隔离

容量规划

解决问题:随着时间增长,调用逐步增加,什么时候追加机器。

解决方法:统计每日调用量和响应时间,根据机器情况设置阈值,超过阈值就可以追加机器。

标签: Java面试题, 面试题, 程序员面试题, Docker, zookeeper, Eureka, Hystrix, Nginx, 服务降级, 服务注册和发现, 负载均衡, Ribbon, 通讯, REST同步, RPC同步, MQ异步, 配置管理, Nacos, Spring Cloud Config, Apollo, 容错, 服务依赖关系, 服务文档, Swagger, Java doc, 服务安全, Oauth, Shiro, Spring Security, 流量控制, 自动化测试, junit, 服务上线, 服务下线, 服务编排, 资源调度, 容量规划, K8s, JVM隔离, Classload隔离, 硬件隔离

添加新评论