Skip to content

Commit 5b10d50

Browse files
committed
📝MySQL-faq
1 parent 43fb8ee commit 5b10d50

File tree

8 files changed

+311
-80
lines changed

8 files changed

+311
-80
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@
152152
| Spring | 「 直击面试」—— Spring高频面试题 |
153153
| 网络 | [「 直击面试」—— 搞定计算机网络](/docs/network/Network-FAQ.md) |
154154
| 基础 | [「 直击面试」—— 搞定 Java 集合](/docs/java/Collections/Collections-FAQ.md) |
155+
| MySQL | [「 直击面试」—— MySQL三文字总结+面试100问](https://mp.weixin.qq.com/s/MCFHNOQnTtJ6MGVjM3DP4A) |
155156

156157

157158

docs/data-store/MySQL/MySQL-FAQ.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(不收藏算我渣)
2-
31
![](https://imgkr.cn-bj.ufileos.com/9e22c4b4-0db5-4f4f-9636-974875d4018f.jpg)
42

53
> 写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。

docs/data-store/Redis/3.Redis-Datatype.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,4 +305,9 @@ public class JedisTest {
305305

306306
### redis的所有指令
307307

308-
[各指令介绍](https://github.com/antirez/redis-doc/tree/617a8109020fa299efb543277c1fea3915652509/commands)
308+
[各指令介绍](https://github.com/antirez/redis-doc/tree/617a8109020fa299efb543277c1fea3915652509/commands)
309+
310+
311+
312+
313+

docs/data-store/Redis/Redis-FAQ.md

Lines changed: 223 additions & 21 deletions
Large diffs are not rendered by default.

docs/java/JVM/Reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public Object getObject(Object key) {
194194

195195
弱引用需要用`java.lang.ref.WeakReference`类来实现,它比软引用的生存期更短。
196196

197-
对于只有软引用的对象来说,只要垃圾回收机制一运行,不管 JVM 的内存空间是否足够,都会回收该对象占用的内存。
197+
对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管 JVM 的内存空间是否足够,都会回收该对象占用的内存。
198198

199199
**coding~**
200200

docs/message-queue/Kafka/Hello-Kafka.md

Lines changed: 43 additions & 45 deletions
Large diffs are not rendered by default.

docs/message-queue/MQ-FAQ.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
### 为什么使用MQ?MQ的优点
2+
3+
- 异步处理 - 相比于传统的串行、并行方式,提高了系统吞吐量。
4+
- 应用解耦 - 系统间通过消息通信,不用关心其他系统的处理。
5+
- 流量削锋 - 可以通过消息队列长度控制请求量;可以缓解短时间内的高并发请求。
6+
- 日志处理 - 解决大量日志传输。
7+
- 消息通讯 - 消息队列一般都内置了高效的通信机制,因此也可以用在纯的消息通讯。比如实现点对点消息队列,或者聊天室等
8+
9+
10+
11+
### Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?
12+
13+
| | RabbitMQ | ActiveMQ | RocketMQ | Kafka |
14+
| ------------- | ----------------------------------------------- | ------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------- |
15+
| 所属社区/公司 | Rabbit | Apache | Ali | Apache |
16+
| 开发语言 | Erlang | Java | Java | Scala&Java |
17+
| 多语言支持 | 语言无关 | 支持,Java优先 | Java | 支持,Java优先 |
18+
| 消息推拉模式 | 多协议,Pull/Push均支持 | 多协议,Pull/Push均支持 | 多协议,Pull/Push均支持 | Pull |
19+
| HA | master/slave模式,master提供服务,slave仅作备份 | 基于zookeeper+levelDB的master-slave实现方式 | 支持多master模式、多master多slave模式、异步复制模式、 | 支持replica机制。leader宕掉后,备份自动顶替,并重选leader |
20+
| 事务 | 不支持 | 支持 | 支持 | 不支持,可通过Low Level API保证仅消费一次 |
21+
| 集群 | 支持 | 支持 | 支持 | 支持 |
22+
| 负载均衡 | 支持 | 支持 | 支持 | 支持 |
23+
24+
25+
26+
### MQ 有哪些常见问题?如何解决这些问题?
27+
28+
MQ 的常见问题有:
29+
30+
1. 消息的顺序问题
31+
2. 消息的重复问题

docs/message-queue/浅谈消息队列及常见的消息中间件.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# 浅谈消息队列及常见的消息中间件
22

3-
# 前言
3+
> Reference : <https://juejin.im/post/5b41fe36e51d45191252e79e#heading-2>
4+
5+
## 前言
46

57
**消息队列** 已经逐渐成为企业应用系统 **内部通信** 的核心手段。它具有 **低耦合****可靠投递****广播****流量控制****最终一致性** 等一系列功能。
68

@@ -10,8 +12,6 @@
1012

1113

1214

13-
# 正文
14-
1515
## 1. 消息队列概述
1616

1717
**消息队列** 是指利用 **高效可靠****消息传递机制** 进行与平台无关的 **数据交流**,并基于 **数据通信** 来进行分布式系统的集成。
@@ -49,7 +49,7 @@
4949

5050
### 4.1. 点对点模型
5151

52-
**点对点模型** 用于 **消息生产者****消息消费者** 之间 **点到点** 的通信。消息生产者将消息发送到由某个名字标识的特定消费者。这个名字实际上对于消费服务中的一个 **队列**`Queue`),在消息传递给消费者之前它被 **存储** 在这个队列中。**队列消息** 可以放在 **内存** 中也可以 **持久化**,以保证在消息服务出现故障时仍然能够传递消息。
52+
**点对点模型** 用于 **消息生产者****消息消费者** 之间 **点到点** 的通信。消息生产者将消息发送到由某个名字标识的特定消费者。这个名字实际上对应消费服务中的一个 **队列**`Queue`),在消息传递给消费者之前它被 **存储** 在这个队列中。**队列消息** 可以放在 **内存** 中也可以 **持久化**,以保证在消息服务出现故障时仍然能够传递消息。
5353

5454
传统的点对点消息中间件通常由 **消息队列服务****消息传递服务****消息队列****消息应用程序接口** `API` 组成,其典型的结构如下图所示。
5555

@@ -168,7 +168,7 @@
168168

169169
### 6.3. 两种类型的区别
170170

171-
![img](E:\gitBlog\Technical-Learning\contents\Message Queue\message-push-pull.png)
171+
![img](../_images/message-queue/message-push-pull.png)
172172

173173
## 7. 消息队列技术对比
174174

@@ -255,7 +255,7 @@
255255

256256
### 7.3. RocketMQ
257257

258-
`RocketMQ` 出自 **阿里** 的开源产品,用 `Java` 语言实现,在设计时参考了 `Kafka`,并做出了自己的一些改进,**消息可靠性上**`Kafka` 更好。`RocketMQ` 在阿里内部被广泛应用在 **订单****交易****充值****流计算****消息推送****日志流式处理**`binglog` **分发** 等场景。
258+
`RocketMQ` 出自 **阿里** 的开源产品,用 `Java` 语言实现,在设计时参考了 `Kafka`,并做出了自己的一些改进,**消息可靠性上**`Kafka` 更好。`RocketMQ` 在阿里内部被广泛应用在 **订单****交易****充值****流计算****消息推送****日志流式处理**`binglog` **分发** 等场景。
259259

260260
#### (a) 主要特性
261261

@@ -358,10 +358,6 @@
358358

359359
`Kafka` 在于 **分布式架构**`RabbitMQ` 基于 `AMQP` **协议** 来实现,`RocketMQ` 的思路来源于 `Kafka`,改成了 **主从结构**,在 **事务性****可靠性** 方面做了优化。广泛来说,**电商****金融** 等对 **事务一致性** 要求很高的,可以考虑 `RabbitMQ``RocketMQ`,对 **性能要求高** 的可考虑 `Kafka`
360360

361-
362-
363-
Reference : <https://juejin.im/post/5b41fe36e51d45191252e79e#heading-2>
364-
365361

366362

367363

0 commit comments

Comments
 (0)