随笔分类 -  收藏好文

平时浏览博客,收藏的一些好的文章。
摘要:最近瞥了一眼项目的重启脚本,发现运维一直在使用 kill-9<pid> 的方式重启 springboot embedded tomcat,其实大家几乎一致认为:kill-9<pid> 的方式比较暴力,但究竟会带来什么问题却很少有人能分析出个头绪。这篇文章主要记录下自己的思考过程。 kill -9 和 阅读全文
posted @ 2019-05-13 09:41 加肥猫咪 阅读(1994) 评论(0) 推荐(0)
摘要:这一篇主要讲一下 InnoDB 中的事务到底是如何实现 ACID 的: 原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability) 隔离性 隔离性 隔离性的实现原理就是锁,因而隔离性也可以称为并发控制、锁等。事务的隔离性要求每个读写事 阅读全文
posted @ 2019-05-08 14:40 加肥猫咪 阅读(518) 评论(0) 推荐(0)
摘要:前言 从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。 I/O概念 1.缓冲区 缓冲区是所有I/O的基础,I/O讲的无非 阅读全文
posted @ 2019-04-16 14:43 加肥猫咪 阅读(194) 评论(0) 推荐(0)
摘要:HTTP协议 HTTP协议大家都很熟悉了,开始本文之前,首先简单回顾一下HTTP协议。 HTTP协议是建立在TCP协议上的应用层协议,协议的本质是请求 应答: 即对于HTTP协议来说,服务端给一次响应后整个请求就结束了,这是HTTP请求最大的特点,也是由于这个特点,HTTP请求无法做到的是服务端向客 阅读全文
posted @ 2019-04-09 13:21 加肥猫咪 阅读(468) 评论(0) 推荐(0)
摘要:目录 背景 简介 1. 强引用 StrongReference 2. 弱引用 WeakReference 3. 软引用 SoftReference 4. 虚引用 PhantomReference 小结 一、背景 Java的内存回收不需要程序员负责,JVM会在必要时启动Java GC完成垃圾回收。Ja 阅读全文
posted @ 2019-03-29 16:51 加肥猫咪 阅读(190) 评论(0) 推荐(0)
摘要:1 前言 昨天晚上接到阿里的电面电话,过程中就问到了关于缓存相关的问题。 虽然以前接触过,多多少少了解了一些。但是之前自己并没有好好记录这些内容,在真正面试的时候,并没有回答得出来。今天记录一下,长长记性。 在我们的平常的项目中多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到 阅读全文
posted @ 2019-03-29 11:26 加肥猫咪 阅读(197) 评论(0) 推荐(0)
摘要:1. 索引 索引,类似书籍的目录,可以根据目录的某个页码立即找到对应的内容。 索引的优点:1. 天生排序。2. 快速查找。索引的缺点:1. 占用空间。2. 降低更新表的速度。 注意点:小表使用全表扫描更快,中大表才使用索引。超级大表索引基本无效。 索引从实现上说,分成 2 种:聚集索引和辅助索引(也 阅读全文
posted @ 2019-03-26 11:26 加肥猫咪 阅读(151) 评论(0) 推荐(0)
摘要:01. 人生就是用大把的时间迷茫,然后在几个瞬间成长。 02. 多去顾及别人的感受,少在意别人的看法。 03. 道理,很多时候是一无用处的,真正的强者都是行动派。他们去行动了、实践了,总结出很多道理,这些道理是他们自己的,你听了却误以为是大家的。 04. 为什么很多人焦虑?因为他们清楚自己每天做的事 阅读全文
posted @ 2019-03-21 10:46 加肥猫咪 阅读(268) 评论(0) 推荐(0)
摘要:近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redis,Zookeeper,其中基于Redis的分布式锁的使用更加广泛。 但是在工作和网络上看到过各个版本的R 阅读全文
posted @ 2019-03-13 10:48 加肥猫咪 阅读(1278) 评论(0) 推荐(0)
摘要:一、写在前面 之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了不少文章,还是不知道分布式事务到底怎么回事,在项目里到底如何使用。 所以咱们这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是TCC分布式事务。 二、业 阅读全文
posted @ 2019-03-06 17:46 加肥猫咪 阅读(1088) 评论(0) 推荐(0)
摘要:Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件。 本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: 第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性;二是服务架构的基本组成。为什么 阅读全文
posted @ 2019-03-06 13:29 加肥猫咪 阅读(201) 评论(0) 推荐(0)
摘要:摘要: redis作为一种NoSql数据库,其提供了一种高效的缓存方案,本文则主要对其单例,主从模式,sentinel以及集群的配置方式进行说明,对比其优缺点,阐述redis作为一种缓存框架的高可用性。 redis作为一种高效的缓存框架,使用是非常广泛的,在数据存储上,在运行时其将数据存储在内存中, 阅读全文
posted @ 2019-03-05 12:04 加肥猫咪 阅读(2112) 评论(0) 推荐(0)
摘要:问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。 问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法 阅读全文
posted @ 2019-03-04 17:04 加肥猫咪 阅读(2337) 评论(0) 推荐(0)
摘要:Redis几种架构 Redis发展到现在,几种常见的部署架构有: 我们首先基于这些架构讲解Redisson普通分布式锁实现,需要注意的是,只有充分了解普通分布式锁是如何实现的,才能更好的了解Redlock分布式锁的实现,因为Redlock分布式锁的实现完全基于普通分布式锁。 普通分布式锁 Redis 阅读全文
posted @ 2019-02-28 11:33 加肥猫咪 阅读(2215) 评论(0) 推荐(0)
摘要:概述 安装与使用 安装 使用 nginx 配置实战 http 反向代理配置 负载均衡配置 网站有多个 webapp 的配置 https 反向代理配置 静态站点配置 搭建文件服务器 跨域解决方案 参考 安装 使用 http 反向代理配置 负载均衡配置 网站有多个 webapp 的配置 https 反向 阅读全文
posted @ 2019-02-26 13:32 加肥猫咪 阅读(313) 评论(0) 推荐(0)
摘要:一、键值设计 1. key名设计 (1)【建议】: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id (2)【建议】:简洁性 保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如: (3)【强制】:不要包含特殊字符 反例:包 阅读全文
posted @ 2019-02-26 11:59 加肥猫咪 阅读(192) 评论(0) 推荐(0)
摘要:在用缓存的时候,基本上会通用遇到以下三个问题: 缓存穿透 缓存并发 缓存失效 一、缓存穿透 上面三个图会有什么问题呢? 我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就 阅读全文
posted @ 2019-02-25 11:22 加肥猫咪 阅读(162) 评论(0) 推荐(0)
摘要:在JDK1.8里有两个非常高级的新操作,它们分别是:Lambda 表达式和 Stream 流。 Lambda表达式 让我们先说说 Lambda 表达式吧,这个表达式最大的作用就是简化语法,让代码更加易读。例如下面这个例子: 在上面的代码里我们简单实现了一个线程,但如果使用 Lambda 表达式,我们 阅读全文
posted @ 2019-02-25 11:02 加肥猫咪 阅读(268) 评论(0) 推荐(0)
摘要:前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细 阅读全文
posted @ 2019-02-22 15:48 加肥猫咪 阅读(164) 评论(0) 推荐(0)
摘要:一. Redis 分布式锁的实现以及存在的问题 锁是针对某个资源,保证其访问的互斥性,在实际使用当中,这个资源一般是一个字符串。使用 Redis 实现锁,主要是将资源放到 Redis 当中,利用其原子性,当其他线程访问时,如果 Redis 中已经存在这个资源,就不允许之后的一些操作。spring b 阅读全文
posted @ 2019-02-22 15:43 加肥猫咪 阅读(473) 评论(0) 推荐(0)