-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #174 from Stream29/master
week11
- Loading branch information
Showing
1 changed file
with
25 additions
and
0 deletions.
There are no files selected for viewing
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,25 @@ | ||
# 黑马点评 | ||
|
||
一开始是照着教案一步一步敲,敲着敲着发现不对。 | ||
教案其实按照正常的教学顺序来的,按照逐步升级的渐进思维。 | ||
但是我没必要把中间每一步都写出来,我选择先把教案整个看完,然后再根据最终方案写出我自己的实现。 | ||
|
||
精华主要在于Redis上。 | ||
我对它的理解是,原本在一个机器上运行的时候,其实是没有这种需要的。 | ||
但是由于流量的增加我们必然需要走向分布式,这时候各地的每台机器就好似CPU的多个核心,每个都有自己的L1缓存,而Redis就好似这个虚构的大机器的内存。 | ||
|
||
Redis作为一个“内存”被各台机器共享,这样整体就可以表现得像一个统一的机器一样。 | ||
当然,Redis本身也是分布式的,会有主从一说。 由此,我们的分布式服务器又比普通的机器又复杂了一点。 | ||
|
||
Redis给这个“共享内存”带来的复杂度是由需求决定的。 | ||
一则我们需要高可用性,于是有了主从节点,主节点挂了从节点顶上。 | ||
二则我们需要更高的容量,于是有了Redis集群,将数据分片存储。 | ||
|
||
原本在一台机器上操作的时候,CAS等等的线程安全操作就已经够让人头疼了,现在更是要考虑万一“我操作到一半主节点挂掉从节点没有这段信息改怎么办”这种究极恼人的问题。 | ||
幸好这方面已经有了一些相对成熟的架构和库,我们可以踩着前人的石头过河。 | ||
|
||
不过啊,我的意见还是,虽然也许走向分布式以后很多东西看起来是全新的,但是我们时刻都不要忘记,分布式只是切换了表层,改了一点实现,底层的那套逻辑是类似的。 | ||
就好像角动量、转动惯量和动量、质量一般,很多分布式的概念和单机的概念是对应的,甚至共享同一套接口。 | ||
|
||
在这里,我还是很赞赏黑马这个教案的教学思路的,先写一个最最简单的单机实现,在此基础上带着学生一步一步升级。 | ||
所谓“知其然,知其所以然”,这种渐进式的教学方法是非常好的。 |