12 2020 档案

摘要:早期的计算机中由于CPU和内存的速度是差不多的,所以CPU是直接访问内存地址的。而在现代计算机中,CPU指令的运行速度远远超过了内存数据的读写速度,为了降低这两者间这高达几个数量级的差距,所以在CPU与主内存之间加入了CPU高速缓存。 阅读全文
posted @ 2020-12-18 08:39 周二鸭 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 首先Java里的线程利用的线程模型是KLT,这带来了许多好处,比如线程的阻塞不会带来进程的阻塞,能更加高效地利用CPU的资源等。但这也意味着在Java里的线程的创建和销毁是一个相对偏且消耗资源的操作... 阅读全文
posted @ 2020-12-11 08:16 周二鸭 阅读(419) 评论(0) 推荐(1) 编辑
摘要:一、静态代理&动态代理 1. 静态代理 我们先假设现在有怎么一个需求,要求你在不改动原有代码的情况下在所有类的方法前后打印日志。我们很容易想到静态代理,具体做法如下: 为现有的所有类都编写一个对应的代理类,并且还需要让代理类与原有类实现相同的接口; 在创建代理对象时,通过构造器传入一个目标对象,然后 阅读全文
posted @ 2020-12-10 22:55 周二鸭 阅读(388) 评论(0) 推荐(0) 编辑
摘要: HTTP全称`Hyper Text Transfer Protocol`,即超文本传输协议。HTTP是一个应用层协议,可视为一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。 阅读全文
posted @ 2020-12-10 08:33 周二鸭 阅读(2184) 评论(0) 推荐(0) 编辑
摘要:一、饿汉单例 1. 静态变量实现 public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInsta 阅读全文
posted @ 2020-12-09 23:02 周二鸭 阅读(250) 评论(0) 推荐(0) 编辑
摘要: TCP是面向连接的协议,这是因为在一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必须先相互“握手”,即它们必须相互发送某些预备报文段,以建立确保数据传输的参数。 阅读全文
posted @ 2020-12-09 21:47 周二鸭 阅读(10639) 评论(1) 推荐(2) 编辑
摘要:Redis经常用于系统中的缓存,这样可以解决目前IO设备无法满足互联网应用海量的读写请求的问题。 一、缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起id为-1的数据或者特别大的不存在的数据。有可能是黑客利用漏洞攻击从而去压垮应用的数据库。 1. 常见解决方案 对于缓存穿 阅读全文
posted @ 2020-12-09 08:25 周二鸭 阅读(673) 评论(0) 推荐(0) 编辑
摘要:从不同角度分析垃圾收集器,可以将其划分为不同的模型。按线程数分,可以分为串行垃圾回收器和并行垃圾回收器;按照工作模式分,可以分为并发式垃圾回收器和独占式垃圾回收器; 阅读全文
posted @ 2020-12-09 00:14 周二鸭 阅读(670) 评论(0) 推荐(0) 编辑
摘要:一、可靠传输 本篇文章主要讲 RabbitMQ 如何保证消息的可靠传输,所以在讲RabbitMQ的实现之前,我们需要先来搞懂一个问题,就是什么是消息的可靠传输。 在 RabbitMQ 中,一个消息从产生到被消费大致需要经过三个步骤,即生产者生产消息,消息投递到 RabbitMQ,RabbitMQ 再 阅读全文
posted @ 2020-12-08 12:30 周二鸭 阅读(638) 评论(0) 推荐(0) 编辑
摘要:RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能、健壮、可伸缩性出名的Erlang语言开发,并继承了这些优点。业界有较多项目使用RabbitMQ,包括OpenStack、Spring、Logstash等。 阅读全文
posted @ 2020-12-05 22:49 周二鸭 阅读(2012) 评论(0) 推荐(1) 编辑
摘要:在高并发的分布式系统,如大型电商系统中,由于接口 API 无法控制上游调用方的行为,因此当瞬间请求量突增时,会导致服务器占用过多资源,发生响应速度降低、超时乃至宕机,甚至引发雪崩造成整个系统不可用...... 阅读全文
posted @ 2020-12-01 01:08 周二鸭 阅读(1705) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示