跳至主要內容
分布式存储面试

分布式存储面试

缓存

扩展:


钝悟...大约 11 分钟分布式分布式存储分布式分布式存储面试
分布式调度面试

分布式调度面试

服务注册和发现

【基础】什么是服务注册和发现?

要点

服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。

在微服务架构下,服务注册和发现机制中主要有三种角色:

  • 服务提供者(RPC Server / Provider)
  • 服务消费者(RPC Client / Consumer)
  • 服务注册中心(Registry)

服务发现通常依赖于注册中心来协调服务发现的过程,其步骤如下:

  1. 服务提供者将接口信息以注册到注册中心。
  2. 服务消费者从注册中心读取和订阅服务提供者的地址信息。
  3. 如果有可用的服务,注册中心会主动通知服务消费者。
  4. 服务消费者根据可用服务的地址列表,调用服务提供者的接口。

这个过程很像是生活中的房屋租赁,房东将租房信息挂到中介公司,房客从中介公司查找租房信息。房客如果想要租房东的房子,通过中介公司牵线搭桥,联系上房东,双方谈妥签订协议,就可以正式建立起租赁关系。

img
img

钝悟...大约 69 分钟分布式分布式调度分布式协同面试
分布式协同面试

分布式协同面试

复制

【基础】什么是复制?复制有什么作用?

要点

复制主要指通过网络在多台机器上保存相同数据的副本

复制数据,可能出于各种各样的原因:

  • 提高可用性 - 当部分组件出现位障,系统依然可以继续工作,系统依然可以继续工作。
  • 降低访问延迟 - 使数据在地理位置上更接近用户。
  • 提高读吞吐量 - 扩展至多台机器以同时提供数据访问服务。

钝悟...大约 72 分钟分布式分布式协同分布式协同综合分布式协同面试
Dubbo 面试

Dubbo 面试

Dubbo 的实现过程?

节点角色:

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

钝悟...大约 11 分钟分布式分布式通信RPCDubbo分布式分布式应用微服务Dubbo面试
《极客时间教程 - Java 核心技术面试精讲》笔记

《极客时间教程 - Java 核心技术面试精讲》笔记

开篇词 以面试题为切入点,有效提升你的 Java 内功

谈谈你对 Java 平台的理解?

【典型回答】

Java 最显著的特性:

  • 书写一次,到处运行”(Write once, run anywhere)——跨平台
  • 垃圾收集(GC, Garbage Collection)——回收、分配内存

Java 既是解释型语言,又是编译型语言


钝悟...大约 71 分钟笔记JavaJava面试
Java 并发面试三

Java 并发面试三

ThreadLocal

ThreadLocal 有什么用?

通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢?

JDK 中自带的ThreadLocal类正是为了解决这样的问题。 ThreadLocal类主要解决的就是让每个线程绑定自己的值,可以将ThreadLocal类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。


钝悟...大约 50 分钟JavaJavaCore面试JavaJavaSE面试并发
Java 并发面试二

Java 并发面试二

JMM(Java 内存模型)

JMM(Java 内存模型)相关的问题比较多,也比较重要,于是我单独抽了一篇文章来总结 JMM 相关的知识点和问题:JMM(Java 内存模型)详解

乐观锁和悲观锁

什么是悲观锁?


钝悟...大约 22 分钟JavaJavaCore面试JavaJavaSE面试并发
Java 基础面试三

Java 基础面试三

泛型

什么是泛型?有什么作用?

Java 泛型(Generics) 是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。

编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如 ArrayList<Person> persons = new ArrayList<Person>() 这行代码就指明了该 ArrayList 对象只能传入 Person 对象,如果传入其他类型的对象就会报错。


钝悟...大约 18 分钟JavaJavaCore面试JavaJavaSE面试
Java 基础面试二

Java 基础面试二

面向对象

面向对象和面向过程

典型问题

面向对象编程和面向过程编程有什么区别?

知识点

二者的主要区别在于解决问题的方式不同:

  • 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。
  • 面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。

另外,面向对象开发的程序一般更易维护、易复用、易扩展。

类和对象


钝悟...大约 27 分钟JavaJavaCore面试JavaJavaSE面试
Java 容器面试一

Java 容器面试一

Java 容器综合

Java 容器框架概览

img
img

Java 容器框架主要分为 CollectionMap 两种。其中,Collection 又分为 ListSet 以及 Queue


钝悟...大约 17 分钟JavaJavaCore面试JavaJavaSE面试容器
2
3