JAVA面试——微服务(一)

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
云原生网关 MSE Higress,422元/月
简介: JAVA面试——微服务

7.1.1. 服务注册发现

服务注册就是维护一个登记簿,它管理系统内所有的服务地址。当新的服务启动后,它会向登记

簿交待自己的地址信息。服务的依赖方直接向登记簿要 Service Provider 地址就行了。当下用于服

务注册的工具非常多 ZooKeeper,Consul,Etcd, 还有 Netflix 家的 eureka 等。服务注册有两种

形式:客户端注册和第三方注册。

7.1.1.1.

客户端注册(zookeeper

客户端注册是服务自身要负责注册与注销的工作。当服务启动后向注册中心注册自身,当服务下

线时注销自己。期间还需要和注册中心保持心跳。心跳不一定要客户端来做,也可以由注册中心

负责(这个过程叫探活)。这种方式的缺点是注册工作与服务耦合在一起,不同语言都要实现一

套注册逻辑

image.png

7.1.1.2.

第三方注册(独立的服务 Registrar

第三方注册由一个独立的服务Registrar负责注册与注销。当服务启动后以某种方式通知Registrar,

然后 Registrar 负责向注册中心发起注册工作。同时注册中心要维护与服务之间的心跳,当服务不

可用时,向注册中心注销服务。这种方式的缺点是 Registrar 必须是一个高可用的系统,否则注册

工作没法进展。

image.png


7.1.1.3.

客户端发现

客户端发现是指客户端负责查询可用服务地址,以及负载均衡的工作。这种方式最方便直接,而

且也方便做负载均衡。再者一旦发现某个服务不可用立即换另外一个,非常直接。缺点也在于多

语言时的重复工作,每个语言实现相同的逻辑。

image.png

7.1.1.4.

服务端发现

服务端发现需要额外的 Router 服务,请求先打到 Router,然后 Router 负责查询服务与负载均衡。

这种方式虽然没有客户端发现的缺点,但是它的缺点是保证 Router 的高可用。

image.png

7.1.1.5.

7.1.1.6.

7.1.1.7.

7.1.1.8.

Consul

Eureka

SmartStack

Etcd

7.1.2. API 网关

API Gateway 是一个服务器,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的

Facade 模式很像。API Gateway 封装内部系统的架构,并且提供 API 给各个客户端。它还可能有

其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等。下图展示了一

个适应当前架构的 API Gateway。

image.png

API Gateway 负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过 API Gateway,

然后路由这些请求到对应的微服务。API Gateway 将经常通过调用多个微服务来处理一个请求以

及聚合多个服务的结果。它可以在 web 协议与内部使用的非 Web 友好型协议间进行转换,如

HTTP 协议、WebSocket 协议。

7.1.2.1.

请求转发

服务转发主要是对客户端的请求安装微服务的负载转发到不同的服务上

7.1.2.2.

响应合并

把业务上需要调用多个服务接口才能完成的工作合并成一次调用对外统一提供服务。

7.1.2.3.

协议转换

重点是支持 SOAP,JMS,Rest 间的协议转换。

7.1.2.4.

数据转换

重点是支持 XML 和 Json 之间的报文格式转换能力(可选)

7.1.2.5.

安全认证

1. 基于 Token 的客户端访问控制和安全策略

2. 传输数据和报文加密,到服务端解密,需要在客户端有独立的 SDK 代理包

3. 基于 Https 的传输加密,客户端和服务端数字证书支持

4. 基于 OAuth2.0 的服务安全认证(授权码,客户端,密码模式等)

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
2月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
5月前
|
缓存 Java 关系型数据库
2025 年最新华为 Java 面试题及答案,全方位打造面试宝典
Java面试高频考点与实践指南(150字摘要) 本文系统梳理了Java面试核心考点,包括Java基础(数据类型、面向对象特性、常用类使用)、并发编程(线程机制、锁原理、并发容器)、JVM(内存模型、GC算法、类加载机制)、Spring框架(IoC/AOP、Bean生命周期、事务管理)、数据库(MySQL引擎、事务隔离、索引优化)及分布式(CAP理论、ID生成、Redis缓存)。同时提供华为级实战代码,涵盖Spring Cloud Alibaba微服务、Sentinel限流、Seata分布式事务,以及完整的D
335 0
|
4月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
450 0
|
2月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
274 2
|
2月前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
188 1
|
4月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
224 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
2月前
|
算法 Java
50道java基础面试题
50道java基础面试题
|
4月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
266 1
|
4月前
|
缓存 Java 关系型数据库
Java 面试经验总结与最新 BAT 面试资料整理含核心考点的 Java 面试经验及最新 BAT 面试资料
本文汇总了Java面试经验与BAT等大厂常见面试考点,涵盖心态准备、简历优化、面试技巧及Java基础、多线程、JVM、数据库、框架等核心技术点,并附实际代码示例,助力高效备战Java面试。
170 0

热门文章

最新文章