- 博客(180)
- 资源 (23)
- 收藏
- 关注
转载 一个不可思议的 MySQL 慢查分析与解决!
一、前言 开发需要定期的删除表里一定时间以前的数据,SQL如下 前段时间在优化的时候,已经在相应的查询条件上加上了索引 但是实际执行的 SQL 依然非常慢,为什么呢,我们来一步步分析验证下 二、分析 表上的字段既然都有索引,那么按照之前的文章分析,是两个字段都可以走上索引的。如果有疑问,请参考文章 10 ...
2019-07-17 10:50:40
180
转载 Mysql索引ICP
Index Condition Pushdown(ICP)是MySQL 5.6中新特性,是一种在存储引擎层使用索引过滤数据的一种 优化方式。ICP可以减少存储引擎访问基表的次数以及MySQL服务器访问存储引擎的次数。在不使用ICP索引扫描的过程:storage层:只将满足index key条件的索引记录对应的整行记录取出,返回给server层server层:对返回的数据...
2019-07-15 21:22:50
3147
原创 Mysql开发者手册
https://dev.mysql.com/doc/refman/5.5/en/nested-loop-joins.html
2019-07-15 17:49:14
376
原创 Nginx核心模块配置
Nginx核心模块配置http://nginx.org/en/docs/http/ngx_http_core_module.html
2019-07-10 18:13:30
392
转载 理解基于 TCP 的应用层通信协议
TCP 协议示意TCP协议关于七层网络通信的基本原理,特别推荐这篇图文并茂的长文《TCP/IP笔记 - 综述》TCP 通信基本特征TCP数据流特征1. 消息(结构化数据)被编码成字节流写入 TCP 通道。2. TCP 通道不能保证字节流一定到达目的地,但能保证到达的字节流是正确、有序的。对于发送端而言,可以不停的写入数据,当网络出问题 ACK 超...
2019-07-10 18:08:17
3255
转载 Socket参数调优
java socket中有很多参数可以选择,这篇博客的目的是沉淀出这些参数的语义和用法,供自己以后查阅。1、java socket参数选项总览 在JDK1.6中有如下参数选项: 1 public final static int TCP_NODELAY = 0x0001; 2 3 public final static int SO_BINDADDR = 0x0...
2019-07-10 16:19:24
1204
转载 tomcat 线程池解析(转)
tomcat的线程池扩展了jdk的executor,而且队列用的是自己的task queue,因此其策略与jdk的有所不同,需要注意一下,不然容易踩坑。tomcat线程池策略 场景1:接受一个请求,此时tomcat启动的线程数还没有达到corePoolSize(tomcat里头叫minSpareThreads),tomcat会启动一个线程来处理该请求; 场景2:接受一个请求,此...
2019-07-09 18:25:39
823
转载 Elasticsearch-核心
最近面试一些公司,被问到的关于Elasticsearch和搜索引擎相关的问题,以及自己总结的回答。Elasticsearch是如何实现Master选举的?Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分; 对所有可以成为master的节...
2019-07-04 08:53:48
428
原创 细说SocketOption,就是要让你懂TCP
Java的Socket的API中所有控制TCP的SocketOptions SO_KEEPALIVE setKeepAlive SO_OOBINLINE setOOBInline SO_RCVBUF setReciveBufferSize ...
2019-06-28 01:05:50
2985
2
原创 Guava使用手册
https://stonelion.gitbooks.io/guava_ch/content/ch2/joiner.html
2019-06-27 20:13:47
2061
转载 JedisClusterPipeLine扩展支持【线程安全版】-转
1.为什么要写这篇文章由于使用redis cluster模式,在操作redis时,有时会有大量的命令,如果每次都进行提交,会非常慢(比如一分钟之内操作几百万次甚至千万次)。通过一次请求提交多个命令,这个在某些场景下,能够提升很多性能。但是,查看jediscluster的代码,却发现其不支持pipeline。这就很郁闷了。通过在网上查询,我找到了这篇文章:redis集群客户端Jed...
2019-06-26 17:08:33
2049
转载 spring 5 webclient使用指南-转
spring 5 webclient使用指南序之前写了一篇restTemplate使用实例,由于spring 5全面引入reactive,同时也有了restTemplate的reactive版webclient,本文就来对应展示下webclient的基本使用。请求携带header携带cookie @Test public void testWithCookie()...
2019-06-21 20:11:56
5893
2
转载 dubbo-SPI机制(转)
写在前面 最近接触了 gRPC 体会到虽然众多 RPC 框架各有各的特点但是他们提供的特性和功能有很多的相似之处 , 这就说明他们面对同样的分布式系统带来的问题。从 2016 年左右开始接触到 dubbo ,基本停留在使用的层面,对 dubbo 的设计以及着重要解决的问题都没有系统的研究过,通过对 dubbo 和其他类似 RPC 产品的系统学习 ,学习分布式系统中面临的共同问题以...
2019-06-19 09:23:35
223
转载 dubbo中的tps的设置【转】
由dubbo的TpsLimitFilter限流,说说dubbo的Filter实现机制Dubbo提供了过程拦截(即Filter)功能。dubbo的大多数功能都基于此功能实现。在dubbo的服务端,提供了一个限流Filter(TpsLimitFilter),用于在服务端控制单位时间内(默认是60s)的调用数量tps。超过此数量,则服务端将会报错。一、TpsLimitFilter的使用# 1...
2019-06-18 12:00:35
1251
原创 爬虫中奇葩的空格
奇葩的160 号空格和12288空格1、160空格System.out.println(StringEscapeUtils.unescapeHtml4(" ").equals("")); System.out.println((int)StringEscapeUtils.unescapeHtml4(" ").charAt(0));160 S...
2019-06-18 10:50:54
718
原创 就是为了让你懂广度搜索
广度优先搜索思考: 如何表示状态? 如何扩展状态? 如何判重?一、步骤: 1.求路径长度还是路径本身(或动作序列)? a)如果是求路径长度,则状态里要存路径长度。 b)如何是求动作序列或者路径本身。 i>要用一颗树存储广搜过程中的路径。 ii>是否可以预估状态个数的上...
2019-06-18 09:08:32
274
转载 CPU load Avg && CPU CpuUsage
Cpu负载和cpu利用率的区别CPU利用率:显示的是程序在运行期间实时占用的CPU百分比CPU负载:显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。举例来说:如果我有一个程序它需要一直使用cpu的运算功能,那么此时cpu的使用率可能达到100%,但是cpu的工作负载则是趋近于“1”,因为cpu仅负责一个工作嘛!如果同时执行这样的程序两个呢?c...
2019-06-06 18:36:24
2106
转载 设置线程数(转)
前言“不好了,线上服务器超时严重,请求非常慢,好像报连接数too many了,怎么办?“小伙伴们在反馈。一般我们的技术老大的处理方式,把连接数和线程池调大点,重启,再观察。往往这个方式是应急措施,治标不治本,因为不知道问题的原因。有个严重误区,以为线程池设置太小了,调大点请求就会快了。今天老顾就带着小伙伴们沟通一下,线程池的大小应该如何合理的设置其大小?问题如果有两个任务需...
2019-06-06 17:26:49
1802
原创 从IO设计中看适配器和装饰器模式
适配器:把一个类的接口变换成客户端期待的另外一种接口,从而使原本因接口不匹配无法在一起工作的2个类,可以在一起工作。不要求对源对象的功能进行增强,但是会改变源对象的接口,以达到适配的目标!装饰器: 以对客户端透明的方式扩展对象的功能,是继承关系关系的一种替代方案!(透明+半透明)InputStream 原始的流(适配器模式) ...
2019-06-06 09:35:05
237
转载 BooleanFilter(转载)
一、背景知识在网上已经有很多关于布隆过滤器的介绍了,这里就不再赘述,下面简单地提炼几个要点:布隆过滤器是用来判断一个元素是否出现在给定集合中的重要工具,具有快速,比哈希表更节省空间等优点,而缺点在于有一定的误识别率(false-positive,假阳性),亦即,它可能会把不是集合内的元素判定为存在于集合内,不过这样的概率相当小,在大部分的生产环境中是可以接受的; 其原理比较简单,如下图所...
2019-06-03 14:10:13
2453
原创 二分查找-变种总结
判断永恒不变 array[m] ? target第一个返回L,操作R R=mid -1 第一个等于 array[m] >=target 操作R 【返回L,判断合法性】L > 0 && L < array.length && array[L] == target 第一个大于等于 ...
2019-05-25 11:52:56
210
转载 maven-deploy配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-...
2019-05-24 14:34:01
3375
原创 深度理解select、poll和epoll,IO多路复用模型实现机制
前言在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。select()和poll() IO多路复用模型select的缺点:单个进程能够监视的文件描述符的数量存在最大限制,通常是1024,当...
2019-05-23 09:29:33
864
转载 IO多路复用
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。 当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。 如果一个服务器即要处理TCP,又要处理UDP,一...
2019-05-23 09:22:56
2867
转载 select、poll和epoll的区别和 IO多路复用模型讲解
select、poll和epoll的区别和 IO多路复用模型讲解select、poll和epoll的区别在linux没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱的火热之年代,select和poll的用武之地越来越有限了,风头已经被epoll占尽。select()和poll() IO多...
2019-05-23 09:21:52
557
原创 actuator 源码分析
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator --><dependency> <groupId>org.springframework.boot</groupId> <artifact...
2019-05-21 19:47:43
635
转载 Nginx的 HTTP 499 状态码处理
1、前言 今天在处理一个客户问题,遇到Nginx access log中出现大量的499状态码。实际场景是:客户的域名通过cname解析到我们的Nginx反向代理集群上来,客户的Web服务是由一个负载均衡提供外网IP进行访问,负载均衡后面挂了多个内网web站点业务服务器。出现的访问日志如下所示:2、处理方法 499错误是什么?让我们看看NGINX的源码中的定义: ngx...
2019-05-14 14:32:32
40214
3
转载 dubbo统一数据模型URL
URL相信大家都非常熟悉,一般在HTTP协议中,使用URL请求服务器资源,形如:http://192.168.0.112:8080/user/login.do?name=xxx&id=xxx,这个URL可以简化成:protocol://host:port/path?param1=value1¶m1=value1&,dubbo也使用类似的URL,用于在扩展点之间传递...
2019-04-27 12:03:48
935
1
转载 BeanPostProcessor妙用(转载)
BeanPostProcessor简介BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。接口声明如下:public interface BeanPostProcessor { //bean初始化方法调用前被调用 Object postProcessBeforeInitialization(Object bean, String bean...
2019-04-26 20:21:04
3826
1
转载 分库分表的基本思想
分库分表的基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个...
2019-04-23 23:03:52
189
原创 LVS/DR+Keepalived+nginx(转)
基于云端虚拟机的LVS/DR+Keepalived+nginx的高可用集群架构配置 最近,公司要我部署一个集群架构,选来选取还是选择了大家都很熟悉的基于DR的LVS+Keepalived做负载分发,然后使用轻量级的nginx做中间代理层,这里呢先暂时实现一个简单web应用功能,对于代理功能和后续的web层部署、数据层安排将择机更新! 首先看一下集群框架: 下面...
2019-04-23 18:06:37
369
转载 LVS+Keepalived
高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案今天直接开门见山了,直接说配置吧。首先介绍下我这的环境如有问题,请联系我18500777133@sina.cnIP 安装软件 192.168.1.7 lvs1+keepalived master角色 192.168.1.8 lvs2+keepalived backup角色 192.168...
2019-04-23 18:00:28
179
原创 ssdb快速删除方法
1、./ssdb-server ssdb.conf -s stop2、删除掉 var/ssdb.pid3、删除掉var/data/文件夹4、准备一份备份 【ssdb-data-复原】--csdn下载5、重启 ./ssdb-cli -d sssdb.conf -s start...
2019-04-23 16:16:01
1659
原创 LVS+DR--实践
管理集群服务添加-A t|u|f (tcp,udp,firewall) service-address【vip】 -s schduler修改-E删除-D t|u|f service-address管理集群中的机器添加:-a -t|u|f service-address【vip】 -r service-address【rip】 -g|i|m -w [w...
2019-04-22 00:10:09
500
转载 yum命令讲解
(一)yum介绍Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记...
2019-04-18 19:45:09
601
(46页完整版)JVM体系结构与GC调优.zip
2019-05-15
fiddler+willow
2018-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