Redis 简介Redis本质上是一个Key-Value类型的内存数据库,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。可用于缓 ...
通过一个故事白话Java锁
有这么一个学校(Java虚拟机),里面有好多好多人(线程),简单分成学生、老师、以及宿管阿姨。 学校中间还有一个很奇葩的水果超市(临界区),里面有个仓库放着苹果、西瓜、橘子(临界区里的受保护资源)。 来这个超市的人,一方面可以拿走水果吃掉,另一方面也可以送来水果换钱。不过超市还有一个很奇葩的规则,就 ...
Dubbo接口测试工具
前言近几年随着微服务化项目的崛起,逐渐成为许多中大型分布式系统架构的主流方式,而RPC在这其中扮演着重要的角色。市面上流行的RPC框架如Dubbo、Thrift、Hession、gRPC等。 本人所在的公司一直使用Dubbo,在使用Dubbo进行开发时,想要快速知道某些dubbo接口的响应结果,但不 ...
消灭Java代码'坏味道'
需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。 但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。 反例Map<String, St ...
线上问题排查总结(持续更新)
前言在线上,我们可能经常会碰到程序卡死或者执行很慢等情况,这时我们迫切希望知道是代码哪里的问题,代码运行到了哪里,是哪一步很慢,是否进入了死循环,是否有代码出现了线程不安全的情况,是否有某些连接数或者打开的文件数太多等等问题。此时就需要通过分析案发时的线程堆栈信息,快速定位问题。 要想快速分析、定位 ...
Zookeeper知识点
简介ZooKeeper是一个典型的分布式数据一致性的解决方案。分布式应用程序可以基于它实现诸如 数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。ZooKeeper可以保证如下分布式一致性特性: 顺序一致性:从同一个客户端发起的事务请求, ...
MySQL问题排查SQL
查看当前应用连接,连接数突增排查select user,SUBSTRING_INDEX(host,':',1) as ip , count(*) as count,db from information_schema.processlist where host not in ('localhost ...
分布式学习-分布式事务
事务定义事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。 数据库事务特性(A ...
分布式学习-分布式锁
前言多线程情况下对共享资源的操作需要加锁,避免数据被写乱,在分布式系统中,这个问题也是存在的,此时就需要一个分布式锁服务。 分布式锁的特点 分布式锁一般要有以下特点:排他性:任意时刻,只能有一个client能获取到锁;容错性:分布式锁服务一般要满足AP,也就是说,只要分布式锁 ...