自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 事务分类与理解

传统型事务一阶段提交协议(Mysql)XA 两阶段提交协议(分布式事务:prepare + commit)2PC两段提交(2PC)的缺点二阶段提交看似能够提供原子性的操作,但它存在着严重的缺陷网络抖动导致的数据不一致: 第二阶段中协调者向参与者发送commit命令之后,一旦此时发生网络抖动,导致一部分参与者接收到了commit请求并执行,可其他未接到commit请求的参与者无法执行事务提交。进而导致整个分布式系统出现了数据不一致。超时导致的同步阻塞问题: 2PC中的所有的参与者节点都为

2020-06-16 11:12:08 293 1

原创 计算机网络 谢希仁版笔记

3. 数据链路层差错检测;现实的通信链路都不会是理想的,存在一定的信噪比,从而导致误码率;为了保证数据的可靠传输,在数据链路层广泛的采用了循环冗余校验(CRC)传输差错可分为两大类:比特差错(由于信噪比、硬件设施的原因)、传输差错(帧丢失、帧重复、帧乱序)为了保证传输的质量,现在使用了两种方式实现可靠性传输协议(这样做可以提高通信效率):对于通信质量良好的有线传输链路,如果数据链路层出现差错,需要由上层协议改进(如传输层、TCP)对于信号质量较差的无线传输链路,使用确认重传机制。在通信线

2020-06-02 09:46:37 317

原创 Redis 设计与实现

