自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u010391342的博客

小步走 不停步

原创 基于SpringBoot实现的jvm远程监控图形化工具

源码地址:https://github.com/a870439570/boot-actuator 项目介绍 基于SpringBoot2.0 实现的jvm远程监工图形化工具,可以同时监控多个web应用 支付windows服务器和Linux服务监控 实现功能 用户管理模块 动态添加远程监控应用 ...

2019-01-26 11:36:03 1924 0

原创 一款简单微信小程序个人博客。后端基于SpringBoot实现

项目介绍 简单微信笔记小程序. 文档 https://a870439570.github.io/blog-sharon/ 项目架构 SpringBoot2.0 h2数据库 html2wxml 用于微信小程序的HTML和Markdown格式的富文本渲染组件,支持代码高亮(https://gi...

2019-01-11 09:24:35 1438 9

原创 Mongodb网页管理工具,基于Spring Boot2.0,前端采用layerUI实现

Mongodb-WeAdmin 项目介绍 Mongodb网页管理工具,基于Spring Boot2.0,前端采用layerUI实现。 源于线上环境部署mongodb时屏蔽了外网访问mongodb,所以使用不了mongochef这样方便的远程连接工具,所以Mongodb提供的java ap...

2018-11-21 16:24:22 226 1

原创 微服务分布式事务4种解决方案实战

文章目录分布式事务CAP理论CAP定理的应用BASE理论2PC提交阶段1:提交事务请求阶段二:执行事务提交中断事务3PC提交Seata分布式事务方案Seata术语Seata的2PC方案Seata执行流程分析Seata的实战案列TCC分布式事务TCC的三个阶段TCC的三种异常处理情况幂等处理空回滚资...

2019-12-02 16:37:02 162 0

原创 数据结构与算法-约瑟夫环

单向循环链表(约瑟夫环) 设编号为1,2,…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列 解题思路 1.首先初始化单向循环链表,然后...

2019-10-31 08:54:41 116 0

原创 SpringBoot集成Zookeeper

Zookeeper 伪集群安装部署操作 Java操作Zookeeper实现分布式锁和队列 文章目录分布式事物CAP理论CAP定理的应用BASE理论2PC提交3PC提交zookeeper集群的角色ZAB协议的核心思想ZAB协议两种模式ZAB协议消息广播流程图ZAB协议奔溃恢复SpringBoot集成...

2019-09-02 22:03:34 7337 1

原创 google protobuf学习笔记-Netty集成protobuf与多协议消息传递

原文出处:http://myblog.qinxuewu.club 什么是protobuf protobuf全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。它和XML或者JSON差不多,也就是把某种数据结构的信息,以某...

2019-07-18 08:20:27 51 0

原创 【从零开始学Go】使用goquery爬取影视资源网站

goquery官方文档地址 会用jquery的,goquery基本可以1分钟上手 goquery常用方法 Eq(index int) *Selection //根据索引获取某个节点集 First() *Selection //获取第一个子节点集 Last() *Selection ...

2019-06-20 11:23:48 388 0

原创 高性能MySQL第三本笔记总结(上)

无论何时,只要有多个查询需要在同一个时刻修改数据时,就会有并发问题。MySql主要在服务器层与存储引擎层进行并发控制。 假设数据库中国一张邮箱表,每个邮件都是一条记录。如果某个客户正在读取邮箱,同时其他客户试图在删除邮箱表中的某一条数据。这个时候,读取的结构就是不确定的了。在MySql中会通过锁...

2019-05-24 16:35:23 88 0

原创 高性能Mysql-优化数据库查询的几大基本原则

查询性能优化 优化数据库访问 确认程序是否在检索大量超过需要的数据 确认MySQL服务器层是否在分析大量超过需要的数据行 是否查询不需要的记录,常见的错误是误认为MySQL只会返回需要的数据,实际上mysql先是返回全部数据,在进行计算。一般使用limit区分 多表关联的时候返回了全部的列,只...

2019-05-17 10:30:19 144 0

原创 高性能MySql-创建高性能的索引的几大基本原则

创建高性能的索引 索引基础 索引有很多类型,Mysql是使用B+tree树索引,索引是在引擎层实现而不是服务层。不同引擎的索引工作方式不一样。 MyISAM使用前缀压缩技术使得索引更小,InnoDB按照原数据根式进行存储。MyISAM索引通过数据到物理位置引用被索引的行,InnoDB根据主键引...

2019-05-15 09:52:26 63 0

原创 高性能MySql-Schema与数据类型优化

Schema与数据类型优化 更小的通常好 尽量使用可以正确存储数据的最下数据类型,更小的数据类型通常更快,占用更小的磁盘,内存和cpu缓存,并且处理时需要的cpu周期更少 但是要确保没有低估需要存储的值的范围,因为在schema中的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。如果无法...

2019-05-14 19:59:03 48 0

原创 高性能MySql-数据库存储引擎

