09 2019 档案

摘要:这篇博客是笔者学习慕课网若鱼老师的《Java秒杀系统方案优化 高性能高并发实战》课程的学习笔记。若鱼老师授课循循善诱,讲解由浅入深,欢迎大家支持。 本文记录课程中的注意点,方便以后code review。此外,本文将注意点相关的优质讲解链接在了一起,方便初学者系统学习。 本文并非单纯介绍秒杀系统特有 阅读全文
posted @ 2019-09-27 08:56 全菜工程师小辉 阅读(934) 评论(0) 推荐(1)
摘要:自定义注解+拦截器的优势 类似用户权限或者接口限流的需求,但并不是所有操作或者接口需要。可以使用过滤器或者拦截器,但这样就必须在配置文件里加上所有方法或者使用通配符。 所以可以采用一种比较简单灵活的方式:采用自定义注解加Spring拦截器来实现。 编写示例 例如我们现在要做个接口的计数器限流,只需要 阅读全文
posted @ 2019-09-25 07:12 全菜工程师小辉 阅读(543) 评论(0) 推荐(1)
摘要:本文将按照声明式事务的五个特性进行介绍: 1. 事务传播机制 2. 事务隔离机制 3. 只读 4. 事务超时 5. 回滚规则 Spring事务传播机制 事务的特性 原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Con 阅读全文
posted @ 2019-09-24 13:36 全菜工程师小辉 阅读(119046) 评论(5) 推荐(28)
摘要:缓存由于其高并发和高性能的特性,在项目中被广泛使用。读缓存流程如下图: 双写一致性有以下三个要求: 1. 缓存不能读到脏数据 2. 缓存可能会读到过期数据,但要在可容忍时间内实现最终一致 3. 这个可容忍时间尽可能的小 要想同时满足上面三条,可以采用读请求和写请求串行化,串到一个内存队列里去,这样就 阅读全文
posted @ 2019-09-23 09:45 全菜工程师小辉 阅读(4202) 评论(1) 推荐(3)
摘要:经历了一个PHP服务器项目,手动编译部署PHP,Swoole环境太让人郁闷了,所以尝试过两种不错的方法,分享出来方便同样经历痛苦的coder。 第一种方式: 1. 安装LNMP按照这里的步骤执行, "网址戳我" , 如果服务器原本有mysql或者nginx,最好先自行清理下。笔者的服务器原来有损坏的 阅读全文
posted @ 2019-09-20 10:58 全菜工程师小辉 阅读(511) 评论(0) 推荐(0)
摘要:在并发编程中很容易出现并发安全问题,最简单的例子就是多线程更新变量i=1,多个线程执行i++操作,就有可能获取不到正确的值,而这个问题,最常用的方法是通过Synchronized进行控制来达到线程安全的目的。但是由于synchronized是采用的是悲观锁策略,并不是特别高效的一种解决方案。实际上, 阅读全文
posted @ 2019-09-18 12:36 全菜工程师小辉 阅读(1209) 评论(0) 推荐(0)
摘要:Angular8正式发布了,Java13再过几个月也要发布了,技术迭代这么快,框架的复杂度越来越大,但是原理是基本不变的。所以沉下心看清代码本质很重要,这次给大家带来的是手写RPC框架。 完整代码以及说明文档, "点我跳跃~" 1. 什么是RPC? RPC是指远程过程调用,也就是说两台服务器A,B, 阅读全文
posted @ 2019-09-17 08:54 全菜工程师小辉 阅读(732) 评论(2) 推荐(1)
摘要:有关TCP你不能不知道的三次握手和四次挥手问题, "点我跳转" 流量控制 1. 滑动窗口 数据的传送过程中很可能出现接收方来不及接收的情况,这时就需要对发送方进行控制以免数据丢失。利用滑动窗口机制可以很方便地在TCP连接上对发送方的流量进行控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不 阅读全文
posted @ 2019-09-16 08:30 全菜工程师小辉 阅读(1286) 评论(0) 推荐(2)
摘要:TCP的整个连接过程 如果没有基础的话,直接看这张图或者网络上各种文字描述,十分生涩,所以先看懂接下来的握手挥手的图,理解之后,再看这个有限状态机就感觉原来如此简单。 三次握手 握手过程 第一次握手:主机A发送位码为syn=1,随机产生seq number=x的数据包到服务器,客户端进入SYN_SE 阅读全文
posted @ 2019-09-12 08:10 全菜工程师小辉 阅读(899) 评论(1) 推荐(1)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 HTTP版本简史 HTTP/0.9: (1991年)基于GET请求的文本传输协议 HTTPS: (1994年)安全的HTTP传输协议 HTTP/1.0: (1996年)增加HTTP头、扩展PUT、POST等方法 HT 阅读全文
posted @ 2019-09-11 11:38 全菜工程师小辉 阅读(981) 评论(0) 推荐(1)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。 所以更多时候,我们优先考虑哨兵(sentinel) 模式。 Redis sentinel是Redis 阅读全文
posted @ 2019-09-10 08:59 全菜工程师小辉 阅读(4800) 评论(1) 推荐(1)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 在Redis集群中,让若干个Redis服务器去复制另一个Redis服务器,我们定义被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),这种模式叫做主从复制模式。 数据 阅读全文
posted @ 2019-09-06 08:48 全菜工程师小辉 阅读(1655) 评论(0) 推荐(0)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉~ Redis提供了将数据定期自动持久化至硬盘的能力,包括RDB和AOF两种方案,两种方案分别有其长处和短板,可以配合起来同时运行,确保数据的稳定性。 RDB 保存数据快照至一个RDB文件中,用于持久化。RDB操作和Mysql Dump相似。 执行方式 s 阅读全文
posted @ 2019-09-05 13:36 全菜工程师小辉 阅读(4710) 评论(0) 推荐(1)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 应用场景 缓存系统:用于缓解数据库的高并发压力 计数器:使用Redis原子操作,用于社交网络的转发数,评论数,粉丝数,关注数等 排行榜:使用zset数据结构,进行排行榜计算 实时系统:使用Redis位图的功能实现布隆 阅读全文
posted @ 2019-09-04 08:01 全菜工程师小辉 阅读(611) 评论(0) 推荐(0)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文,这个相关信息就是session。这样,当用户在应用程序的Web页之间跳转时,存储在session对象中的变 阅读全文
posted @ 2019-09-03 08:48 全菜工程师小辉 阅读(1196) 评论(0) 推荐(0)
摘要:更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 存储位置 三者都是应用在web中对http无状态协议的补充,达到状态保持的目的 cookie:cookie中的信息是以键值对的形式储存在浏览器中,而且在浏览器中可以直接看到数据。下图为safari的cookie截图: 阅读全文
posted @ 2019-09-02 07:23 全菜工程师小辉 阅读(789) 评论(1) 推荐(1)