forked from whx123/JavaHome
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
68 changed files
with
848 additions
and
158 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
### Elasticsearch | ||
1. 详细描述一下Elasticsearch索引文档的过程。 | ||
2. 详细描述一下Elasticsearch搜索的过程。 | ||
3. Elasticsearch 的倒排索引是什么。 | ||
4. Elasticsearch是如何实现master选举的。 | ||
5. lucence内部结构是什么。 | ||
6. Lucene全文搜索的原理 | ||
7. 在并发情况下,Elasticsearch 如何保证读写一致呢? | ||
8. 详细阐述一下 Elasticsearch 搜索的过程。 | ||
9. Elasticsearch 索引数据多了怎么办呢,如何调优,部署 | ||
10. Elasticsearch 对于大数据量(上亿量级)的聚合如何实现? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
![](https://user-gold-cdn.xitu.io/2020/5/14/1720eda10954cb6b?w=1120&h=549&f=png&s=128315) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。 | ||
|
||
触发主GC(Garbage Collector,垃圾回收)的条件: | ||
(1)当应用程序空闲时,即没有应用线程在运行时,GC会被调用。 | ||
(2)Java堆内存不足时,GC会被调用。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
这两个方法用来提示JVM要进行垃圾回收。但是,立即开始还是延迟进行垃圾回收是取决于JVM的。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
![](https://user-gold-cdn.xitu.io/2020/5/14/172108007fefffe5?w=1280&h=617&f=png&s=254427) | ||
|
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
这个是在ReentrankLock中实现的,synchronized没有,是用一个队列实现的,在公平锁好理解,就是先进这个队列的,也先出队列获得资源,而非公平锁的话,则是还没有进队列之前可以与队列中的线程竞争尝试获得锁,如果获取失败,则进队列,此时也是要乖乖等前面出队才行 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
如果一个线程获得过该锁,可以再次获得,主要是用途就是在递归方面,还有就是防止死锁,比如在一个同步方法块中调用了另一个相同锁对象的同步方法块 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
共享锁可以由多个线程获取使用,而独享锁只能由一个线程获取。 | ||
对ReentrantReadWriteLock其读锁是共享锁,其写锁是独占锁 | ||
读锁的共享锁可保证并发读是非常高效的,读写,写读,写写的过程是互斥的。其中获得写锁的线程还能同时获得读锁,然后通过释放写锁来降级。读锁则不能升级 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
- 在jdk1.6中做了第synchronized的优化,偏向锁指的是当前只有这个线程获得,没有发生争抢,此时将方法头的markword设置成0,然后每次过来都cas一下就好,不用重复的获取锁 | ||
- 轻量级锁:在偏向锁的基础上,有线程来争抢,此时膨胀为轻量级锁,多个线程获取锁时用cas自旋获取,而不是阻塞状态 | ||
- 重量级锁:轻量级锁自旋一定次数后,膨胀为重量级锁,其他线程阻塞,当获取锁线程释放锁后唤醒其他线程。(线程阻塞和唤醒比上下文切换的时间影响大的多,涉及到用户态和内核态的切换) | ||
- 自旋锁:在没有获取锁的时候,不挂起而是不断轮询锁的状态 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
- volatile 通过内存屏障 | ||
- synchronized 通过修饰的程序段同一时间只能由同一线程运行,释放锁前会刷新到主内存 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
- 1、互斥条件:一个资源每次只能被一个进程使用。 | ||
- 2、保持和请求条件:一个进程因请求资源而阻塞时,对已获得资源保持不放。 | ||
- 3、不可剥夺性:进程已获得资源,在未使用完成前,不能被剥夺。 | ||
- 4、循环等待条件(闭环):若干进程之间形成一种头尾相接的循环等待资源关系。 | ||
|
||
如何避免死锁?只要破坏其中任意一个条件,就可以避免死锁 | ||
|
||
一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,82 @@ | ||
## Java 并发 && 多线程 | ||
### Java 并发 && 多线程 | ||
1. synchronized 的实现原理以及锁优化? | ||
2. 现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? | ||
3. synchronized 和 lock 有什么区别? | ||
4. 说说 CountDownLatch 与 CyclicBarrier 区别 | ||
2. ThreadLocal原理,使用注意点,应用场景有哪些? | ||
3. synchronized和ReentrantLock的区别? | ||
4. 说说CountDownLatch与CyclicBarrier 区别 | ||
5. Fork/Join框架的理解 | ||
6. 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法? | ||
7. Java中的volatile关键是什么作用?怎样使用它?在Java中它跟synchronized方法有什么不同?volatile 的实现原理 | ||
8. CAS?CAS 有什么缺陷,如何解决? | ||
9. 如何检测死锁?怎么预防死锁? | ||
9. 如何检测死锁?怎么预防死锁?死锁四个必要条件 | ||
10. 如果线程过多,会怎样? | ||
11. 说说 Semaphore 原理? | ||
11. 说说 Semaphore原理? | ||
12. AQS组件,实现原理 | ||
13. ThreadLocal原理,使用注意点? | ||
14. LockSupport工具 | ||
13. 假设有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? | ||
14. LockSupport作用是? | ||
15. Condition接口及其实现原理 | ||
16. 说说并发与并行的区别? | ||
17. 为什么要用线程池?Java的线程池内部机制,参数作用,几种工作阻塞队列,线程池类型以及使用场景 | ||
18. 如何保证多线程下 i++ 结果正确? | ||
19. 10 个线程和 2 个线程的同步代码,哪个更容易写? | ||
19. 10 个线程和2个线程的同步代码,哪个更容易写? | ||
20. 什么是多线程环境下的伪共享(false sharing)? | ||
21. 线程池如何调优,最大数目如何确认? | ||
22. Java 内存模型? | ||
23. 怎么实现所有线程在等待某个事件的发生才会去执行? | ||
24. 说一下 Runnable和 Callable有什么区别? | ||
25. 用Java编程一个会导致死锁的程序,你将怎么解决? | ||
26. 线程的生命周期 | ||
26. 线程的生命周期,线程的几种状态。 | ||
27. ReentrantLock实现原理 | ||
28. java并发包concurrent及常用的类 | ||
29. wait(),notify()和suspend(),resume()之间的区别 | ||
30. FutureTask是什么 | ||
30. FutureTask是什么? | ||
31. 一个线程如果出现了运行时异常会怎么样 | ||
32. 生产者消费者模型的作用是什么 | ||
33. ReadWriteLock是什么 | ||
34. Java中用到的线程调度算法是什么 | ||
35. 线程池中的阻塞队列如果满了怎么办 | ||
34. Java中用到的线程调度算法是什么? | ||
35. 线程池中的阻塞队列如果满了怎么办? | ||
36. 线程池中 submit()和 execute()方法有什么区别? | ||
37. 说一下 atomic 的原理? | ||
37. 介绍一下 AtomicInteger 类的原理? | ||
38. 多线程锁的升级原理是什么? | ||
39. 指令重排序,内存栅栏等? | ||
39. 指令重排序,内存栅栏等? | ||
40. Java 内存模型 happens-before原则 | ||
41. 公平锁/非公平锁 | ||
42. 可重入锁 | ||
43. 独享锁、共享锁 | ||
44. 偏向锁/轻量级锁/重量级锁 | ||
45. 如何保证内存可见性 | ||
46. 非核心线程延迟死亡,如何实现? | ||
47. ConcurrentHashMap读操作为什么不需要加锁? | ||
48. ThreadLocal 如何解决 Hash 冲突? | ||
49. ThreadLocal 的内存泄露是怎么回事? | ||
50. 为什么ThreadLocalMap 的 key是弱引用,设计理念是? | ||
51. 同步方法和同步代码块的区别是什么? | ||
52. 在Java中Lock接口比synchronized块的优势是什么?如果你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它? | ||
53. 用Java实现阻塞队列。 | ||
54. 用Java写代码来解决生产者——消费者问题。 | ||
55. 什么是竞争条件?你怎样发现和解决竞争? | ||
56. 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法? | ||
57. Java中你怎样唤醒一个阻塞的线程? | ||
58. 什么是不可变对象,它对写并发应用有什么帮助? | ||
59. 你在多线程环境中遇到的共同的问题是什么?你是怎么解决它的? | ||
60. Java 中能创建 volatile数组吗 | ||
61. volatile 能使得一个非原子操作变成原子操作吗 | ||
62. 你是如何调用 wait()方法的?使用 if 块还是循环?为什么? | ||
63. 我们能创建一个包含可变对象的不可变对象吗? | ||
64. 在多线程环境下,SimpleDateFormat是线程安全的吗 | ||
65. 为什么Java中 wait 方法需要在 synchronized 的方法中调用? | ||
66. BlockingQueue,CountDownLatch及Semeaphore的使用场景 | ||
67. Java中interrupted 和 isInterruptedd方法的区别? | ||
68. 怎么检测一个线程是否持有对象监视器 | ||
69. 什么情况会导致线程阻塞 | ||
70. 如何在两个线程间共享数据 | ||
71. Thread.sleep(1000)的作用是什么? | ||
72. 使用多线程可能带来什么问题 | ||
73. 说说线程的生命周期和状态? | ||
74. 什么是上下文切换 | ||
75. Java Monitor 的工作机理 | ||
76. 按线程池内部机制,当提交新任务时,有哪些异常要考虑。 | ||
77. 线程池都有哪几种工作队列? | ||
78. 说说几种常见的线程池及使用场景? | ||
79. 使用无界队列的线程池会导致内存飙升吗? | ||
80. 为什么阿里发布的 Java开发手册中强制线程池不允许使用 Executors 去创建? | ||
81. Future有缺陷嘛? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,51 @@ | ||
### Java 集合 | ||
1. Arraylist 与 LinkedList 区别 | ||
2. Collections.sort排序内部原理,Arrays.sort 实现原理 | ||
3. HashMap原理,java8做的改变 | ||
1. Arraylist与LinkedList区别 | ||
2. Collections.sort和Arrays.sort的实现原理 | ||
3. HashMap原理,java8做了什么改变 | ||
4. List 和 Set,Map 的区别 | ||
5. poll() 方法和 remove() 方法的区别? | ||
5. poll()方法和 remove()方法的区别? | ||
6. HashMap,HashTable,ConcurrentHash的共同点和区别 | ||
7. 写一段代码在遍历 ArrayList 时移除一个元素 | ||
8. Java 中怎么打印数组? | ||
9. Java 中的 TreeMap 是采用什么树实现的? | ||
8. Java中怎么打印数组? | ||
9. TreeMap底层? | ||
10. HashMap 的扩容过程 | ||
11. HashSet 是如何保证不重复的 | ||
11. HashSet是如何保证不重复的 | ||
12. HashMap 是线程安全的吗,为什么不是线程安全的?死循环问题? | ||
13. LinkedHashMap的应用,底层,原理 | ||
14. 哪些集合类是线程安全的?哪些安全? | ||
15. Vector 与 Array,ArrayList 的区别 | ||
14. 哪些集合类是线程安全的?哪些不安全? | ||
15. ArrayList 和 Vector 的区别是什么? | ||
16. Collection与Collections的区别是什么? | ||
17. 如何决定使用 HashMap 还是 TreeMap? | ||
18. 如何实现数组和 List 之间的转换? | ||
17. 如何决定使用 HashMap 还是TreeMap? | ||
18. 如何实现数组和 List之间的转换? | ||
19. 迭代器 Iterator 是什么?怎么用,有什么特点? | ||
20. Iterator 和 ListIterator 有什么区别? | ||
21. 怎么确保一个集合不能被修改? | ||
22. 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么? | ||
23. 什么是Java优先级队列(Priority Queue)? | ||
24. JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。 | ||
25. Java 中怎么打印数组? | ||
26. Java 中的 LinkedList 是单向链表还是双向链表? | ||
27. 说一说 ArrayList 的扩容机制吧 | ||
25. 阻塞队列的实现,ArrayBlockingQueue的底层实现? | ||
26. Java 中的 LinkedList是单向链表还是双向链表? | ||
27. 说一说ArrayList 的扩容机制吧 | ||
28. HashMap 的长度为什么是2的幂次方,以及其他常量定义的含义~ | ||
29. ConcurrenHashMap 介绍?1.8 中为什么要用红黑树? | ||
29. ConcurrenHashMap 原理?1.8 中为什么要用红黑树? | ||
30. ArrayList的默认大小 | ||
31. 为何Collection不从Cloneable和Serializable接口继承? | ||
32. Enumeration和Iterator接口的区别? | ||
33. 我们如何对一组对象进行排序? | ||
34. 当一个集合被作为参数传递给一个函数时,如何才可以确保函数不能修改它? | ||
35. 说一下 HashSet 的实现原理? | ||
36. Array 和 ArrayList 有何区别? | ||
37. 在 Queue中poll()和 remove()有什么区别? | ||
38. ArrayList 如何删除重复的元素或者指定的元素; | ||
39. 讲讲红黑树的特点? | ||
40. Java集合类框架的最佳实践有哪些? | ||
41. Enumeration接口和Iterator 接口的区别有哪些? | ||
42. HashSet和TreeSet有什么区别? | ||
43. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? | ||
44. 说出ArrayList,LinkedList的存储性能和特性 | ||
45. Java中HashMap的key值要是为类对象则该类需要满足什么条件? | ||
46. ArrayList集合加入1万条数据,应该怎么提高效率 | ||
47. 如何对Object的list排序 | ||
48. ArrayList 和 HashMap 的默认大小是多数? | ||
49. 有没有有顺序的Map实现类,如果有,他们是怎么保证有序的 | ||
50. HashMap是怎么解决哈希冲突的 |
5 changes: 5 additions & 0 deletions
5
Java面试题集结号/Java集合/Java集合面试题答案/22. 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。 | ||
|
||
java.util包下面的所有的集合类都是快速失败的; | ||
|
||
java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException异常,而安全失败的迭代器永远不会抛出这样的异常。 |
3 changes: 3 additions & 0 deletions
3
Java面试题集结号/Java集合/Java集合面试题答案/23. 什么是Java优先级队列(Priority Queue)?.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
PriorityQueue是一个基于优先级堆的无界队列,它的元素是按照自然顺序(natural order)排序的。 | ||
在创建的时候,我们可以给它提供一个负责给元素排序的比较器。PriorityQueue不允许null值,因为他们没有自然顺序,或者说他们没有任何的相关联的比较器。最后,PriorityQueue不是线程安全的,入队和出队的时间复杂度是O(log(n))。 | ||
|
1 change: 1 addition & 0 deletions
1
Java面试题集结号/Java集合/Java集合面试题答案/31. 为何Collection不从Cloneable和Serializable接口继承?.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的。因此,应该由集合类的具体实现来决定如何被克隆或者是序列化。 |
2 changes: 2 additions & 0 deletions
2
Java面试题集结号/Java集合/Java集合面试题答案/38. ArrayList 如何删除重复的元素或者指定的元素;.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
- 使用Set删除重复元素 | ||
- 迭代器删除指定元素 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
- root节点和叶子节点是黑色 | ||
- 红色节点后必须为黑色节点 | ||
- 从root到叶子每条路径的黑节点数量相同 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
- 根据应用的需要正确选择要使用的集合的类型对性能非常重要,比如:假如元素的大小是固定的,而且能事先知道,我们就应该用Array而不是ArrayList。 | ||
- 有些集合类允许指定初始容量。因此,如果我们能估计出存储的元素的数目,我们可以设置初始容量来避免重新计算hash值或者是扩容。 | ||
- 为了类型安全,可读性和健壮性的原因总是要使用泛型。同时,使用泛型还可以避免运行时的ClassCastException。 | ||
- 使用JDK提供的不变类(immutable class)作为Map的键可以避免为我们自己的类实现hashCode()和equals()方法。 | ||
- 编程的时候接口优于实现。 | ||
- 底层的集合实际上是空的情况下,返回长度是0的集合或者是数组,不要返回null。 | ||
|
2 changes: 2 additions & 0 deletions
2
Java面试题集结号/Java集合/Java集合面试题答案/41. Enumeration接口和Iterator 接口的区别有哪些?.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Enumeration速度是Iterator的2倍,同时占用更少的内存。但是,Iterator远远比Enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的。 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
HashSet是由一个hash表来实现的,因此,它的元素是无序的。add(),remove(),contains()方法的时间复杂度是O(1)。 | ||
另一方面,TreeSet是由一个树形的结构来实现的,它里面的元素是有序的。因此,add(),remove(),contains()方法的时间复杂度是O(logn)。 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
### dubbo框架 | ||
1. Dubbo的服务请求失败怎么处理 | ||
2. dubbo的负载均衡有几种算法?(随机,轮询,最少活跃请求数,一致性hash) | ||
3. Dubbo 和 Spring Cloud 有什么区别? | ||
4. dubbo都支持什么协议,推荐用哪种? | ||
5. 画一画服务注册与发现的流程图 | ||
6. Dubbo默认使用什么注册中心,还有别的选择吗? | ||
7. 在 Provider 上可以配置的 Consumer 端的属性有哪些? | ||
8. Dubbo启动时如果依赖的服务不可用会怎样? | ||
9. Dubbo推荐使用什么序列化框架,你知道的还有哪些? | ||
10. Dubbo默认使用的是什么通信框架,还有别的选择吗? | ||
11. 服务上线怎么兼容旧版本? | ||
12. Dubbo服务之间的调用是阻塞的吗? | ||
13. Dubbo telnet 命令能做什么? | ||
14. Dubbo如何一条链接并发多个调用。 | ||
15. Dubbo 的使用场景有哪些? | ||
16. Dubbo 核心功能有哪些? | ||
17. Dubbo 核心组件有哪些? | ||
18. Dubbo 服务器注册于发现的流程? | ||
19. Dubbo 支持哪些协议,它们的优缺点有哪些? | ||
20. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么? | ||
21. Dubbo源码使用了哪些设计模式 | ||
22. Dubbo集群提供了哪些负载均衡策略? | ||
23. Dubbo的集群容错方案有哪些? | ||
24. Dubbo 支持哪些序列化方式? | ||
25. Dubbo超时重试,Dubbo超时时间设置 |
Oops, something went wrong.