自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring Cloud Alibaba使用Seata实现分布式事务完全示例教程(1)

Spring Cloud Alibaba + Seata示例教程

2022-06-16 17:56:26 626 1

原创 使用Linux crontab开启定时任务

基本操作crontab -e 编辑crontab任务vim /var/log/cron 查看crontab服务执行日志/sbin/service crond reload 重载crontab任务数据/sbin/service crond restart 重启contab服务注意事项·不同于其他的cron表达式,Linux系统的crontab支持的最小粒度为分钟所以表达式比一般的表达式(比如Java调度任务中的)要少一位。典型的contrab表达式为*/5 * * * *,意思是每5分钟执行

2022-01-24 17:13:32 1587

原创 红黑树--原理,性质与应用

概述红黑树是一棵二叉搜索树, 主要用在更改比查询更加频繁的地方(而二叉平衡树用在搜索比更改频繁的地方).已经的一些性质:二叉搜索树上基本操作所花费的时间与这棵树的高度成正比.对于一棵完全二叉树, 这些操作的的最坏运行时间为O(lgn), 如果搜索二叉树退化为线性表, 则其最坏的运行时间是O(n).退化为线性表的搜索二叉树, 其操作时间为O(n):图(1)一棵完全二叉树的操作时间是O(lgn):图(2)搜索二叉树,平衡搜索二叉树,红黑树的区别与联系树种类是否完全二叉树是

2020-05-14 14:34:28 312

原创 Java动态代理

概述类图OriginalType1: 接口, 拥有method1, method2等方法. OriginalType2, OriginalType3也是接口.OriginalTypeImpl1: 是OriginalType1的实现类, 其他两个OriginalTypeImpl2,OriginalTypeImpl3分别是另外两个接口的实现类.InvocationHandler: 是实现了InvocationHandler接口的实现类, 并且持有originalInstance1,originalIn

2020-05-11 00:03:39 179

原创 Spring AOP 第一个简单示例

