自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(120)
  • 收藏
  • 关注

转载 Redis GeoHash

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632810.html背景微信找附近的人,滴滴找附近的单车,饿了么找附近的餐馆GeoHash算法可以使用数据库来进行查询,但是数据库查询性能毕竟是有限的,如果“附近的人”查询请求非常多,在高并发场景下,对数据库的压力还是相当大的,不是一个很好的方案。业界比较通...

2019-10-07 23:04:00 209

转载 Redis Redis-Cell

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632679.html漏斗限流漏斗限流是最常用的限流方法之一,另一个是令牌桶(比如:Guava RateLimiter)漏斗的容量是有限的,如果将漏嘴堵住,然后一直往里面灌水,它就会变满,直至再也装不进去。如果将漏嘴放开,水就会往下流,流走一部分之后,就又可以继续往里面灌...

2019-10-07 22:28:00 414

转载 Redis Bloom Filter

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632622.html背景比如刷抖音的时候,抖音会不停的推荐新的内容,而它每次推荐时候都要去重,以去掉那些我们已经看过的内容,问题是抖音是如何实现推送去重的?Bloom Filter方案Bloom Filter就是专门用来解决这种去重问题的。它在起到去重作用的同时...

2019-10-07 22:17:00 170

转载 Redis HyperLogLog

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632490.html背景统计网站上每个网页每天的UV数据,UV和PV不一样,需要去重,同一个用户一天之内的多次访问请求只能计数一次。Set方案一个简单的方案,那就是为每一个页面设置一个独立的set集合来存储当天访问过此页面的用户ID。当一个请求过来时,使用sad...

2019-10-07 21:52:00 116

转载 TCC、XA 、DTP区别

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11623047.htmlTCC的优缺点优点解决了跨服务的业务操作原子性问题,例如组合支付、下订单减库存等场景非常实用TCC的本质原理是把数据库的二阶段提交上升到微服务来实现,从而避免数据库二阶段中锁冲突的长事务引起的低性能风险TCC异步高性能,它采用了try先检查,然后异步实...

2019-10-04 20:11:00 663

