Skip to content

Commit

Permalink
Merge pull request #174 from Stream29/master
Browse files Browse the repository at this point in the history
week11
  • Loading branch information
Stream29 authored Aug 29, 2024
2 parents f3292c2 + c1bb317 commit c13eed3
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions 万荣涛/week11/周报.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 黑马点评

一开始是照着教案一步一步敲,敲着敲着发现不对。
教案其实按照正常的教学顺序来的,按照逐步升级的渐进思维。
但是我没必要把中间每一步都写出来,我选择先把教案整个看完,然后再根据最终方案写出我自己的实现。

精华主要在于Redis上。
我对它的理解是,原本在一个机器上运行的时候,其实是没有这种需要的。
但是由于流量的增加我们必然需要走向分布式,这时候各地的每台机器就好似CPU的多个核心,每个都有自己的L1缓存,而Redis就好似这个虚构的大机器的内存。

Redis作为一个“内存”被各台机器共享,这样整体就可以表现得像一个统一的机器一样。
当然,Redis本身也是分布式的,会有主从一说。 由此,我们的分布式服务器又比普通的机器又复杂了一点。

Redis给这个“共享内存”带来的复杂度是由需求决定的。
一则我们需要高可用性,于是有了主从节点,主节点挂了从节点顶上。
二则我们需要更高的容量,于是有了Redis集群,将数据分片存储。

原本在一台机器上操作的时候,CAS等等的线程安全操作就已经够让人头疼了,现在更是要考虑万一“我操作到一半主节点挂掉从节点没有这段信息改怎么办”这种究极恼人的问题。
幸好这方面已经有了一些相对成熟的架构和库,我们可以踩着前人的石头过河。

不过啊,我的意见还是,虽然也许走向分布式以后很多东西看起来是全新的,但是我们时刻都不要忘记,分布式只是切换了表层,改了一点实现,底层的那套逻辑是类似的。
就好像角动量、转动惯量和动量、质量一般,很多分布式的概念和单机的概念是对应的,甚至共享同一套接口。

在这里,我还是很赞赏黑马这个教案的教学思路的,先写一个最最简单的单机实现,在此基础上带着学生一步一步升级。
所谓“知其然,知其所以然”,这种渐进式的教学方法是非常好的。

0 comments on commit c13eed3

Please sign in to comment.