架构
Monday_@@
java开发的老司机
展开
-
nginx 限制请求方式
$request_length : 请求长度$request_method : 请求方式$status : HTTP响应代码 (1.3.2, 1.2.2)$nginx_version :NGINX版本$arg_name :请求中参数名server {...if ($request_method !~* GET|POST) { return 403; }或者if ($request_method !~ ^(GET|POST)$ )...原创 2020-05-09 11:04:07 · 3153 阅读 · 0 评论 -
nginx 系统错误统一重定向到错误页面
server{ #监听8081端口 listen 8081; #对应的域名,把baofeidyz.com改成你们自己的域名就可以了 server_name localhost; proxy_intercept_errors on; error_page 404 /404.html; location = /404.html { # 404.html 所在.原创 2020-05-09 10:54:43 · 1875 阅读 · 0 评论 -
Jmeter入门之测试文件上传和下载接口
一、JMeter介绍JMeter是Apache组织开发的开源项目,设计之初是Web/HTTP测试,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试。它能够很好的支持各种常见接口,如HTTP(S)、WebService、JDBC、JAVA、FTP等,并以多种形式展现测试结果。二、JMeter安装和启动2.1、JMeter软件网盘提取链接:https:/...原创 2020-05-08 16:54:32 · 1949 阅读 · 0 评论 -
Redis 哨兵机制
目录什么是Redis什么是哨兵机制哨兵机制作用什么是RedisRedis 是一个基于内存的高性能非关系型数据库,存储格式为key-value,可以存储的数据类型有五种:String类型、List类型、Set类型(有序可重复)、Zset类型(无序不可重复)、Map类型;Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局...原创 2019-08-17 22:03:06 · 130 阅读 · 0 评论 -
缓存穿透
目录什么是缓存穿透如何避免缓存穿透布谷鸟过滤和布隆过滤的对比:什么是缓存穿透缓存穿透是指查询一个一定不存在的数据,当缓存中查不到的时候就要去数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。如果有人利用不存在的key频繁攻击我们的应系统,就可能导致系统宕机等问题,这就是系统漏洞。如何避免缓存穿透布隆过滤:将所有可...原创 2019-08-28 19:29:49 · 191 阅读 · 0 评论 -
缓存雪崩
目录什么是缓存雪崩如何避免缓存雪崩什么是缓存雪崩缓存雪崩是指在我们设置缓存时设置了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到数据库,那么数据库瞬时压力过重导致雪崩。如何避免缓存雪崩随机失效时间:即在给数据设置失效时间时增加一个随机时间(1-5分钟),这样就不会导致缓存同时失效。加锁(队列):给线程加锁,保证缓存是单线程进行,如果缓存失效,则请求排队到数据...原创 2019-08-29 21:02:02 · 481 阅读 · 0 评论 -
缓存击穿
目录什么是缓存击穿如何避免缓存击穿什么是缓存击穿缓存击穿指请求到缓存中查询不存在的数据(缓存过期),但是数据库中存在,那么由于并发用户较高,大量请求在缓存中没有获取到数据,同时去请求数据库,从而引起数据库压力瞬间增加,造成数据库压力过大。如何避免缓存击穿一、设置一些热门数据永不过期;二、互斥加锁。...原创 2019-08-31 12:57:41 · 117 阅读 · 0 评论 -
HashMap的扩容机制---resize()
HashMap的扩容机制---resize()什么时候扩容:当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值(知道这个阈字怎么念吗?不念fa值,念yu值四声)---即当前数组的长度乘以加载因子的值的时候,就要自动扩容啦。扩容(resize)就是重新计算容量,向HashMap对象里不停的添加元素,而HashMap对象内部的数组无法装载更多的元素时,对象就需要扩大数组的长度,...转载 2019-09-12 09:38:14 · 223 阅读 · 0 评论 -
分布式事务解决方案
目录一、什么是分布式二、两段提交(2PC)三、补偿事务(TCC)四、本地消息表一、什么是分布式目前的数据库仅支持单库事务,并不支持跨库事务;而微服务架构则是将一个大型系统往往由若干个子系统构成,每个子系统都有单独的数据库,有些业务需要在多个子系统中共同执行,可能还需要在同一个事务中完成;这种需要解决跨数据库的事务就是分布式事务。二、两段提交(2PC)2PC两段提交是...原创 2019-10-24 08:26:06 · 146 阅读 · 0 评论 -
高并发解决方案
目录一、基于服务器二、基于数据库一、基于服务器1、负载均衡:软负载均衡和硬负载均衡2、分布式3、集群二、基于数据库1、分表分库2、读写分离3、数据缓存(页面静态化等等)4、分布式5、集群...原创 2019-09-15 18:04:44 · 272 阅读 · 0 评论 -
Redis持久化方式
目录Redis简介:Redis持久化方式有两种:RDB:AOF:RDB和AOF如何选择Redis简介:Redis是一种基于内存操作的键值对非关系型数据库,其操作均在内存中完成;可以存储五种数据类型:String类型、List类型(有序可重复)、set类型(无序无重复)、zset类型、hash类型。Redis持久化方式有两种:为什么要持久化?懂一点电脑知识的人都会...原创 2019-08-02 20:03:11 · 116 阅读 · 0 评论 -
redis 分布式锁实现方式
目录一、分布式锁一般有三种实现方式:二、数据库乐观锁(待补充)三、基于Redis的分布式锁四、基于ZooKeeper的分布式锁(贴一下别人的帖子)一、分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。为了确保分布式锁可用,至少要确保同时满足以下四个条件:1、互斥性。在任意时刻,只有一个客户...原创 2019-07-29 20:00:30 · 516 阅读 · 0 评论 -
用Redis轻松实现秒杀系统(转)
转自:https://blog.csdn.net/shendl/article/details/51092916导论曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。秒杀系统的架构设计秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路:写入内存而不是写入硬盘异步处理...转载 2019-07-29 14:55:07 · 160 阅读 · 0 评论 -
阿里面试最最俱全的,50道Redis面试题(转)
原文链接:https://juejin.im/post/5c9b344c51882530c6308b32花了大量时间整理了这套Redis面试题首发50题,绝无仅有,从入门到精通从基础,高级知识点,再到集群,运维,方案…弄明白了这些题可以说可以成为面霸了面试官都得折服,Redis学得怎么样,都来检验下吧1、什么是Redis?Redis本质上是一个Key-Value类型的内...转载 2019-08-04 11:14:27 · 240 阅读 · 0 评论 -
Redis 主从复制
目录什么是主从复制:主从复制的方式:主从复制的工作原理:主从复制的作用:主从复制的配置:主从复制中key过期问题什么是主从复制:Redis主从复制是指可以让副服务器(Slave)能够精确复制主服务器(MAster)的数据,副服务器(Slave)也可以是多台服务器。如下图所示:其中,Slave服务器也可以有自己的Slave服务器,这种称为Sub-Slave;S...原创 2019-08-03 12:54:06 · 140 阅读 · 0 评论 -
浅谈Nginx负载均衡原理与实现
1 负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。2 测试环境由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。测试域名 :a.comA服务器IP :192.16...转载 2019-07-22 16:08:38 · 1111 阅读 · 0 评论 -
Dubbo 一些你不一定知道但是很好用的功能
dubbo功能非常完善,很多时候我们不需要重复造轮子,下面列举一些你不一定知道,但是很好用的功能;直连Provider在开发及测试环境下,可能需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连模式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表(说明:官方只建议开发&测试环境使用该功能),用法如下,ur...转载 2019-07-22 16:04:11 · 193 阅读 · 0 评论 -
软负载和硬负载的区别分析
什么是软负载均衡及常用方式?在系统服务器上安装相应负载均衡软件,进行相关的配置,达到均衡负载的目的。它基于特定的使用环境、配置简单、使用灵活、成本较低,能够解决大部分需求问题。常用的软件有:Nginx什么是硬负载均衡及常用的设备?硬件负载均衡是直接在服务器和外部网络间安装负载均衡设备。常用的硬件设备有:F5什么是Nginx?是一个高性能的 HTTP 和 反向代理 服务器,也是一...原创 2019-07-12 18:26:41 · 17228 阅读 · 3 评论 -
分布式session共享
什么是session:服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话并销毁。分布式session:以往单服务器的项目,我们不需要考虑session共享问题,因为session也在该服务器...原创 2019-06-30 13:03:00 · 734 阅读 · 0 评论 -
redis 作用和应用场景等总结篇
目录一、什么是redis二、应用场景三、优点四、redis持久化的几种方式五、memecache和redis的区别六、redis 常见的性能问题以及解决方案七、redis 如何做内存优化八、redis 如何实现分布式锁以及分布式锁的缺陷一、什么是redis Redis 是一个基于内存的高性能非关系型数据库,存储格式为key-value,可以存储的数据类型...原创 2019-07-28 10:04:46 · 3000 阅读 · 0 评论 -
java性能优化细节
1、尽可能的在合适的场景下使用单例模式;2、尽量避免随意使用静态变量;3、尽量使用final修饰符;4、尽可能的使用局部变量;5、慎用synchronized,尽量减小synchronize的方法;6、尽量不使用finalize方法;7、尽量使用基本数据类型代替对象;8、多线程在未发生线程安全的前提下应该尽量使用HashMap和ArrayList;9、尽量合理的创建...原创 2019-06-05 22:35:29 · 152 阅读 · 0 评论 -
java开发工程师—如何让你的简历脱颖而出
最近我在帮朋友的公司招人,招人的第一步是要筛选简历,在这过程中,我发现虽然能收到很多简历,但实际能通过筛选能进入到技术面试流程的简历不多,估计10份里不会超过4份能通过筛选。 如果没法通过技术面试,那么候选人尚且能收集面试题,回家继续准备,毕竟他和面试官也交流过,也不算没收获,但对于这些没法通过筛选的简历,简历的主人往往是无从得知的(公司不会主动通知),所以他们依然会混混沌沌,可以预想,...转载 2019-06-12 11:07:02 · 48908 阅读 · 4 评论 -
TCP的三次握手与四次挥手理解及面试题(最全面)
转自:https://blog.csdn.net/qq_38950316/article/details/81087809本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中...转载 2019-07-29 14:34:45 · 163 阅读 · 0 评论