转载 MySQL索引最左匹配原则

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11609103.html创建一个测试表 1 CREATE TABLE `test` ( 2 `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 3 `a` varchar(32) NOT NULL, 4 `b`...

2019-09-29 17:39:00 65

转载 MySQL使用版本号实现乐观锁

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11608581.html乐观锁适用于读多写少的应用场景乐观锁Version图示Project DirectoryMaven Dependency 1 <?xml version="1.0" encoding="UTF-8"?>...

2019-09-29 16:29:00 1007

转载 MySQL DDL Demo

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11606833.htmlDDL Demo 1 CREATE TABLE `user` ( 2 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 3 `mobile` varchar(13) NOT NULL C...

2019-09-29 11:30:00 90

转载 Redis分布式锁

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11605323.html大部分开发人员利用Redis 实现分布式锁的方式,都是使用SETNX+EXPIRE 组合来实现这种方式实现的分布式锁,是通过setnx 方法设置锁,如果lockKey 存在,则返回失败,否则返回成功。设置成功之后,为了能在完成同步代码之后成功释放锁,方...

2019-09-28 22:48:00 78

转载 Zookeeper分布式锁

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11605319.htmlZookeeper是一种提供“分布式服务协调“的中心化服务,分布式应用程序才可以基于Zookeeper的以下两个特性实现分布式锁功能。顺序临时节点:Zookeeper提供一个多层级的节点命名空间(节点称为Znode),每个节点都用一个以斜杠(/)分隔的...

2019-09-28 22:47:00 92

转载 Docker常规操作

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11601853.htmlDocker 常⽤命令镜像相关• docker pull <image>• docker search <image>容器相关• docker run• docker start/stop <容器名>...

2019-09-28 10:17:00 84

转载 Nginx编译

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11560166.htmlNginx优点高并发、高性能可扩展性好高可靠性热部署BSD许可证Nginx组成Nginx 二进制可执行文件 —— 由各模块源码编译出的一个文件Nginx.conf 配置文件 —— 控制 Nginx 的行为access.log 访问日志 —— ...

2019-09-20 22:25:00 90

转载 Redis五种数据类型及应用场景

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11532375.htmlString: 一般做一些复杂的计数功能的缓存List: 做简单的消息队列的功能Hash: 单点登录Set: 做全局去重的功能SortedSet: 做排行榜应用,取TopN操作;延时任务;做范围查找类型简介特性场景...

2019-09-17 11:04:00 108

转载 Spring Transaction Isolation

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11530702.htmlReferencehttp://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/annotation/Isolation.htmlh...

2019-09-16 22:28:00 89

转载 Spring Transaction Propagation

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11530611.htmlREQUIRED behaviorSpring REQUIRED behavior means that the same transaction will be used if there is an already opened transa...

2019-09-16 22:07:00 101

转载 网络性能优化

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11525119.htmlLinux 网络协议栈根据指标找工具根据工具查指标网络收发流程套接字内核选项列表Referencehttps://time.geekbang.org/column/article/837...

2019-09-15 23:34:00 107

转载 网络性能指标

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11525044.html通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。带宽带宽,表示链路的最大传输速率,单位通常为 b/s (比特/秒)。吞吐量吞吐量,表示单位时间内成功传输的数据量,单位通常为 b/s(比特/...

2019-09-15 23:13:00 322

转载 I/O性能优化

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11525014.htmlLinux 系统的 I/O 栈图I/O性能指标根据指标找工具根据工具查指标iostat、vmstat、pidstat先用 iostat 发现磁盘 I/O 性能瓶颈;再借助 pidstat ,定...

2019-09-15 23:04:00 149

转载 磁盘性能指标

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524971.html使用率使用率,是指磁盘处理I/O的时间百分比。过高的使用率(比如超过80%),通常意味着磁盘 I/O 存在性能瓶颈。饱和度饱和度,是指磁盘处理 I/O 的繁忙程度。过高的饱和度,意味着磁盘存在严重的性能瓶颈。当饱和度为 100% 时,磁盘无法...

2019-09-15 22:52:00 106

转载 磁盘I/O工作原理

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524947.htmlTODOReferencehttps://time.geekbang.org/column/article/77010转载于:https://www.cnblogs.com/agilestyle/p/11524947.html...

2019-09-15 22:47:00 148

转载 文件系统工作原理

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524933.htmlTODOReferencehttps://time.geekbang.org/column/article/76876转载于:https://www.cnblogs.com/agilestyle/p/11524933.html...

2019-09-15 22:44:00 392

转载 Linux命令行工具之free命令

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524691.html使用 free 查看整个系统的内存使用情况Note:不同版本的free输出可能会有所不同第一列,total 是总内存大小;第二列,used 是已使用内存的大小,包含了共享内存;第三列,free 是未使用内存的大小;第四列,share...

2019-09-15 22:17:00 173

转载 内存性能优化

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524085.html内存性能指标根据指标找工具根据工具查指标free、top、vmstat、pidstat为了迅速定位内存问题,先运行几个覆盖面比较大的性能工具,比如free、top、vmstat、pidstat等。具体的分析思路...

2019-09-15 20:34:00 75

转载 内存工作原理

Reference:https://time.geekbang.org/column/article/74272内存内存主要用来存储系统和应用程序的指令、数据、缓存等。内存映射通常所说的内存容量,比如笔记本电脑的8GB内存,其实指的是物理内存。物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM)。只有内核才可以直接访问物理内存。Linu...

2019-09-15 20:08:00 186

转载 内存中的Buffer和Cache的区别

Reference:https://time.geekbang.org/column/article/74633磁盘是一个块设备,可以划分为不同的分区;在分区之上再创建文件系统,挂载到某个目录,之后才可以在这个目录中读写文件。其实 Linux 中“一切皆文件”,而提到的“文件”是普通文件,磁盘是块设备文件,可以执行 "ls -l <路径>" 查看它们的区别。...

2019-09-15 19:43:00 121

转载 proc文件系统

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11521391.htmlproc文件系统 是一种内核空间和用户空间进行通信的机制,可以用来查看内核的数据结构,或者用来动态修改内核的配置。Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息。转载于:https://www.cnblogs.co...

2019-09-15 10:39:00 69

转载 CPU性能优化

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11521331.htmlCPU性能指标根据指标找工具根据工具查指标top、vmstat 和 pidstat从 top 的输出可以得到各种 CPU 使用率以及僵尸进程和平均负载等信息。从 vmstat 的输出可以得到上下文切换次数、...

2019-09-15 10:22:00 81

转载 CPU缓存

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11520840.html由于CPU发展的速度远快于内存的发展,CPU的处理速度就比内存的访问速度快得多。这样,CPU在访问内存的时候,免不了要等待内存的响应。为了协调这两者巨大的性能差距,CPU缓存(通常是多级缓存)就出现了。CPU缓存的速度介于CPU和内存之间,缓存的是热点...

2019-09-14 23:58:00 76

转载 软中断

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11520377.html中断中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运...

2019-09-14 21:36:00 298

转载 不可中断进程和僵尸进程

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11520274.html当 iowait 升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。需要注意的是 iowait 高不一定代表I/O 有性能瓶颈。当系统中只有 I/O 类型的进程在运行时,iowait 也会很高,但实际上,磁盘的读写远没有达到性能瓶颈的程度。...

2019-09-14 21:09:00 367

转载 CPU使用率

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11520035.htmlCPU 使用率就是除了空闲时间外的其他时间占总 CPU 时间的百分比,用公式来表示就是事实上,为了计算 CPU 使用率,性能工具一般都会取间隔一段时间(比如3秒)的两次值,作差后,再计算出这段时间内的平均 CPU 使用率,即性能...

2019-09-14 20:13:00 67

转载 CPU上下文切换

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11518557.htmlCPU 的上下文切换场景Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU ...

2019-09-14 10:43:00 239

转载 平均负载

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11517921.html查看平均负载1 uptimeNote:最后三个数字,依次则是过去1分钟、5分钟、15分钟的平均负载(Load Average)什么是平均负载平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进...

2019-09-13 23:03:00 81

转载 多线程设计模式

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11494963.htmlSingle Threaded Execution —— 能通过这座桥的只有一个人所谓“Single Threaded Execution”,即“以一个线程执行”,该模式用于设置限制,以确保同一时间内只让一个线程执行处理。Immutable ——...

2019-09-09 23:21:00 64

转载 网站架构演化历程

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11488633.html初始阶段的网站架构应用服务和数据服务分离使用缓存改善网站性能使用应用服务器集群改善网站的并发处理能力数据库读写分离使用反向代理和CDN加速网站响应使用分布式文件系统和分布式数据库系统使用NoSQL和搜索引擎...

2019-09-08 21:37:00 53

转载 微服务系列

Introduction to MicroservicesBuilding Microservices: Using an API GatewayBuilding Microservices: Inter-Process Communication in a Microservices ArchitectureService Discovery in a Microserv...

2019-09-08 21:14:00 56

转载 HTTPS 协议

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11488454.htmlHTTPSHTTPS —— Hypertext Transfer Protocol over Secure Socket Layer,即基于SSL的HTTP协议,简单地说就是HTTP的安全版依托SSL协议,HTTPS协议能够确保整个通信过程都是经...

2019-09-08 21:01:00 192

转载 ELK Stack

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11488404.htmlELK workflowlog -> filebeat -> logstash -> elasticsearch -> kibana转载于:https://www.cnblogs.com/agilestyle/p/11...

2019-09-08 20:52:00 43

转载 Redis为什么这么快

Redis是单进程单线程的工作模式1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);2、数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的;3、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用...

2019-09-08 20:47:00 46

转载 Top 8 Diagrams for Understanding Java

Reference:http://www.programcreek.com/2013/09/top-8-diagrams-for-understanding-java/A diagram is sometimes worth 1000 words. The following diagrams are from Java tutorials on Program Creek,...

2019-09-08 20:35:00 79

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除