- 浏览: 6354468 次
- 性别:
- 来自: 一片神奇的土地
最新评论
-
360pluse:
技术更新,战术升级!Python爬虫案例实战从零开始一站通网盘 ...
Python爬虫实战:Scrapy豆瓣电影爬取 -
18335864773:
推荐用 pageoffice 组件生成 word 文件。
JAVA生成WORD工具类 -
jjhe369:
LISTD_ONE 写道起始地址为163.135.0.1 结束 ...
IP地址与CIDR -
baojunhu99:
private final int POOL_SIZE = 5 ...
使用CompletionService获取多线程返回值 -
LovingBaby:
胡说,javascript 运行时是单线程的,event lo ...
Ajax请求是否可以实现同步
文章列表
程序员小灰 - 漫画:什么是B-树?(注意查询、插入删除的图解)
程序员小灰 - 蛮会:什么是B+树?
MYSQL中的几种索引
MYSQL索引实现原理(重要)
B树与B+树
MYSQL索引原理详解
联合索引(复合索引)在B+树上的结构
联合 ...
MySQL主从复制与主主复制
MySQL集群(一)之主从复制mysql集群技术:主从复制,读写分离
relay 传递
Slave 复数、奴隶
replication 复制
privileges 特权
主从复制,只能有一个主节点,可以用n多个从节点
一、配置文件
在执行这个主从复制之前,首先必须打开 Master 端的Binary Log(MySQL-bin.xxxxxx)功能,否则无法实现。从服务器也需要开启二进制日志和 relay 日志功能 .这样可以从主服务器读取 binlog
思维的惰性
我30的时候,连跳两轮,直接翻了一倍,年龄没你想的那么可怕。可怕的是没有信心以及支持信心的底气。// @风一样的爱好者: 本人就是工资倒挂的程序猿,不是不想跳槽,人过30岁,编码岗位并不是那么好找
坚持。长期地坚持去做一件事情,真的很难。不过,当你下定决心持续地去做一件事情的时候,你的坚持就会变成一种习惯。习惯一旦养成,你不去做那件事情的时候,反而会觉得心里不舒服,好像少了什么似的。因为平时要上班,所以一天下来,其实也没多少时间去研究Android系统。这时候我就告诉自己,更加要坚持,并且给自己算了一笔数:工作日每天看20页书,周末每天看50页书,大概两周就可以看 ...
Socket交互流程
- 博客分类:
- HTTP/TCP/Socket
简单理解Socket
服务器端:
第一步:用指定的端口号和服务器的ip建立一个EndPoint对象;
第二步:建立一个Socket对象;
第三步:用socket对象的Bind()方法绑定EndPoint;
第四步:用socket对象的Listen()方法开始监听;
第五步:接受到客户端的连接,用socket对象的Accept()方法创建新的socket对象用于和请求的客户端进行通信;
第六步:通信结束后一定记得关闭socket;
客户端:
第一步:用指定的端口号和服务器的ip建立一个EndPoint对象;
第二步:建立一个Socket对象;
第三步:用s ...
HTTP断点续传
Range:客户端发请求的范围
Content-Range:服务端返回当前请求范围和文件总大小
续传成功返回206
文件又变动,返回200和新文件内容
HTTP1.1 协议(RFC2616)开始支持获取文件的部分内容,这为并行下载以及断点续传提供了技术支持。它通过在 Header 里两个参数实现的,客户端发请求时对应的是 Range ,服务器端响应时对应的是 Content-Range。
Range
用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:
Range:(unit=first by ...
tcp粘包和拆包的处理方案
产生tcp粘包和拆包的原因
我们知道tcp是以流动的方式传输数据,传输的最小单位为一个报文段(segment)。tcp Header中有个Options标识位,常见的标识为mss(Maximum Segment Size最大消息长度)指的是,连接层每次传输的数据有个最大限制MTU(Maximum Transmission Unit),一般是1500比特,超过这个量要分成多个报文段,mss则是这个最大限制减去TCP的header,光是要传输的数据的大小,一般为1460比特。换算成字节,也就是180多字节。
MSS = MTU - ...
TCP 滑动窗口和 拥塞窗口
TCP协议保证数据传输可靠性的方式主要有:
(校序重流拥)
校验和
发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错, ...
如何用消息系统避免分布式事务?
使用消息队列需要注意的几个关键问题
阿里云收发事务消息
前阵子从支付宝转账1万块钱到余额宝,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。
上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证?!等等,相信大家或多或多少都能碰到相似情景。
本质上 ...
五种网络io模型
一个简单故事讲述NIO
blocking I/O 阻塞
nonblocking I/O 非阻塞
I/O multiplexing (select and poll) 多路复用
signal driven I/O (SIGIO) 信号驱动
asynchronous I/O (the POSIX aio_functions) 异步
例子:
假设某银行只有10个职员。该银行的业务流程分为以下4个步骤:
1) 顾客填申请表(5分钟);
2) 职员审核(1分钟);
3) 职员叫保安去金库取钱(3分钟);
4) 职员打印 ...
java中的gc log解读
eclipse的优化 gc.log
一次让人难以忘怀的排查频繁Full GC过程
一个GC频繁的Case
堆内存占用很小 但是 JVM 频繁full gc 问题排查
JVM中GC时,堆内存是如何动态变化的(JDK1.7)
使用jmap和MAT分析JVM堆内存
Jmap+MAT 排查内存泄漏
关于内存溢出
HTTP/2.0 相比1.0有哪些重大改进?
HTTP概述
HTTP1.0~HTTP1.1
长头域
HTTP1.1~HTTP2
多复数压推
HTTP1.0 HTTP 1.1主要区别
长连接
HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。
HTTP是基 ...
MySQL数据库char与varchar的区别分析及使用建议
char
char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。
...
轻松理解MYSQL MVCC 实现机制
1.1 什么是MVCC
MVCC(Multi-Version Concurrency Control)是一种多版本并发控制机制。
与隔离级别紧密联系的另外一个东西是并发调度,通过并发调度实现隔离级别。对于并发调度,不同的数据库厂商有不同的实现机制,但基本原理类似,都是通过加锁来保护数据对象不同时被多个事务修改。
多版本的并发控制(MVCC)相对于传统的基于锁的并发控制主要特点是读不上锁,这种特性对于读多写少的场景,大大提高了系统的并发度,因此大部分关系型数据库都实现了MVCC。
1.2 MVCC是为了解决什么问题?
...
四图带你了解Tomcat系统架构——让面试官颤抖Tomcat系列
Java高级架构——Tomcat源码解析之整体流程介绍
从Tomcat中学习责任链模式
一、Tomcat顶层架构
先上一张Tomcat的顶层结构图(图A),如下:
Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。
Service主要包含两个部分:Connector和Container。从上图中可以看出 Tomcat 的心脏
四图带你了解Tomcat系统架构——让面试官颤抖Tomcat系列
Java高级架构——Tomcat源码解析之整体流程介绍
一、架构
下面谈谈我对Tomcat架构的理解
总体架构:
1、面向组件架构
2、基于JMX
3、事件侦听
1)面向组件架构
tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成,如Server、Service、Connector等,并基于JMX管理这些组件,另外实现以上接口的组件也实现了代表生存期的接口Lifecycle,使其组件履行固定的生存期,在其整个生存期的过程中通过事件侦听LifecycleEven ...