InnDB存储引擎 InnDB是Mysql默认的事务型存储引擎。它被设计用来处理大量的短期(short-lived) 事务,短期事务大部分情况是正常提交的,很少会被回滚。InnoDB的性能和自动崩溃恢复特性,使得它在非事务型存储的需求中也很流行 InnoDB的数据存储在表空间(tablespac...

2019-05-02 16:34:16 63 0

原创 高性能MySql-并发与事务

无论何时,只要有多个查询需要在同一个时刻修改数据时,就会有并发问题。MySql主要在服务器层与存储引擎层进行并发控制。 假设数据库中国一张邮箱表,每个邮件都是一条记录。如果某个客户正在读取邮箱,同时其他客户试图在删除邮箱表中的某一条数据。这个时候,读取的结构就是不确定的了。在MySql中会通过锁...

2019-04-28 22:02:02 1002 0

原创 SpringBoot2.x集成Sharding-JDBC实现分库分表

概述 ShardingSphere,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。定位为轻量级Java框架。其实就是一个增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。内部改写了SQL的添加和查询规则。适...

2019-04-25 21:14:35 6448 3

原创 Spring Boot 自定义一个starter

SprngBoot之所以现在这吗火热,是因为spring starter模式使我们日常模块化开发独立化, 模块之间依赖关系更加松散,更加的方便集成 如何实现 首先建立一个普通maven工程,修改pom配置文件 <dependencies> <dependency> ...

2019-04-24 21:24:12 73 0

原创 Docker技术学习笔记

概述 Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。 Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。 CentOS7 Docker 安装 Doc...

2019-04-19 19:00:51 64 0

原创 一条SQL查询语句是如何执行的

MySQL可以分为Server层和存储引擎层两部分 Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存...

2019-04-16 15:58:26 76 0

原创 【深入理解jvm虚拟机】内存溢出分析工具MAT

演示内存溢出 public class OutOfMemoryTest { /** * 定义一个静态内部类 */ static class Test{ } /** * 无限创建对象 模拟内存溢出 * * 启动参数设置: ...

2019-04-12 11:21:13 56 0

原创 JAVA核心技术36讲笔记

谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗? 一次编译、到处运行”说的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平台都有相应的JDK,安装 好JDK后也就有了Java语言的运行环...

2019-04-10 09:55:40 181 0

原创 volatile的内存语义

volatile的特性 volatile修饰的变量可以禁止指令重排序和保证了内存可见性和单一操作的原子性,类似i++这样的复合操作的原子性保证不了 有volatile关键字修饰的共享变量进行写操作数,会多出一个lock前缀指令。lock前缀指令其实就相当于一个内存屏障。在多处理器下,会将当前处理...

2019-04-05 14:00:51 154 0

原创 SpringBoot集成prometheus+Grafana监控

概述 Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包 。 添加依赖 <dependency> <groupId>org.springframework.boot</groupId&g...

2019-04-02 20:50:26 688 3

原创 【Interview】深入理解线程池ThreadPoolExecutor

文章目录概述线程池的五种状态线程池的参数常用方法源码分析类中其他属性构造方法提交任务addWorker执行任务关闭线程池 概述 使用线程池技术可以降低资源的消耗,提高响应速度和线程的可重复利用性 当提交一个新任务到线程池后,线程池首先会判断核心线程池(corePoolSize)里的线程是否都在执...

2019-03-31 13:50:38 145 0

原创 【Interview】深入理解阻塞队列之ArrayBlockingQueue

概述 ArrayBlockingQueue是一个由数组构成的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序,支持公平和非公平模式,默认情况下不保证线程公平的访问队列。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素 常用方法 ArrayBlockingQueu...

2019-03-30 12:14:11 48 0

原创 【Interview】深入理解ConcurrentLinkedQueue源码

概述 ConcurrentLinkedQueue是一个基于链接节点的无边界的线程安全队列,它采用先进先出原则对元素进行排序,插入元素放入队列尾部,出队时从队列头部返回元素,利用CAS方式实现的 ConcurrentLinkedQueue的结构由头节点和尾节点组成的,都是使用volatile修饰的...

2019-03-28 22:59:41 346 0

原创 【Interview】深入理解ThreadLocal源码

概述 ThreadLocal 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰。在高并发场景下,可以实现无状态的调用,适用于各个线程不共享变量值的操作。 内部使用静态内部类ThreadLocalMap存储每个线程变量副本的方法,k...

2019-03-27 12:50:38 56 0

原创 【Interview】深入理解Semaphore源码

概述 Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。 比如数据库的连接资源是非常有限的,如果同时有上千个线程去数据获取连接,对数据造成的压力是非常的,会造成数据库无法连接而报错,Semaphore就可以限制此类问题 Semaphore有非公平和公平模式,默认是非公平...

2019-03-23 14:19:50 61 0

原创 【Interview】深入理解CyclicBarrier同步屏障源码

概述 CyclicBarrie允许让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。 CyclicBarrier只能唤起一个任务,CountDownLatch可以同时唤起多个任务 CyclicBarrier可重用...

2019-03-22 14:57:21 61 0

原创 【Interview】深入理解CountDownLatch源码

概述 允许一个线程的或多个线程等待其他线程完成操作。和join方法类似,初始化对象时通过传入一个固定的计数器总数,线程方法执行时调用countDown给计数器减1,当计数器0时,就会恢复等待的线程继续执行。 CountDownLatch的计数器不能重用。只能使用一次 *常用的使用场景是提...

2019-03-21 22:16:15 109 0

原创 重拾数据结构与算法(七)查找算法

title: 数据结构与算法(七)查找算法 date: 2019-02-21 21:58:11 mathjax: true tags: 算法 categories: 算法 顺序表查找 顺序查找又叫线性查找,是最基本的查找技术。 它的查找过程是:从表中第一个(或最后一个)记录开...

2019-03-21 14:51:12 142 0

原创 【Interview】深入理解ReentrantLock锁

什么是ReentrantLock ReentrantLock是一个可重入的互斥锁锁, 实现Lock接口。具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义。ReentrantLock是显示的获取或释放锁,并且有锁超时,锁中断等功能。 内...

2019-03-20 13:44:03 124 0

原创 【Interview】什么是AQS队列同步器

什么是AQS AbstractQueuedSynchronizer是一个队列同步器,是用来构建锁和其它同步组件的基础框架,它使用一个volatile修饰的int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程排队的工作 通过改变int成员变量state来表示锁是否获取成功,当...

2019-03-19 11:18:17 263 0

原创 【PMP备考】关进术语和计算公式

关键术语 EVM: 挣值管理 ES:挣得进度。ES 是 EVM 理论和实践的延伸。如果挣得进度大于 0,则 表示项目进度提前了 AT:实际时间 SPI:进度绩效指数 EAC:项目完工预算 CA:控制账户 EVA:挣值分析 PV: 计划价值.在即定时间点前计划完成活动或WBS组件工作的预算成本 P...

2019-03-15 17:05:56 115 0

原创 重拾数据结构与算法(六)什么是二叉树

概述 二叉树是树的特殊一种,具有如下特点: 每个结点最多有两颗子树,结点的度最大为2。 左子树和右子树是有顺序的,次序不能颠倒。 即使某结点只有一个子树,也要区分左右子树。 二叉树五种基本形态 空二叉树。 只有一个根结点。 根结点只有左子树。 根结点只有右子树。 根结点既有左子树又有右子树...

2019-02-11 12:57:38 151 0

原创 重拾数据结构与算法(五)什么是队列

队列的概述 队列是一种先进先出 (First 10 First Out) 的线性表,简称 FIFO。允许插入的一 端称为队尾,允许删除的一端称为队头 队列的顺序存储 顺序存储的队列需建立一个大于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标0的一端即是队头.所谓的入队列操作,其...

2019-02-08 14:16:25 112 0

原创 重拾数据结构与算法(四)什么是栈

前言 今天是大年初三,在广州过的第四个还是第五个年了,已经忘了,中午吃完饭看书大话数据结构的这本书的栈与队列的关于栈的这篇文章。就去电影看黄渤演的疯狂的外星的人这部喜剧片。笑点还是挺多的。整部电影以外星文明想和人类建交而为起点。外星人在太空中意外坠楼到黄渤的训猴的马戏团。导致黄渤相依为命的猴...

2019-02-07 23:18:39 91 0

原创 重拾数据结构与算法(三)什么是双向链表

前言 今儿是大年初二,没事继续复习数据结构与算法。复习完双向链表下面就开始栈与队列的复习了。搞完这篇先去北京路溜达溜达。晚上在继续PMP和数据结构预算的学习 什么是双向循环链表 在单链袤的每个结点中,再设置一个指向其前驱结点的指针 域 。所以在双向链表中的结点都有两个指针域, 一个指向直...

2019-02-06 13:55:42 135 0

原创 重拾数据结构与算法(二)循环列表的实现

什么是循坏链表 将单链表中终端结点的指针端自空指针改为指向头结点,就使整个单链表形成一 个环,这种头尾:相接的单链表称为单循环链表,简称循环链表。 循坏列表的生活情境 比出 ,你是一业务员, 家在上海。儒要经常出差,行程就是上海到北京一路上的 城市,找客户谈生意或分公司办理业务。...

2019-02-05 23:39:02 100 0

原创 重拾数据结构与算法(一)顺序表和单链表的比较

线性查找法 线性查找又称顺序查。基本思路是从第一个记录开始, 逐个比较记录的关键字,直到和给定的K值相等,则查找成功; 若比较结果与文件中n个记录的关键字都不等,则查找失败。 时间复杂度:O(N) 二分查找法 二分查找法又叫折半查找法。比如小时候玩的猜数字游戏 ...

2019-02-03 19:34:40 208 0

原创 spring cloud alibaba系列(三)Nacos Config配置中心

概述 Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos Config就是一个类似于SpringCloud Config的配置中心 接入 SpringCloud项目集成Nacos Config配置中心很简单。只需要部署Nac...

2019-01-30 13:47:23 3320 0

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