diff --git "a/assets/img/\343\200\212\344\272\222\350\201\224\347\275\221 \302\267 \345\210\206\345\270\203\345\274\217\346\212\200\346\234\257\343\200\213\347\254\254 1 \350\212\202\357\274\232\345\237\272\347\241\200\345\206\205\345\256\271\344\273\213\347\273\215.png" "b/assets/img/\343\200\212\344\272\222\350\201\224\347\275\221 \302\267 \345\210\206\345\270\203\345\274\217\346\212\200\346\234\257\343\200\213\347\254\254 1 \350\212\202\357\274\232\345\237\272\347\241\200\345\206\205\345\256\271\344\273\213\347\273\215.png" new file mode 100644 index 0000000000000000000000000000000000000000..076802800524dfcc10b60177ffca20087c9a7173 Binary files /dev/null and "b/assets/img/\343\200\212\344\272\222\350\201\224\347\275\221 \302\267 \345\210\206\345\270\203\345\274\217\346\212\200\346\234\257\343\200\213\347\254\254 1 \350\212\202\357\274\232\345\237\272\347\241\200\345\206\205\345\256\271\344\273\213\347\273\215.png" differ diff --git "a/assets/xmind/\344\270\223\346\240\217\350\256\241\345\210\222.xmind" "b/assets/xmind/\344\270\223\346\240\217\350\256\241\345\210\222.xmind" deleted file mode 100644 index 116de1f691f9ea076cfc7c485ce8387f64c9307b..0000000000000000000000000000000000000000 Binary files "a/assets/xmind/\344\270\223\346\240\217\350\256\241\345\210\222.xmind" and /dev/null differ diff --git "a/assets/xmind/\344\272\222\350\201\224\347\275\221\346\212\200\346\234\257\357\274\232\345\267\245\345\205\267\347\257\207.xmind" "b/assets/xmind/\344\272\222\350\201\224\347\275\221\346\212\200\346\234\257\357\274\232\345\267\245\345\205\267\347\257\207.xmind" new file mode 100644 index 0000000000000000000000000000000000000000..ed3af209ce0209186168e7600d93e29dc8fda8cc Binary files /dev/null and "b/assets/xmind/\344\272\222\350\201\224\347\275\221\346\212\200\346\234\257\357\274\232\345\267\245\345\205\267\347\257\207.xmind" differ diff --git "a/assets/xmind/\347\240\224\345\217\221&\346\225\260\345\255\246.xmind" "b/assets/xmind/\347\240\224\345\217\221&\346\225\260\345\255\246.xmind" deleted file mode 100644 index 562117fc7fa4f2fb8fbb8fa6bebd9f7c5c0b2423..0000000000000000000000000000000000000000 Binary files "a/assets/xmind/\347\240\224\345\217\221&\346\225\260\345\255\246.xmind" and /dev/null differ diff --git "a/notes/2021-05-07-\346\257\225\344\270\232\347\224\237.md" "b/notes/2021-05-07-\346\257\225\344\270\232\347\224\237.md" deleted file mode 100644 index faa90615801fcf68ee66ab9786134512e5e9904b..0000000000000000000000000000000000000000 --- "a/notes/2021-05-07-\346\257\225\344\270\232\347\224\237.md" +++ /dev/null @@ -1,32 +0,0 @@ -1. 写多少行代码,能在毕业找到工作 -2. 最开始写代码会有一种不熟练的感觉 -3. 兴趣爱好方面,是否会为了一个运行结果,折腾个几天几夜 -4. 能给你一份什么样的资料,让你学习起来更有效果 -5. 一些我做过的项目列表 -6. 学习的阶段{接触了解编程、熟悉工具、大量写代码、框架学习、功能开发、项目开发、(数据结构、算法逻辑、设计模式)、架构阶段} -7. 你可能压根并不知道,你能找一份什么样的工作。找一份多少钱的工作,什么样的工作,外包、传统、国企、外企、互联网?每一个都决定了你将来会走什么样的路,如果走错了,可能要走弯路了就。市场也确实有内卷现象 -8. 关于学习资源,博客、GitHub、哔哩哔哩视频 -10. 可能是因为爱好,所以并不觉得自己是因为努力而学习编程 -11. 大学最好不要浪费太多的时间,去做一些和自己本身成长没关的事情。如果你并不缺那个钱,而且你又希望在自己本专业上找工作,那么类似发传单等兼职,点到为止,了解下赚钱的辛苦就可以了。还是要多学习自己需要的东西 -12. 酒香不怕巷子深,放在现在那是骗人的! -13. 做一件事,就把一件事做好! -14. 如果连技术博客都不看,那么几乎你不会被知识触达到。尤其是现在,你越喜欢看什么,越给你推荐什么 -15. 找到学习技巧,非常重要! - -## 一、前言 - -1. 什么样的人更适合做程序员,如果你不能把它当成一种乐趣那么你会很痛苦。做程序员只有乐趣和痛苦 - -## 二、经历 - -1. 关于我自己的经历,刚毕业那年月薪7k -2. 参加过培训,还怼过老师 - -## 三、阶段 - -## 四、目标 - -## 五、资料 - -## 六、总结 - diff --git a/notes/README.md b/notes/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/notes/\344\272\222\350\201\224\347\275\221\346\212\200\346\234\257/\343\200\212\344\272\222\350\201\224\347\275\221 \302\267 \345\210\206\345\270\203\345\274\217\346\212\200\346\234\257\343\200\213\347\254\254 1 \350\212\202\357\274\232\345\237\272\347\241\200\345\206\205\345\256\271\344\273\213\347\273\215.md" "b/notes/\344\272\222\350\201\224\347\275\221\346\212\200\346\234\257/\343\200\212\344\272\222\350\201\224\347\275\221 \302\267 \345\210\206\345\270\203\345\274\217\346\212\200\346\234\257\343\200\213\347\254\254 1 \350\212\202\357\274\232\345\237\272\347\241\200\345\206\205\345\256\271\344\273\213\347\273\215.md" new file mode 100644 index 0000000000000000000000000000000000000000..dec26203cd9f3918b8e50ba5bb28721d49bb1be5 --- /dev/null +++ "b/notes/\344\272\222\350\201\224\347\275\221\346\212\200\346\234\257/\343\200\212\344\272\222\350\201\224\347\275\221 \302\267 \345\210\206\345\270\203\345\274\217\346\212\200\346\234\257\343\200\213\347\254\254 1 \350\212\202\357\274\232\345\237\272\347\241\200\345\206\205\345\256\271\344\273\213\347\273\215.md" @@ -0,0 +1,17 @@ +# 《互联网 · 分布式架构》第 1 节:基础内容介绍 + +背景:在与星球伙伴1v1聊天的时候,遇到很多粉丝没有经历过大厂,并不清楚大厂都使用什么样的开发技术、平台服务、系统上线、运维监控等内容。所以结合粉丝对互联网大厂技术要求等内容的疑问,开始给球友陆续以《互联网 · 分布式架构》的建设背景,陆续像粉丝伙伴介绍在互联网做开发,都会使用到什么技术、遇到哪些问题、怎么解决各种复杂场景的设计,以及618备战、流量洪峰等各项核心内容。 + +内容:本章节给大家介绍在互联网做开发,基础环境、开发技术以及上线和监控都会用到哪些东西。一般互联网大厂像阿里、京东、腾讯等都会有公司自研的一些技术组件,比如:RPC、MQ、数据库路由等,但所有的这些技术与市面上的同类组件也是有着相同的协议,使用方式在核心内容上并不会有太大区别。所以小傅哥也会以市面上有的技术来填充到给大家梳理的分布式架构中用到的内容上,方便大家可以自行搜索资料以及测试验证。 + +文档:在互联网大厂,文档是非常重要的一项内容。从产品出PRD、研发设计、代码评审、系统架构以及你的晋升答辩,都会用到编写文档的各项工具。比如:XMind、Visio、PPT等。有些公司也会自行安装一些文档,比如 Conflue + +工具:大部分时候无论是否在互联网工作,工具项还是非常相同的,除非你是在一个非常传统的行业,或者说你是跨语言了。这里的工具包括:JDK、IntelliJ IDEA、Navicat、Postman、Xshell、Xftp、Maven、代码库、Git、TortoiseGit等。 + +技术:这部分内容主要是以你在建设什么样的系统而决定你会用到哪些技术内容,除了最基本的 Spring、SpringBoot、MyBatis、RPC、MQ、Redis这些非常常用的以外,如果你需要用到分库分表,那么会设计到数据库路由组件,在数据库分库分表后又会需要用到数据整合汇总的服务,比如通过Mysql的binlog日志,把数据通过Otter同步到ES中。而这些背景下你可能还会需要用到分布式任务以及分布式事务的组件,但也可以基于MQ做最终一致性。另外在互联网应用开发中,都是采用前后端分离的,这个时候会有服务端把如RPC这样的接口,转换为http服务,但这种转换只需要把RPC接口配置到网关平台即可,而不需要自己处理http开发。另外网关服务上会提供诸如白名单、黑名单、防刷、切量、限流等各种服务治理的能力。当然在给前端的接口上,也会有一些是LVS/F5、Nginx、CDN等各项能力来保障系统的可用度。 + +数据:在技术层面我们提到了分库分表的Mysql汇总到ES,同时还会有一些如 HBase 等大型数据服务,用于做使用量化模型做数据分析以及生成人群标签等各项内容。 + +上线:除了一些小公司刀耕火种的上线方式外,还会有像是大公司里非常方便自动化的上线系统,它们的内核开发有的是基于Jenkins,也有一些是自研的,当然还有上云的服务。另外上线后还会有对应的JMeter压测服务和运行日志实时查询服务。 + +监控:其实关于系统的监控、数据库的监控,都是非常重要的,尤其是对那些业务体量较大、流量较高、有秒杀和大促的业务场景时,就更需要颗粒度更细的监控系统。比如需要知道 TP99、TP999、可用率、响应时长、TPS、QPS等各种指标,来判断服务的整体可用度。另外在数据库层面的监控需要知道当前的IO吞吐量、慢查询、事务、可用连接数、LOAD等综合指标和日常的数据报表。这些都是可以非常方便的反馈出整体服务的可用度。