linux
腌制99%的咸鱼
这个作者很懒,什么都没留下…
展开
-
8、防刷限流技术
10.1 本章目标掌握验证码生成与验证技术掌握限流原理与实现掌握防黄牛技术10.2 验证码技术包装秒杀令牌前置,需要验证码来错峰数学公式验证码生成器Util包内的CodeUtilpackage com.miaoshaproject.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.awt.i原创 2020-09-14 01:13:26 · 255 阅读 · 0 评论 -
7、流量削峰技术
本章目标掌握秒杀令牌的原理和使用方式掌握秒杀大闸的原理和使用方式掌握队列泄洪的原理和使用方式抛缺陷:秒杀下单接口会被脚本不停的刷秒杀验证逻辑和秒杀下单接口强关联,代码冗余度高秒杀下单和对活动是否开始是没有关联的,接口关联过高秒杀验证逻辑复杂,对交易系统产生无关联负载9.2秒杀令牌实现秒杀接口需要依靠令牌才能进入秒杀的令牌由秒杀活动模块负责生成秒杀活动模块对秒杀令牌生成全权处理,逻辑收口秒杀下单前需要先获得秒杀令牌PromoService接口上实现generate原创 2020-09-13 18:55:18 · 292 阅读 · 0 评论 -
6、交易性能优化技术之事务型消息
8.1 事务型消息(上)回顾整个下单流程,我们之前做了下单减缓存库存优化以及回补库存的操作,但是因为整个下单(OrderServiceImpl.java中的createOrder方法)是属于一个transaction事务,如果用户下单成功,会进行减库存的操作(在redis中),但是之后订单入库或返回前端的过程中失败,会进行事务回滚,之前操作失效数据库操作回滚,但是此时的redis不会回滚,之后会异步写入数据库,会导致库存还是减少了,会导致订单不出现,但是库存会减少的现象。这样会导致少卖,有可能造成库存堆积原创 2020-09-12 01:14:19 · 504 阅读 · 3 评论 -
5、交易性能优化技术之缓存库存
7.1 交易性能瓶颈交易验证完全依赖数据库库存行锁后置处理逻辑每次做交易,至少有六次的数据库io操作7.2-7.3 交易验证优化用户风控策略优化:策略缓存模型化在开始交易后,针对活动实时信息和用户实时信息的验证,目的是为了风控策略,检查用户账号是否异常,是否异地登陆,策略是:通过异步的方式将用户模型写入缓存,与实时信息做一致性检验,做到风控策略活动校验策略优化:引入活动发布流程,模型缓存化,紧急下线能力实时活动的缓存存在一个问题:如果后台修改活动信息(修改活动结束时间),但redis原创 2020-09-11 01:29:36 · 525 阅读 · 0 评论 -
4、查询性能优化技术之页面静态化
6.1-6.2 静态资源CDN引入用户将静态资源数据请求到ECS服务器,ECS服务器解析到腾讯云的CDN中,CDN可以理解为一个无限大的内容磁盘缓存,本身没有文件存储。当用户访问getItem的一个静态资源文件的时候,会根据路由规则查看本地是否有这样的文件,如果有直接返回,没有就回源到源站,回源到下面的OSS中获取静态资源文件。CDN一边返回对应的文件,一边将文件按照http指示的生命周期缓存起来,以便下次用户访问时,直接返回。CDN有很多的加速节点,当用户请求CDN的时候,CDN会返回一个就近的节点原创 2020-09-09 23:34:03 · 342 阅读 · 0 评论 -
3、查询性能优化技术之多级缓存
5.1本章目标5.2缓存设计原则概览缓存设计原则:用快速存取设备,用内存将缓存推到离用户最近的地方脏缓存清理我们的项目采用多级缓存的架构第一级 Redis缓存Redis缓存有集中管理缓存的特点,是常见NoSql数据库组件第二级 热点缓存本地缓存热点数据存到JVM本地缓存中第三级 nginx proxy cache缓存所有数据最后都会在nginx服务器上做反向代理,nginx服务器也可以开启proxy cache缓存第四级 nginx lua缓存nginx定制lua脚本做nginx原创 2020-09-09 20:25:43 · 771 阅读 · 0 评论 -
2、分布式扩展
本章目标nginx反向代理均衡分布式会话管理使用redis实现分布式会话存储1.单机容量问题,水平扩展方案引入引入nginx反向代理负载均衡上一章我们看到当单机系统时候,容量有限,响应时间变长TPS上不去的问题。nginx反向代理的功能就是代理后端Tomcat服务器集群,以统一域名方式来访问单机容量问题,水平扩展nginx反向代理负载均衡配置2.数据库远程开放端口连接这次的水平扩展指的是对应用系统程序扩展,而mysql数据库只有一个,用来开放远端连接(mysql读写分离、分库分表等方法原创 2020-08-30 14:35:41 · 444 阅读 · 0 评论 -
1、秒杀系统的云端部署
1.安装jdk(1)使用rpm后缀的文件,进行安装rpm -ivh 文件名文件自动安装在/usr/java文件夹下(2)安装完成之后进入根目录cd ~vim .bash_profile增加以下命令JAVA_HOME=/usr/java/jdk1.8.0_65PATH=PATH:PATH:PATH:JAVA_HOME/bin之后使用source .bash_profile更新环境变量,使得系统使用的java锁定在这个版本2.安装mysql安装mysql的所有依赖原创 2020-08-28 18:19:30 · 385 阅读 · 0 评论 -
客户端连接腾讯云服务总是自动断开连接解决办法
客户端连接腾讯云服务总是自动断开连接解决办法1.找到sshd_config配置文件vim /etc/ssh/sshd_config在文件中找到#ClientAliveInterval 0#ClientAliveCountMax 3去掉注释并且修改ClientAliveInterval 30ClientAliveCountMax 86400这两行的意思分别是1、服务端每隔多少秒向客户端发送一个心跳数据2、客户端多少次没有相应,服务器自动断掉连接2.重启sshd服务serv原创 2020-08-28 16:53:35 · 1713 阅读 · 0 评论 -
SSH免密登陆
在Hadoop启动以后,namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。1.生成SSH密钥输入命令ssh-keygen2.拷贝公钥ssh-copy-id ip/主机名目的地址使用ip地址或者主机名主机名在/etc/hosts中添加映射3.测试是否配置成功ssh ip/主机名...原创 2020-08-10 22:07:57 · 123 阅读 · 0 评论 -
在配置SSH过程中,The authenticity of host ‘XXXX‘ can‘t be established错误解决
root修改/etc/ssh/ssh_config文件的配置在这个文件后面添加StrictHostKeyChecking noUserKnownHostsFile /dev/null原创 2020-08-10 21:42:57 · 1458 阅读 · 0 评论