获得徽章 0
上周末去河口湖旅游了一趟。富士山还是挺壮观的。去了山梨县的矿石博物馆,买了一些亮晶晶的小石头。想买黄铁矿的标本,但是摆出来的都比较丑,没下手。还去了久保田一竹美术馆,心心念念的茶房坐了一个多小时。最后发现一个很好玩的地方……大石,就在虹吸诺亚前面,非常推荐。
评论
每节课干货最多的就是最后的部分。会有很多书本上没有的字节实践。有助于理解是怎么一步步变成现在这样复杂的架构的。比如redis的代理。处理大key。大key是string类型value大于10kb。hash/set/zset/list元素个数大于5000或者value大于10Mb。拆分压缩大key,侧重考虑解压时间,例如json格式用messagepack算法。集合类结构区分冷热,长尾数据走db。热key是QPS较高超过500的key,解决方式设置localcache。比如2s缓存过期才请求一次redis。
展开
评论
字节跳动服务治理重试策略。1. 限制重试比率,重试次数是时间窗口1%,大部分都是调用都是成功的才需要重试。2. 防止链路重试。理想情况下只有最下层发生重试,返回特殊的状态码。3. Hedged requests应对延时过高问题。
评论
第十三节课《微服务架构原理与治理实践》从服务注册中心到微服务。有点理解了k8s到底在干什么了。服务发布的部分,负载均衡,稳定性治理。 讲到限流熔断降级的时候一点既视感。之前别的课好像讲过了……
评论
补消息队列课程。常见的消息队列有Kafka和RoketMQ。Kafka的特点是分布式,分区的,多副本日志提交服务比较适合高吞度量的情况。RocketMQ的特点是低延迟,强一致性,高可靠,比较适用于实时场景。
评论
Redis是单线程处理命令。一些常用的数据结构:1. 消息通知使用了QuickList,相当于双向链表+listpack,listpack是多个elements的集合。2. 一个用户有多项计数需求用Hash Tale, dict数据结构采用拉链式处理hash冲突。渐进式rehash的过程是用旧+新两个dict头,慢慢迁移数据,完全迁移结束再切换成新头。3. zset数据结构ZSkipList实现排行榜功能。
展开
评论
今天稍微休息了一下,整理了一下之前的学习内容。落下了一节课,明天早起补课~加油加油!感觉理论课好多,我还是不知道怎么做大项目。还是多花时间,找找别的资源吧。想在这么短的时间内完全从零开始还是挺不容易。
评论
Go 框架三件套忘记填考勤表了……TAT
评论
go语言中database/sql包的作用是在应用程序与数据库之间增加一层封装。用drive接口来统一操作不同类型的数据库。处理返回数据有3种方式:1. Exec/ExecContext->Result 2. Query / QueryContext -> Rows(Columns) 3. QueryRow/QueryRowContext->Row(Rows简化,单行)
评论
分布式数据解决了单体数据库难以扩展的问题。利用存储池(storage pool)技术,数据库不再感知实际的物理资源,不需要知道存储池的细节。
评论
Elasticsearch是面向文档存储的,管理单元不是表,而是index(文档的集合)。文档可以序列化成JSON。存储和构建索引的能力是依赖Lucene引擎。详情可读Lucene的源码。即使搜索引擎也可以看做非关系型数据库。
MongoDB存储构建索引能力依赖WiredTiger引擎(纯C实现的有点难)
评论
《带你认识存储 & 数据库》存储和数据库有什么不同?存储(Storage):存储通常是指计算机用于保存和持久化数据的硬件设备或介质,如硬盘驱动器(HDD)、固态硬盘(SSD)、USB闪存驱动器等。存储设备用于存储操作系统、应用程序和用户数据,包括文件、文档、图片、视频等。它们的主要目的是提供大容量的数据存储,并且数据可以长期保留,即使计算机关闭也不会丢失。
数据库(Database):数据库是一种结构化的数据组织和存储系统,用于有效地存储、管理和检索大量数据。数据库可以是关系型数据库(如MySQL、Oracle、SQL Server)或非关系型数据库(如MongoDB、Redis、Cassandra)。数据库的主要目的是提供高效的数据访问和管理,支持事务处理,允许多个用户同时访问,保证数据的一致性、完整性和安全性。
展开
评论
《深入浅出 RPC 框架》RPC的过程:函数映射,数据转字节流,网络传出。RPC需要解决的问题:服务端宕机处理,应对网络异常保证信息可达到(超时,限流,熔断),客户端请求激增时应对措施(负载均衡)。当微服务过微,多达几万个微服务时,传输和系列化过多造成浪费了资源。采用合并部署。容器调度时候检测到某服务亲和性强,给这些服务打上标签,部署到同一个物理机上,从而转化成本地IPC调用。继续改造共享内存的通信协议。
展开
1
2023.8.2 第六节课《将我的服务开放给用户》 概念为主,就当复习八股了。1. 复习了DNS解析的过程。2.了解了一些HTTPS的技术细节,SSL握手。3.CDN静态加速,缓存静态文件。4.DCDN路由优化,传输优化等智能选路技术实现动态加速。5. 四层负载均衡解耦VIP虚拟IP和RS物理机。FULLNAT的实现方式,详情查dpdk官网。6.七层负载均衡NGINX起到应用层网关的作用。课程里面说的学员手册到底在哪里啊?
展开
评论
8.1 第五节课《打开抖音会发生什么》前两小节,网络的接入和传输基本上就是对《网络是如何连接的》这本小册子的一个概括。第三小节提速部分有点进阶了。第四节优化和容灾过程听得我一愣一愣的。当一个后端工程师压力好大啊……
评论
今天复习了HTTP协议。走了一遍请求的流程,以及实现一个HTTP框架的要点。框架也要遵循分层的原则,每一层考虑的重点各不相同。应用层API要简洁易理解,中间件洋葱模型,路由设计使用前缀匹配树。协议层抽象出合适的借口context和connection要显示的传给下层。网络层有经典的BIO和NIO模型。对于我这个小白来说是个不错的科普,想要了解细节还需要花挺多时间的。
评论
今天学了go mod依赖管理,单元测试和基准测试的基本概念和用法。现在觉得范例详细一点还挺好的。有老师讲解的情况下,样例程序越复杂能学到的东西就越多。第一次听起来可能有点头大,但是复习或者以后找代码参考的时候真的会庆幸。
评论
后端小白表示:SOCKS5的例子有点没搞懂。感觉实例程序的难度跨越有点大……涉及到的工具也比较多,一眨眼就生成好go代码了,跟着操作手忙脚乱的。不跟着走一遍又觉得听了就过了没学到什么……
评论
之前学过一点点go语言,但是平时没有使用场景,基本上都还给老师了……重新看书复习一下,加油加油~
评论
下一页
个人成就
文章被阅读 199
掘力值 20
收藏集
1
关注标签
6
加入于