获得徽章 1
- #青训营笔记创作活动#
1月15日 打卡day04
今日学习
电脑插上网线,联网后会通过DHCP协议动态申请一个IP,同时获得子网掩码,路由器地址等信息。
DHCP分为四个阶段,分别是 Discover,Offer, Request和ACK。如果曾经连过这个网,机器会记录你上次使用的IP,再次连接时优先使用原来的那个IP,因此只需要经历第三第四阶段。
DHCP是应用层协议,考虑到需要支持广播功能,底层使用的是UDP协议,而不是TCP协议。
DHCP分配下来的IP是有可能跟某台手动配置的IP地址重复的。
DHCP得到IP之后还会发3次无偿ARP通告,在确认没有冲突后开始使用这个IP。展开评论点赞 - #青训营笔记创作活动#
1月14日 打卡day3
今日学习
DDD (Domain Driven Design):领域驱动设计。
1. 核心思想
DDD的核心思想就是避免业务逻辑的复杂性和技术实现的复杂性耦合在一起。
明确业务复杂性和技术复杂性的边界,隔离双方的复杂性,站在更高的角度实现解耦。
2. 最大价值
DDD最大的价值就是梳理业务需求,抽象出一个个“领域”,并形成各个领域之间的接口交互,方便团队协作,推进项目前进。
3. 必懂概念
领域
领域就是一种边界的划分,首先举一些生活中的例子:
比如互联网、机械制造、种植业、养殖业等等这就是不同的领域;
再比如互联网中的:移动互联网、互联网金融、互联网健康这也是不同的领域;
我们把领域抽象一下,领域还可以这样划分:
核心领域:业务系统中的核心价值
通用领域:提供通用服务的领域,比如消息系统
支撑领域:作为基础设施,专注于业务系统中的某个重要业务,比如日志系统展开评论点赞 - #青训营笔记创作活动#
1月13 打开day02
今日学习
插件总结:
1. Key Promoter X:提示使用该功能的快捷键
2. Lombok:编译时自动生成各种方法(getter、setter等)
3. MyBatisX:快速SQL定位和生成
4. RestfulFastRequest:在IDEA内更快更高效地调试API!
等等展开评论点赞 - #第五届青训营阅读打卡#
1月12日
计数器:
优点:固定时间段计数,实现简单,适用不太精准的场景;
缺点:对边界没有很好处理,导致限流不能精准控制。
滑动窗口:
优点:将固定时间段分块,时间比“计数器”复杂,适用于稍微精准的场景;
缺点:实现稍微复杂,还是不能彻底解决“计数器”存在的边界问题。
漏桶:
优点:可以很好的控制消费频率;
缺点:实现稍微复杂,单位时间内,不能多消费,感觉不太灵活。
令牌桶:
优点:可以解决“漏桶”不能灵活消费的问题,又能避免过渡消费,强烈推荐;
缺点:实现稍微复杂,其它缺点没有想到。
Redis + Lua 分布式限流:
优点:支持分布式限流,有效保护下游依赖的服务资源;
缺点:依赖 Redis,对边界没有很好处理,导致限流不能精准控制。
展开评论点赞