1.微服务架构??
定义: 一种软件架构风格,其中应用程序由通过网络进行通信的小型独立服务组成。
优点:可扩展性、灵活性、独立部署、弹性、更好的故障隔离。
挑战:管理复杂性、网络延迟、分布式数据管理以及强大的 DevOps 实践的需求。
2.服务发现?
定义: 微服务架构中动态发现和连接服务的机制。
工具:Eureka(Netflix),Consul(HashiCorp),Zookeeper(Apache)。
模式:客户端发现,服务器端发现。
- API网关?
定义: 客户端请求的入口点,将它们路由到适当的服务。
职责:请求路由、组合和协议翻译。
工具:Kong、NGINX、Zuul(Netflix)。
4.沟通模式?
同步通信: 直接服务到服务通信,通常通过 HTTP/REST 或 gRPC。
异步通信:通过消息系统进行通信,例如RabbitMQ、Kafka或AWS SQS。
模式: 请求-响应、事件驱动、发布-订阅。
5.微服务中的数据管理??
每个服务数据库: 每个服务管理自己的数据库模式,促进数据自治。
挑战: 维护跨服务、分布式事务的数据一致性。
解决方案:最终一致性,Saga模式,CQRS(命令查询职责分离)。
6.断路器模式?
定义: 一种用于检测故障并封装防止故障不断重复发生的逻辑的设计模式。
工具:Hystrix(Netflix),Resilience4j.
用途: 防止级联故障,提高容错能力。
7.服务弹性和容错能力??
技术: 重试逻辑、超时设置、回退方法。
模式:隔板模式、重试模式、超时模式.
工具:Hystrix、Resilience4j.
- API 版本控制?
定义: 在不破坏现有客户端实现的情况下管理 API 中的更改。
技术: URI 版本控制、查询参数版本控制、自定义标头。
策略: 弃用旧版本并保持向后兼容性。
9.监控和记录??
重要性: 对于理解微服务的行为和性能至关重要。
工具:Prometheus、Grafana、ELK Stack(Elasticsearch、Logstash、Kibana)、Zipkin(分布式追踪)
最佳实践:集中式日志记录、分布式跟踪、指标收集。
10。微服务的安全性?
技术: OAuth2、JWT(JSON Web Tokens)用于身份验证和授权。
挑战: 确保服务间通信安全、管理秘密。
工具:Spring Security、Keycloak、Vault(HashiCorp)。
11。容器化和编排?
容器:微服务通常部署在容器中,以实现跨环境的一致性。
工具:Docker、Podman.
编排: Kubernetes,用于自动化容器的部署、扩展和操作。
12。持续集成/持续部署 (CI/CD) ?
重要性: 自动化测试、构建和部署微服务的过程。
工具:Jenkins、GitLab CI、CircleCI.
最佳实践:自动化测试、蓝绿部署、金丝雀发布。
13。事件驱动的微服务?
定义: 通过事件进行通信的微服务,允许松散耦合和可扩展性。
工具:Kafka、RabbitMQ、AWS SNS/SQS.
模式: 事件溯源,CQRS。
14。微服务中的领域驱动设计 (DDD) ?
定义: 一种专注于业务领域建模的软件开发方法。
概念: 有界上下文、聚合、实体、值对象。
用途: 帮助定义微服务架构中的服务边界。
15。测试策略?
测试类型: 单元测试、集成测试、契约测试、端到端测试。
工具:JUnit、TestNG、Postman、WireMock(用于模拟服务)。
最佳实践:自动化、CI/CD 集成、测试替身的使用。
最后的提示
了解基础知识:了解微服务的核心原理。
动手实践: 使用 Docker、Kubernetes 和 Spring Boot 等工具。
保持更新:微服务发展迅速;跟上最新趋势和最佳实践。
祝你面试顺利!
与我联系:
LinkedIn:https://www.linkedin.com/in/nikko-ferwelo-358b11213
GitHub:https://github.com/NullVoidKage
以上就是微服务面试备忘单的详细内容,更多请关注php中文网其它相关文章!
91资源网站长-冰晨2024-08-27 17:15
发表在:【账号直充】爱奇艺黄金VIP会员『1个月』官方直充丨立即到账丨24小时全天秒单!不错不错,价格比官方便宜
91资源网站长-冰晨2024-08-27 16:15
发表在:2022零基础Java入门视频课程不错,学习一下