获得徽章 1
#青训营笔记创作活动#
12.14 day7

http中服务器向客户端推送流消息的方法: 轮询、eventstream、websocket

解决粘包: 用上层协议重新包装
展开
评论
#青训营笔记创作活动#
12.13 day6

一般dhcp获得ip有四个阶段: discover,offer,request,ack。request用于确认offer。其中,discover和request使用广播,offer可以广播或单播,具体由discover参数决定。
discover和offer阶段是不必要的。
收到ack后,客户端会广播3次arp消息,确保IP地址不冲突。
展开
评论
#青训营笔记创作活动#
12.12 day5

开头图文无关。
最左匹配: 对于联合索引,查询时应尽量选索引最左侧字段。这是由b+树的性质决定的。
select *: 慎用。尤其是使用orm时。
函数索引: 索引存字段的函数值
like: 前缀模糊时不走索引
or: 或条件的两边都要加索引
in: 结果集较大时不走索引
orderby: 非聚簇索引会全表查询
索引下推: 使用联合索引的字段过滤结果集。
展开
评论
#青训营笔记创作活动#
12.11 day4
编程思维确实重要。

DDD: 领域驱动设计。第一次接触时给我的感觉就是多了一堆object,比如DTO, DAO, BO, VO等等。我觉得DDD最重要的思想是不要随意泛化,非必要不抽象。

微服务: 把程序独立为完成单一功能或一组紧密相关功能的服务,然后把每个服务变成单一程序,便于水平扩展。

实际上这篇文章几乎没有谈到Golang。


展开
评论
#青训营笔记创作活动#
12.10 day3
表索引如果使用b+树,那么高度最好不要超过三层。否则硬盘io次数过多。
一般一页存一个节点的数据。可以据此推算出一个表在保证索引查询性能时的最大数据条数。这个数据与表的字段信息有关。但对于非聚簇索引,叶子结点只存索引列和主键。
展开
评论
#青训营笔记创作活动#
12.9 day2
但是我用vscode
虽然vscode对kotlin的支持还很烂

keypromoterx: 虽然我基本不用快捷键。不然我就用vim了。

lombok: long live the kotlin.

mybatisx: 自动生成sql

restfulfastrequest: 比postman多了直接与代码交互的能力。

plantuml, sequencediagram: uml生成。

gsonformatplus: 根据json生成类。

jsonparser: 给人看json用的

stringmanipulation: refactor?

mapstruct: ddd tool, 自动生成几个o之间的转换

alibaba: 什么软广

其他: 略

vuejs: idea插件里面怎么蹦出来个这东西 怎么看都像是webstorm里面的


展开
评论
#青训营笔记创作活动#
12.8 day1
(为什么要写日期难道帖子没有createAt么)
计数器: 来请求时看计数,满了拒绝,否则加一
用个线程开定时任务,在固定时间点清零counter
可能会在时间点边界承受大量请求。

滑动窗口: 把计数器方案的时间间隔减少,并额外记录时间段内的请求数,定时任务把counter值减少最远时间段的请求数而不是清零。但这样比较复杂。另一种简单的做法是改变速率单位,比如60req/min改为1req/s。

漏桶: 把请求塞有界队列(满了直接丢弃),用另一个线程以恒定速率处理(或者转发)队列的请求。
请求的处理速率是恒定的。

令牌桶: 存上次请求的时间戳和令牌数,来请求时计算桶内新增令牌数(current_time-last_time)*gen_rate,加上上次的令牌数为现在令牌数,但不能超过桶能容纳的最大令牌数。然后令牌数减一。更新时间戳。令牌数低于一个阈值时拒绝请求。

分布式: 计数器,但是请求次数存Redis
展开
评论
个人成就
文章被点赞 9
文章被阅读 974
掘力值 36
收藏集
0
关注标签
4
加入于