摘要: 概述 上一篇文章我们已经了解了 Java 的这几块内存区域。对于垃圾回收来说,针对或者关注的是 Java 堆这块区域。因为对于程序计数器、栈、本地方法栈来说,他们随线程而生,随线程而灭,所以这个区域的内存分配和回收可以看作具备确定性。对于方法区来说,分配完类相关信息后内存大小也基本确定了,加上在 J 阅读全文
posted @ 2020-02-02 17:14 当年明月123 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 概述 如果在大学里学过或者在工作中使用过 C 或者 C++ 的读者一定会发现这两门语言的内存管理机制与 Java 的不同。在使用 C 或者 C++ 编程时,程序员需要手动的去管理和维护内存,就是说需要手动的清除那些不需要的对象,否则就会出现内存泄漏与内存溢出的问题。 如果你使用 Java 语言去开发 阅读全文
posted @ 2020-02-02 11:31 当年明月123 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 什么是 MQ? Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是——MQ 是异步的,用来解耦的,但是这个只是 MQ 的效果而不是目的。MQ 真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的、更 阅读全文
posted @ 2020-02-01 17:39 当年明月123 阅读(418) 评论(1) 推荐(0) 编辑
摘要: 我们在开发高并发系统时有三把利器来保护系统:缓存,降级和限流。这边文章来重点聊一聊降级。当访问量剧增,服务出现问题(响应时间慢或者不响应)或者非核心业务影响到核心流程时,仍然需要保证服务是可用的,即使是有损的服务。 系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。下面提供几种实际工 阅读全文
posted @ 2020-02-01 16:12 当年明月123 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 为了保证业务在高峰期的可用性,主流系统都会配备服务降级的工具,而 限流 就是目前系统最常采用的方案之一。限流即流量限制,目的是在遇到流量高峰或者流量突增(流量尖刺)时,把流量速率控制在合理的范围之内,不至于被高流量击垮。 常见的限流方式 服务降级中的限流并没有我们想象的那么简单。第一,限流方案必须时 阅读全文
posted @ 2020-02-01 15:40 当年明月123 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 均衡不能狭义地理解为给每个服务器分配同样的工作量,因为没台服务器的承载能力各不相同,这可能是因为硬件配置,网络带宽导致的差异。这里所说的均衡,就是希望所有服务器不要过载,并且能够最大限度地发挥作用。 先看一下经典的网络分层图: 为什么分享这张图那?因为我们的负载均衡就要在应用层和运输层上面去进行。 阅读全文
posted @ 2020-01-31 19:13 当年明月123 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 为了能够对请求进行快速响应,出现了缓存。它能利用内存的高速读写性能来应付海量的查询请求。然而内存资源非常宝贵,将全部数据都放在内存显然是不切实际的。 目前都是采用内存和磁盘结合的方式,内存只存储热点数据,而 IO 设备存储全部的数据。本文将对缓存以及热点数据中存在的问题进行讨论。 缓存穿透 互联网应 阅读全文
posted @ 2020-01-31 16:45 当年明月123 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Redis 是 Java 程序员在面试过程中绕不开的知识点,我们这篇文章对于 Redis 的知识点做一个总结。 什么是 Redis Redis 是使用 C 语言写成的,高性能的基于内存的 key value 型数据库。Redis 支持多种数据类型(String,list,set,zset 和 has 阅读全文
posted @ 2020-01-31 15:15 当年明月123 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 上一片文章我们讲过了,B 树索引是 MySql 常用引擎(InnoDB,MyISAM)的索引。 提出问题 什么是 B 树,它有什么特性那?B+ 树与 B 树有什么区别?我们平常用的二叉搜索树的时间复杂度不是 LogN 吗?难道不够优秀吗? 解决问题 预备知识 磁盘 IO:系统读取磁盘是将磁盘的基本单 阅读全文
posted @ 2020-01-31 11:20 当年明月123 阅读(902) 评论(0) 推荐(0) 编辑
摘要: MySql 索引 MySql 索引 首先,MySql 支持多种存储引擎,最为常用的是 innodb,MyIsam 也需要了解,其他的存储引擎包括 Archive 等等都要又个印象。 各种存储引擎对于索引的支持也不相同,总结下来,MySql 的索引主要由三种类型, B 树索引 , Hash 索引 , 阅读全文
posted @ 2020-01-30 19:25 当年明月123 阅读(431) 评论(1) 推荐(0) 编辑