build.gradledependencies { compile group: 'org.springframework', name: 'spring-aop', version: '5.2.1.RELEASE' compile 'org.springframework:spring-context:5.2.1.RELEASE' compile 'org.springframework:spring-core:5.2.1.RELEASE' compile 'org.a

2020-05-10 22:34:44 158

原创 Spring IoC-依赖注入与属性装配(1)-自动装配

概述Spring容器能够通过检查ApplicationContext中的内容来实现依赖自动装配.自动转配的模式Spring IoC定义了几种装配模式可供选择:模式解释no不开启自动装配byName通过名称自动装配, 在容器中查找名称然后装配byType通过类型自动装配, 容器在内部查找匹配的类型进行自动装配, 如果存在多个会引发致命错误, 如果不村子一个则不会报错constructor通过构造函数自动装配, 和byType类似, 如果不存在bean, 则

2020-05-10 19:04:51 167

原创 Spring IoC-Bean生命周期

概述参考1.6.1. Lifecycle callbacksInterface BeanFactory

2020-05-10 16:30:44 204

原创 Spring IoC-依赖注入与属性装配(1)-概述

概述依赖注入有三种注入方式:通过stter注入.通过构造函数注入.通过InstanceFactory注入.Setter注入提示: 如果Java中没有任何构造函数, 则编译会自动生成一个默认的构造函数.使用XML方式实现Setter注入Java代码:public class A {}public class B { private int id; private boolean expired; private A a; public v

2020-05-10 14:12:45 184

原创 Spring IoC(1)-概述

概述IoC是指控制反转, 将本来由对象自己管理的依赖交由容器管理. 而Spring IoC则是一个IoC框架.其中最为重要的一些概念包括如下:容器: 是指容纳Bean的一个对象, 它包含了所有bean的元数据, 并且能够对bean实例化.Bean: 通过元数据创建的对象.重点Bean的生命周期Bean的Scope自动装配参考Spring IoC Docs...

2020-05-09 23:41:45 104

原创 jstack命令使用

jstack查看死锁/** * 哲学家吃饭问题: * 获取锁的顺序不一致导致死锁 */public class PhilosopherEatingProblem { static class Philosopher implements Runnable { private int id; private final Object chopstick1; private final Object chopstick2; pri

2020-05-09 11:00:03 692

原创 Java并发-CountDownLatch

概述一种同步帮助,它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。示例// 旅游巴士要等到每一个都准备好了才出发.public class CountDownLatchDemo { //代表游客准备任务 static class Traveler implements Runnable { private CountDownLatch re...

2020-05-07 00:23:33 126

原创 Java并发编程-同步工具类

概述同步工具类可以是任何一个对象, 只要它根据自身的状态来协调线程的控制流.比如阻塞队列, 信号量, 栅栏以及闭锁等.这些同步工具类都有一些特定的属性:它们封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待, 还提供了一些方法对状态进行操作,以及一些方法用于高效地等待同步工具进入预期状态.常见的同步工具类闭锁(Latch)设计动机: 延迟线程进度直到其达到终止状态, 闭...

2020-05-06 13:56:40 136

原创 Java并发编程-线程的状态与相互转换

概述解析根据源码, 可以看到线程拥有的状态枚举.// java.lang.Thread 1742 public enum State { /** * Thread state for a thread which has not yet started. * 新建状态, 线程还没有启动. */ NEW,...

2020-05-06 12:50:33 120

原创 Java并发编程-并发容器

概述同步容器将所有的操作都串行化,这虽然实现了线程安全, 但是代价是严重降低性能和并发性.并发容器是针对多个线程并发访问来设计的, 通过并发容器, 可以极大的提高伸缩性并降低风险.并发容器: ConcurrentHashMap, CopyOnWriteArrayList,Queue, BlockingQueue.并发容器ConcurrentHashMap使用分段锁(Lock stripi...

2020-05-06 11:59:28 106

原创 Java并发编程-同步容器类

概述同步容器类包括Vector和HashTable,二者是早前JDK的一部分,这些同步类是由Collections.synchronizedXxx等工厂方法实现的. 这些类线程安全的方式是: 将他们的状态封装起来, 并对他们的每个公有方法进行同步, 使得每次只有一个线程能够访问容器.迭代器与CurrentModificationException对容器类进行标准的迭代操作都是使用Iterat...

2020-05-06 09:42:32 122

原创 MySQL事务隔离级别-脏读,幻读,不可重复读

概述名词解释共享锁(shared lock): 这种锁允许事务对读锁定的对象进行读取操作, 同时允许其他的事务也对这个对象施加共享锁, 但是不能对锁定的对象进行写入, 共享锁的反面是排它锁.排它锁(exclusive lock): 一种可以防止其他事务锁定同一行的锁, 这种锁可能会阻止其他事务写入或者读取锁定的对象, 而InnoDB使用MVCC技术来实现对呗排它锁锁定的对象读取来提高并发性....

2020-05-05 01:35:04 286

原创 MySQL中InnoDB存储B+树的应用

概述一般情况在, 我们的在线交易系统(OLTP)的每次查询可能只是返回几条甚至说一条数据, 这时候添加索引才是有意义的.联合索引联合索引和单列的索引的创建方法是一样的, 不同的只是对多个列进行索引.联合索引的本质上也是一棵B+树, 而B+树都是按照键值(key)排序的, 单列索引的键值只有一个, 而联合索引的键值是有多个.创建一张表如下:create table t1 ( id int...

2020-05-04 15:26:48 218

原创 InnoDB中的Cardinality

概述并不是在所有的查询条件中出现的列都需要添加索引, 对于添加B+树索引, 要让访问的行数变小才有意义. 比如性别这样的字段, 一般只有两个取值: M或者F, 这时候他们的可取的范围是很小的, 称为低选择性使用这个条件执行SQL, 可能得到的是表中50%的数据, 这样的索引是没有必要的. 而对于姓名, 这样的重复的可能性相对更小, 在此字段上建立索引是可行的.查看选择性通过show in...

2020-05-04 13:08:08 275

原创 InnoDB存储引擎-内存-缓冲池

概述InnoDB存储引擎是基于磁盘存储的, 并将其记录按照页的方式进行管理. 而磁盘IO与内存IO的速度相差可能接近1000倍, 所以使用缓冲池(Buffer Pool)可以有效提高响应能力. 当数据库需要进行数据页读取的时候, 先将页数据存储在缓冲池中, 下一次再读取的时候, 先检查缓冲池中是否存在数据, 如果存在则称为命中(hit), 否则会读取磁盘上的页.为了提高大容量读取的效率, 缓冲...

2020-05-03 01:32:20 263

原创 在CentOS6安装MySQL5.7安装完成之后的启动

在CentOS 6上安装MySQL5.7// 安装repository, el6代表CentOS6, el7代表CentOS7yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm// 安装数据库yum -y install mysql-community-server//...

2020-05-03 01:05:52 329

原创 MySQL字符列前缀索引长度的选择

概述字符串列具有不定长得特点,可能长度为0也可能长度为1024,当我们频繁查询这个列的时候,我们可以为这个字符串列建立一个索引,但是这个索引不应该是不定长的, 我们应该来选择一个合适的前缀长度来建立索引.下面介绍找到最佳长度的过程.找到最佳前缀索引长度创建表create table city ( id int(11) not null auto_increment, cname var...

2020-05-02 03:02:33 1334

原创 使用SQL语句快速插入200w测试数据

# 创建表create table ref_table( id int(11) auto_increment, col1 varchar(233), col2 int(11), primary key(id));# 插入200w条数据(手动点击执行数次)INSERT INTO ref_tbl (col1,col2) SELECT CONCAT(RAND() * 200000, c...

2020-05-02 01:38:54 946

原创 MySQL创建索引

概述一般情况下,我们在创建表的同时创建索引参考13.1.14 CREATE INDEX Statement

2020-05-02 01:23:38 129

原创 MySQL中explain关键字

概述explain是去查看MySQL如何查询数据explain示例:EXPLAIN SELECT * FROM student WHERE `name`='Walter Yan' AND age=25idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra...

2020-05-01 15:15:53 272

原创 MySQL的JOIN总结

JOIN对于table_references部分 SELECT语句以及多表DELETE和 UPDATE语句, MySQL支持以下语法:table_references: escaped_table_reference [, escaped_table_reference] ...escaped_table_reference: { table_reference | { ...

2020-05-01 15:04:17 180

原创 数据库索引设计与优化读书笔记-1

作者想要达成的目标:试着把我们自己放在优化器的位置.展示如何使用这些知识来量化系统运行所涉及的工作.

2020-05-01 12:16:07 182

原创 高性能M\ySQL读书笔记

原则完成某件任务所需的时间度量,换句话说,性能就是响应时间.什么是性能?什么是性能优化?性能优化就是在一定的工作载荷下尽可能得降低相应时间....

2020-05-01 10:21:56 3595

原创 MyBatis动态SQL

本文章是<<深入浅出MyBatis技术原理与实战>>的读书笔记.概述MyBatis的动态SQL包含如下所示的元素元素作用备注if判断语句单个条件的判断choose,when,otherwise相当于Java中switch语句多重分支判断where用于构造where的辅助元素处理where的拼接问题set处理upda...

2020-04-29 23:59:01 421

原创 MyBatis主键回填获取自增主键

概述很多时候, 我们的数据库表是主键自增的, 我们在插入操作执行前无法获取到这个行的主键值, 所以我们可以用MyBatis的主键回填来获取到我们刚刚插入的行在数据库中的主键值.配置 <insert id="insertRole" parameterType="role" useGeneratedKeys="true" keyProperty="id"> inse...

2020-04-29 17:41:22 722

原创 MyBatis的自动映射

概述我们在使用select语句进行查询时候, 返回的是一个结果集(ResultSet), 但是我们需要的却是一个简单Java对象(POJO). 现在有以下常见问题:我们的规范POJO是驼峰式命名, 而规范的数据字段是下划线式的命名, 如何设置实现映射?我们如何配置实现嵌套的映射?MyBatis自动配置行为NONE: 取消自动映射.PARTICAL: 只会自动映射, 没有定义嵌套结...

2020-04-29 17:16:58 374

原创 MyBatis别名的使用

概述在MyBatis中, 很多地方我们需要配置全限定类名, 比如com.example.entity.Role就是一个全限定类名. 而这样的重复配置会让我们的文件看起来很长,所以我们可以配置一些别名, 在Mapper文件中直接使用别名.注册别名的两种方法方法1: 在configuration中配置typeAliases节点.// mybatis-cfg.xml<configurat...

2020-04-29 16:49:19 1051

原创 Spring Ioc过程

Spring IoC源码分析-obtainFreshBeanFactory()分析准备工作代码分析// AbstractApplicationContext 515public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) {...

2020-04-28 23:42:39 155

原创 判断是否为gzip文件 模板代码

package com.urun.flume.commons;import java.io.FileInputStream;import java.io.IOException;import java.util.zip.GZIPInputStream;public class App { public static void main(String[] args) throws I...

2018-04-27 17:28:49 1596

原创 FLume Sink模板代码

public class SimpleSink extends AbstractSink implements Configurable{ private static final Logger logger = LoggerFactory.getLogger(SimpleSink.class); @Override public synchronized void start() ...

2018-04-27 16:06:25 229

原创 ZooKeeper Java API 创建Session连接

package lab.anoper.zk.main;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.ZooKeeper;import java.io.IOException;import java.util.concurre...

2018-04-18 12:08:02 261

原创 kill -9 <PID>无法杀死一个进程

问题:使用 kill -9 PID 无法杀死一个进程.原因: 这个进程可能是一个僵尸进程(Zombie Process).解决:1. 查看僵尸进程:ps -ef | grep defunct#子进程, 父进程ps -ef | grep defunct | more2. 杀死僵尸进程的父进程:kill -9 PPID...

2018-04-17 19:52:59 9936 1

原创 HBase Shell基本命令

创建表create '&lt;table name&gt;', '&lt;column family&gt;', 'column family', ...create 'emp', 'personal data', 'professional data'列出所有表list#禁用一个表disable '&lt;tableName&gt;'disable 't1'启用一个表en...

2018-04-15 15:18:10 190

原创 Spark中RDD flatMap的示例

package examples;import constant.Constants;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.ap...

2018-04-09 21:01:47 1010

原创 Spark Accumulator示例代码

package examples;import org.apache.spark.Accumulator;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apach...

2018-04-09 17:49:40 277

原创 Spark SQL读取json文件

DataFrame是什么?是带有模式(Schema)的RDD, 类似于二维表,  有了Schema可以洞察更多的额信息.准备json数据, json数据需要是一行代表一个Row{"id":1, "name":"leo", "age":18}{"id":2, "name":"jack", "age":19}{"id":3, &q

2018-04-09 16:16:28 1567

易语言的皮肤

易语言的皮肤

2012-03-04

空空如也

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

TA关注的人

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