数据结构对象简单动态字符串redis 使用SDS(simple Dynamic String)作为可被修改的字符串值;C字符串作为简单字面量(不可变更)。SDS 除了作为字符串值之外,还当做缓冲区;AOF模块中的缓冲区和客户端的缓冲区。SDS遵循空字符串结尾的好处是可以使用C的部分函数。SDS的优势:降低获取字符串的时间复杂度杜绝缓冲区溢出(不用注意SDS的空间大小,在设置值的...

2020-05-08 19:47:28 229

转载 基于不同场景的幂等性技术实施方案

背景在实际操作的过程中很多业务都需要校验操作的幂等性,譬如:防止表单重复提交账户金额扣减MQ消息的重复消费幂等性的概念幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。(通俗的理解就是,一次操作和多次操作产生的影响都是相同的)幂等性的技术实现DB操作...

2020-04-15 09:22:51 209

原创 MySQL优化:基于成本计算的优化

12 谁最便宜就选谁 ----MySQL基于成本的优化查询成本由两方面组成:IO成本MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。CPU成本读取以及检测记录是否满⾜对应的搜索条件、对结果集进⾏排序等这些操作损耗的时间称之为CPU成本。设计MySQL的⼤叔规定读取⼀个⻚⾯花费的成本默认是1.0,读取以及检测⼀...

2020-04-07 21:11:30 704

原创 kafka 权威指南笔记

1.2 kafka 登场1.2.1 消息和批次Kafka 的数据单元被称为消息。为了提高效率,消息被分批次写入 Kafka 批次就是 组消息,这些消息属于同一 主题和分区。1.2.2 模式可以理解是kafka的消息结构;序列化协议1.2.3 主题和分区主题可以被分为若干个分区 个分区就是一个提交日志。消息以追加的方式写入分区,然后以先入先出的顺序读取。由于一个主题可以被分为多个分...

2020-04-06 20:36:12 329

原创 JVM 监控工具使用

jmap(查看内存)-heap 打印内存统计的数据(在mac 上有bug)-histo[:live] 查看类在jvm中实例化的对象的统计;如果添加live参数,则只统计当前存活的对象jmap -dump:file=XXX.hprof,format=b pid 生成heapdump文件jmap -heapsh-4.1# jmap -heap 1Attaching to process...

2020-04-06 14:17:45 402

转载 InnoDB一棵B+树可以存放多少行数据?

一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最...

2020-01-03 10:26:14 140

转载 Git 之 revert

revert 可以取消指定的提交内容。当讨论 revert 时,需要分两种情况,因为 commit 分为两种:一种是常规的 commit,也就是使用 git commit 提交的 commit;另一种是 merge commit,在使用 git merge 合并两个分支之后,你将会得到一个新的 merge commitmerge commit 和普通 commit 的不同之处在于 merge ...

2019-12-27 10:33:24 231

转载 JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

需求描述当我们想要利用SpringBoot封装一套组件并发布给第三方使用时,我们就不得不考虑我们的组件能否被使用者正确引入使用,此处描述的时打包成 jar 包后 Spring 配置类不为扫描、未注册Bean的问题。解决方案此处提供三种解决方案,友好型依次提升。1、使用者手动配置 basePackages2、使用者通过注解方式启用配置3、SpringBoot 主动发现正文开始第一种:...

2019-12-17 10:05:53 923

原创 JAVA程序员基本修养笔记

数组及其内存管理java数组是静态的(静态变量被初始化之后不可以再次赋值),当数组被初始化之后该内存空间和数组长度都不可以变化。静态数组初始化 (指定数组内容,由系统指定数组长度)动态初始化(指定数组长度之后再次赋值数组内容)java数组变量是一种引用变量,数组变量并不是数组本身,他是指向堆内存中的数组对象对数组执行初始化,并不是对数组变量执行初始化,而是对数组对象初始化,分配一...

2019-11-04 08:51:22 131

转载 JAVA8日期API

https://blog.csdn.net/weixin_40413816/article/details/83658973

2019-09-11 18:07:24 115

转载 平时碰到系统CPU飙高和频繁GC,排查的基本解决思路

对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种:代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致Full GC次数过多,系统缓慢;代码中有比较耗CPU的操作,导致CPU过高,系统运行缓慢;相对来说,这是出现频率最高的两种线上问题,而且它们会直接导致系统...

2019-08-17 16:10:06 338

转载 JAVA8 Lambda reduce的用法

JAVA8-LAMBDA中reduce的用法理解、学习与使用 JAVA 中的 OPTIONAL

2019-08-05 18:40:05 4869

转载 SpringBoot 配置参数加载顺序

顺序如下:数字小的优先级越高,即数字小的会覆盖数字大的参数值,我们来实践下,验证以上配置参数的加载顺序。1、开发者工具 `Devtools` 全局配置参数;2、单元测试上的 `@TestPropertySource` 注解指定的参数;3、单元测试上的 `@SpringBootTest` 注解指定的参数;4、命令行指定的参数,如 `java -jar springboot.jar ...

2019-08-01 11:38:27 410

转载 http code 502/503/504

50X 的分析还是百度最真实

2019-05-17 11:19:05 2790

原创 JAVA多态

1、缺陷:覆盖私有方法2、缺陷:域与静态方法这里的静态和域 与私有方法类似;会开辟独立的空间进行存储。

2019-05-17 08:50:48 132

转载 【协议森林】彻底理解cookie、session、token

发展史1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮2、但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪...

2019-05-10 09:46:14 131

原创 线程池的实现方式

ThreadPoolExecutor概述:Executor框架的最顶层实现是ThreadPoolExecutor类,Executors工厂类中提供的newScheduledThreadPool、newFixedThreadPool、newCachedThreadPool方法其实也只是ThreadPoolExecutor的构造函数参数不同而已。通过传入不同的参数,就可以构造出适用于不同应用场景下...

2019-03-10 15:15:06 219

转载 JVM 概念与参数调优

JVM 基本概念JVM运行时数据区分类JVM栈 (Java Virtual Machine Stacks)堆内存 (Heap Memory)方法区 (Method Area)本地方法栈 (Native Method Stacks)程序计数器 (Program Counter (PC) Register)作者:张启露来源:CSDN原文:https://blog.csdn.ne...

2019-02-28 21:36:05 197

转载 IDEA使用git bash

IDEA Terminal修改为git bash如果不知道git bash的地址可以通过如下命令显示:git --exec-path修改git的中文编码问题:修改前:修改:修改后:

2018-12-10 14:07:45 1689 1

转载 mysql数据页存储与磁盘之间的关系

数据库存储和读取转载:https://my.oschina.net/u/1859679/blog/1581379在整个数据库体系结构中,我们可以使用不同的存储引擎来存储数据,而绝大多数存储引擎都以二进制的形式存储数据。在 InnoDB 存储引擎中,所有的数据都被逻辑地存放在表空间中,表空间(tablespace)是存储引擎中最高的存储逻辑单位,在表空间的下面又包括段(segment)、区(e...

2018-12-04 09:45:55 14583 11

原创 swoole coronute 连接池复用

swoole cronoute

2018-04-17 12:02:24 1623

原创 cetnos7 与windows双系统安装启动

安装1、首先安装cetnos7, 2、其次安装windows10 3、启动项中居然只会出现cetnos,并没有windows的开机启动项 4、安装ntfs-3g用于识别ntfs分区: yum install ntfs-3g5、 重新生成引导项:grub2-mkconfig -o /boot/grub2/grub.cfg出现windows的引导项, grub2引导windows7出现Setti

2017-10-14 00:11:34 922

转载 linux 磁盘分区

fdisk 磁盘分区磁盘分区

2017-09-26 15:04:57 419

原创 mysql 查询优化理解

优化方法该优化查询方法是在800W数据查询优化得出的总结 版本:mysql5.6,系统:cetnos7.1普通优化1、创建索引(根据业务关系,复合索引) 2、表分区(水平分区:根据查询的列来通过range水平分区,垂直分表:根据经常查询的条件新建一表(这个要结合索引来),不需要查询的条件再建一表,left join即可) 3、读写分离,读myisam,写innodB 4、php+Sphinx

2017-09-11 10:32:09 299

原创 TP5 M生命周期笔记

model生命周期分析笔记控制器实例化userinfo;use app\index\model\UserInfo;class Index{ public function index() { $user = new UserInfo(); //print_r($user); //var_dump($user->find(1));

2017-09-05 15:48:30 927

转载 laravel 异步消息队列

其他扩展 异步队列:gearmanlaravel queue 转载:queue的基本使用 laravel rabbitMQ 转载:rabbitMQ的laravel基本使用方法Supervisor(保证queue能自启动) cetnos7.0以上安装配置:http://blog.csdn.net/realghost/article/details/52783100cetnos6.0以上(Su

2017-08-22 10:56:04 900

原创 MYSQL数据库超大级别数据读

场景:当数据量达到一定千万级别的记录,且查询的字段又多的时候,此时将查询数据的缓存全部存储在php的内存当中会导致内存溢出。数据库查询://$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);$startMemory = memory_get_usage();function getDb(){ global $pdo

2017-08-16 11:18:50 384

原创 swoole 建立socket通信

swoole tcp连接 结合redis和数据库实现业务

2017-07-26 14:53:55 857

转载 mysql 字符集编码问题

字符集编码和排序规则 每一个数据库都包含了字符集编码和排序规则,其中数据库有自己的字符集编码和排序规则,而表也有自己的编码和排序规则,字段页同样拥有。所以当你修改字符集编码和排序规则的时候要搞清楚你到底要修改的是哪一个级别的字符集编码和排序规则。数据库,表,字段。 转载:字段级别的字符集排序规则的修改

2017-07-17 17:00:51 272

转载 mysql数据库主从同步

**mysql-version:**5.6对于下面要讲的主从复制的文章中有一个缺陷: file和position的对应的数据库在从数据库(slave/target)中运行 CHANGE MASTER TO MASTER_LOG_FILE='testdbbinlog.000008',MASTER_LOG_POS=107;该语句时,对应的参数master_log_file和master_log_po

2017-07-14 16:32:13 503

原创 mysqli防SQL注入(代码方面)

mysqli防SQL注入(代码方面)$link = mysqli_connect($url,$usr,$paw,$database) or die("Error " . mysqli_error($link)); 1、一般sql: (可以用mysql_real_escapec处理字符串避免mysql注入)$link->query("sql");2、规范写法: (这里的对象方式

2017-07-14 11:05:52 2134

原创 定时任务执行脚本文件

test.sh脚本: find /dir -maxdepth 1 -mtime +92 -name “.” -exec rm -rf {} \ ; -mtime +92 –设置时间为91天前; -name *.mail[12] –设置文件名称中包含mail1或者mail2; -exec rm -rf –查找完毕后执行删除操作 -r 删除文件夹 -f 强制删除; {} \ ; –固定

2017-04-07 15:00:26 816

原创 bootstrap中的坑 之 modal缓存

bootstrap3.*的modal一般用法都在模态框的使用办法里面,其中具体说一下缓存。使用场景:点击按钮弹出动态modal,加载modal的时候显示loading.gif图片,完全加载后显示完整的加载页面。点击其他按钮继续显示其他的modal页面(上一个modal页面不能显示出来)代码:type="text/javascript"> ;(function ($,wi

2017-04-01 17:35:17 6064 4

原创 laravel 之CMS

自动填充时间戳created_atupdated_at//将字符串的时间改为时间戳public function fromDateTime($value){ return strtotime(parent::fromDateTime($value));}创建或更新时自动返回 updated_at的值,这里我将其改为空public function setUpd

2017-03-28 16:03:17 605

原创 laravel 之数据迁移 migration

流程:1、创建数据php artisan migrate:make create_users_table [--table=users](修改)[--create=users]( 创建)[-- path=app/migrations]2、 php artisan migrate [--path=app/migrations] 运行(指定文件夹下的)数据迁移 3、 php artis

2017-03-20 10:57:32 1519

原创 laravel之 Request and response

1、$request->all() 获取所有传递的参数2、$request->method(),$request->isMethod() 判断请求类型3、$request->ajax() 判断是否为ajax请求4、$request->url() 请求路径

2017-03-17 10:22:34 369

转载 laravel validator验证

1、validator验证

2017-03-15 11:18:28 404

原创 mysql数据库 导出sql

mysql登陆:mysql -uusername -p password 导出: mysqldump -u username -p database --skip-lock-tables > database.sql

2017-03-08 09:14:29 810

空空如也

空空如也

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

TA关注的人

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