自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring整合MyBatis原理分析

文章目录前言SqlSessionFactory是怎么被创建的?SqlSessionFactoryBean谁替代了SqlSession?我可以直接使用Mapper接口吗?还有更简便地方式使用Mapper接口吗?前言原生MyBatis的调用流程如下 @Test public void TestExample() throws IOException { String resource = "mybatis-config.xml"; InputStream in

2021-05-06 18:41:20 13

原创 图文详解Java对象内存布局

文章目录对象内存布局对象头(Header)Mark WordClass Pointer(类型指针)数组长度实例数据(Instance Data)对齐填充(Padding)JOL工具包分析对象内存布局问题: 如果一个空对象,内存大小是多少呢?先抛出一个问题:一个空对象内存大小是多少?看完这篇文章或许会有收获对象内存布局对象头(Header)对象头包含Mark Word、类型指针和数组长度。Mark WordMark Word:用于存储程序运行时的标志位,如锁状态、GC分代年龄和哈希码等。在6

2020-12-17 22:26:04 88 1

原创 Maven依赖的传递性及使用规则

依赖引入依赖当 项目A 用到了 某jarB包中的某些类时,A 就对 B 产生了依赖。那么如何在项目 中以依赖的方式引入一个我们需要的 jar 包呢?比如项目A依赖了junit,则可以按如下方式引入依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.3-SNAPSHOT</version&gt

2020-12-06 11:42:58 49

原创 Maven的继承与聚合

继承由于非 compile 范围的依赖信息是不能在“依赖链”中传递的,所以有需要的工程只能单独配置,很容易造成版本不一致。比如项目A 依赖Junit4.1版本,项目B依赖Junit4.3版本,现在需要统一为4.9版本,手动到各个项目中改动固然可以,但可以使用继承机制借助父工程进行统一管理版本。步骤建立父工程 (打包方式要设置为pom)<parent> <groupId>com.wojiushiwo.test</groupId> <artif

2020-12-06 11:36:40 23

原创 Maven的生命周期

Maven的生命周期Maven 生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven 就可以自动化的执行构建命令了。Maven 有三套相互独立的生命周期,分别是:Clean Lifecycle 在进行真正的构建之前进行一些清理工作。Default Lifecycle 构建的核心部分,编译,测试,打包,安装,部署等等。Site Lifecycle 生成项目报告,站点,发布站点。它们是相互独立的,你可以仅仅调用 clean 来清理工作目录,仅仅调用 site 来生成站点。当然你也可

2020-12-06 11:27:52 28

原创 Redis数据结构常见使用场景

文章目录string1、借助setnx 实现分布式锁2、计数器3、分布式全局IDlist基于时间的消息hashset1、朋友圈、微博的点赞和与之类似的喜欢、关注等功能2、基于无序性实现抽奖功能3、实现基于社交软件的关注模型4、电商商品筛选zset热搜榜string基本操作命令SET key value //存入字符串键值对MSET key value [key value ...] //批量存储字符串键值对SETNX key value //存入一个不存在的字符串键值对G

2020-11-28 15:33:00 45

原创 xxl-job简单任务和分片任务

文章目录简单任务分片任务简单任务@Componentpublic class SimpleJobHandler { @XxlJob(value ="simpleJobHandler" ) public ReturnT<String> execute(String param) throws InterruptedException { IntStream.rangeClosed(1,20).forEach(index->{

2020-11-27 15:39:20 706

原创 xxl-job任务详解

文章目录任务管理新增任务页面字段释义1.1、路由策略1.2、运行模式BEAN模式GLUE模式1.3、阻塞处理策略1.4、子任务ID1.5、JobHandler1.6、Cron1.7、任务超时时间任务操作任务管理新增任务页面字段释义1.1、路由策略路由策略指一个任务选择使用哪个执行器去执行。这个参数只有当执行器做集群部署的时候才有意义。策略参数值详细含义第一个FIRST固定选择第一个机器最后一个LAST固定选择最后一个机器轮询ROUND依次选择执行

2020-11-27 15:34:52 1457

原创 xxl-job环境搭建

xxl-job 快速上手xxl-job 源码地址 https://github.com/xuxueli/xxl-jobXxl-job 中文文档 https://www.xuxueli.com/xxl-job/1、下载release版本的源码git clone https://github.com/xuxueli/xxl-job.git2、打开项目/doc 文档资料 包括"调度数据库" 建表脚本/xxl-job-core 公共jar依赖/xxl-job-admin 调度中心的源代码

2020-11-23 13:04:47 259

原创 docker+mysql 主从配置

文章目录拉取镜像创建volume、network运行镜像节点配置配置主节点配置从节点主机上建立账户并授权slave从机配置拉取镜像docker pull mysql:5.7创建volume、networkdocker volume create mysqldocker volume create mysql3307docker network create mysql-net运行镜像docker run -d --name mysql3306 -e MYSQL_ROOT_PASSWOR

2020-11-17 15:38:20 22

原创 docker安装rocketmq

文章目录1、选择镜像2、拉取镜像3、查看镜像4、运行镜像4.1、创建本地文件夹用于挂载容器内文件4.2、安装nameserver4.3、安装broker5、安装rocketmq 控制台6、查看容器FAQ:docker的出现 可以大大简化我们安装程序的开销,可以更方便地帮助我们管理中间件。1、选择镜像[root@wojiushiwo ~]# docker search rocketmqNAME DESCRIPTION

2020-11-17 15:35:09 192

原创 SpringBoot+Redis

添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置redis参数spring.redis.host=localhostspring.redis.port=6379sp

2020-11-17 15:28:04 31

原创 logstash的基本使用

文章目录logstash概述logstash安装运行logstash配置详解输入过滤输出案例举例1:使用Logstash展示标准输入、输出举例2:使用Logstash收集日志文件并输出到控制台举例3:使用Logstash收集日志文件并输出到es举例4:使用logstash输入 filebeat收集上的日志 并输出到控制台举例5:使用logstash输入 filebeat收集的日志 并解析字段 输出到eslogstash概述LogStash是开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据

2020-09-27 17:47:42 140

原创 kibana的基本使用

文章目录kibana概述kibana的安装与运行kibana常用工具数据探索DiscoverDashboard自定义DashboardDev Toolskibana概述kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。kibana的安装与运行kibana下

2020-09-27 17:42:16 281

原创 metricbeat的基本使用

文章目录概述metricbeat安装metricbeat启动案例举例1:收集系统运行的指标数据至es举例2:收集es运行的指标数据至es概述定期收集操作系统或应用服务的指标数据存储到Elasticsearch中,进行实时分析metricbeat安装去下载页下载,解压即可metricbeat启动./metricbeat -emetricbeat支持的输出类型:ElasticSearchLogStashKafkaRedisFileConsoleCloudmetricbeat也

2020-09-27 17:24:30 788

原创 Filebeat的基本使用

文章目录概述Filebeat下载页面Filebeat文件夹结构Filebeat启动命令Filebeat的处理流程常用配置解析输入类型配置解析输出类型配置解析Console输出ElasticSearch输出:LogStash输出案例举例1:Filebeat收集日志并输出到控制台举例2:Filebeat收集日志输出到控制台 并展示自定义字段举例3:Filebeat收集Nginx运行日志并输出到es举例4:基于Nginx module使用Filebeat收集Nginx运行日志并输出到esFilebeat工作原理

2020-09-27 17:19:43 804 1

原创 8、ElasticSearch的批量操作

批量操作1、Bulk操作支持在一次API调用中,对不同的索引进行操作。支持四种类型的操作:index、create、update、delete。操作中单条操作失败,并不会影响其他操作,返回结果包含每一条操作执行的结果。假设index:test的mapping定义如下:{ "test" : { "mappings" : { "user" : { "properties" : { "age" : { "type" :

2020-09-20 15:27:12 70

原创 7、ElasticSearch的结构化查询

文章目录数据准备工作1.1、term查询1.2、terms查询1.3、range查询1.4、 match查询1.5、bool查询1.5.1、过滤查询数据准备工作文档数据mapping如下:{ "user" : { "mappings" : { "people" : { "properties" : { "age" : { "type" : "integer" }, "hobby"

2020-09-20 10:01:46 129

原创 6、ElasticSearch的URI查询

文章目录0、准备工作0.1、数据准备0.2、profile搜索细节查看1、URI查询语法1.1、指定字段查询1.2、泛查询1.3、Phase(短语)查询1.4、布尔操作1.5、分组1.6、范围查询1.7、算数符号1.8、通配符查询0、准备工作0.1、数据准备给出user索引下people文档的数据,方便比对查询结果0.2、profile搜索细节查看当对搜索结果存在疑虑时,可以使用"profile"参数去查看搜索细节举例使用:## 查看字段数据等于20的数据 并查看搜索细节GET /hous

2020-09-19 13:07:41 124

原创 5、ElasticSearch的插件功能

1、插件1.1、查看本机安装的插件➜ elasticsearch-master ./bin/elasticsearch-plugin listanalysis-icuik1.2、通过RESTful api查看已安装插件URI:_cat/pluginsGET http://localhost:9200/_cat/plugins## 响应name component versionslave-1 analysis-icu 6.5.1slave-1 analysis-ik

2020-09-19 12:27:52 168

原创 4、ElasticSearch中的分词器

文章目录1、Analysis与Analyzer2、ElasticSearch的内置分词器2.1、Standard Analyzer2.2、Simple Analyzer2.3、Stop Analyzer2.4、WhiteSpace Analyzer2.5、Keyword Analyzer2.6、Pattern Analyzer2.7、English Analyzer2.8、中文分词2.9、自定义分词1、Analysis与AnalyzerAnalysis 文本分析是把全文本转换一系列单词(term/tok

2020-09-19 12:20:05 42

原创 3、ElasticSearch的增删改查

在进行实际操作之前,很有必要先了解下ElasticSearch中的基本术语及概念。1、基本概念1.1、索引(index)索引(index)是es对逻辑数据的逻辑存储,可以把索引看成关系型数据库的表。es可以把索引存放在一台机器或者分散存储在多台机器上,每个索引有一或多个主分片(shard),每个主分片可以有多个副本(replica)。索引也是文档的容器,是一类文档的结合。每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型。1.2、文档(document)存储在es中.

2020-09-19 11:23:23 59

原创 2、ElasticSearch可视化工具的安装

1、Elasticsearch-head的安装elasticsearch-head是一个为ES开发的一个页面客户端工具,可以方便我们进行可视化操作。下面介绍两种安装方法:通过源码安装方式elasticsearch-head是托管在github上的,https://github.com/mobz/elasticsearch-head,可以拉取源代码 进行本地编译git clone git://github.com/mobz/elasticsearch-head.gitcd elasticsea

2020-09-19 10:07:40 82

原创 1、Elastic Stack简介及ElasticSearch环境搭建

文章目录1、 Elastic Stack简介1.1、Elasticsearch1.2、Logstash1.3、kibana1.4、Beats2、Elasticsearch2.1、简介2.2、安装2.3、包结构介绍2.4、单机运行2.5、集群模式运行2.6、ElasticSearch的重启2.7、查看集群信息1、 Elastic Stack简介提到Elastic Stack,就得先说下ELK。ELK其实是Elasticsearch、LogStash、Kibana组件的简称。在ELK不断发展的过程中,不断地

2020-09-19 09:58:35 82 1

原创 删除镜像报错「image is referenced in multiple repositories」怎么解决?

1、查看镜像➜ ~ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEspringboot 1.0.0 fab5182e4cc3 About a

2020-07-31 08:51:51 112

原创 docker将镜像推送至镜像仓库

文章目录1、项目打包2、编写Dockerfile3、登录远程镜像仓库,为镜像打tag4、推送打好tag的镜像至远程仓库5、使用镜像这里以阿里云镜像仓库为例演示,将本地springboot项目生成镜像并推送至远程仓库1、项目打包mvn clean install -Dmaven.test.skip=true2、编写Dockerfile假设打包后的jar与Dockerfile文件在同一个文件夹下Dockerfile文件如下:FROM openjdk:latestMAINTAINER w

2020-07-31 08:38:28 983 1

原创 每天一个Linux命令之awk命令

文章目录AWK脚本的流程控制AWK的字段引用和分离记录和字段字段的引用awk的表达式awk条件语句循环while循环do循环for循环数组基本使用命令行参数数组AWK脚本的流程控制输入数据前例程BEGIN{}主输入循环{}所有文件读取完成例程END{}AWK的字段引用和分离记录和字段每行称作AWK的记录使用空格、制表符分隔开的单词称作字段 默认分隔符(空格 制表符)可以自己指定分隔的字段字段的引用awk中使用$1 $2 … $n表示每一个字段awk ‘{print $1,

2020-07-30 08:53:56 45

原创 每天一个Linux命令之sed命令

文章目录基本工作方式常用命令示例全局替换标志位寻址删除命令追加插入和更改读文杰和写文件命令n、p、=多行模式基本工作方式将文件以行尾单位读取到内存(模式空间)使用sed的每个脚本对该行进行操作处理完成后输出该行常用命令sed的替换命令s:sed ‘s/order/new/’ filenamesed -e ‘s/old/new/’ -e ‘s/old/new/’ filename …sed -i ‘s/old/new/’ ‘s/old/new/’ filename … 替换完会写会源

2020-07-30 08:43:22 64

原创 每天一个Linux命令之管道符、重定向

管道匿名管道(管道符)是Shell编程经常用到的通信工具管道符"|",将前一个命令执行的结果传递给后面的命令,如cat file.txt| grep 'hello' --color=autops -ef | grep java重定向一个进程默认会打开标准输入(通过键盘、终端等)、标准输出、错误输出三个文件描述符输入重定向 “<”【后者输入重定向到前者】Read var < /path/to/a/file[hadoop@localhost app]$ wc -l < /

2020-07-30 08:29:30 51

原创 每天一个Linux命令之free、fdisk、df、du命令

内存使用率查看freefree total used free shared buff/cache availableMem: 1882300 624976 485288 18372 772036 1044472Swap: 1048572 0 1048572free -m 以M为单位显示free -m

2020-07-29 08:32:28 168 1

原创 每天一个Linux命令之grep命令

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来命令格式:grep 参数 文件1...在多个文件中搜索某个内容grep "wojiushiwo" test.log test1.log //在test.log和test1.log中搜索含有wojiushiwo的数据行输出除match_pattern之外的所有

2020-07-29 08:19:30 51

原创 每天一个Linux命令之top命令

Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。top命令第一行:top - 18:03:08 up 21 days, 3:19, 2 users, load average: 2.76, 0.84, 0.86分别对应:系统当前时间 up 系统到目前为止运行的时间,当前登录系统的用户数量, load average后面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况top命令的第二行:Tasks: 240 total, 2 runn

2020-07-29 08:17:28 33

原创 每天一个Linux命令之vi编辑器的四种模式

文章目录vi的四种模式正常模式插入模式命令模式可视模式vi的四种模式正常模式插入模式命令模式可视模式正常模式正常模式下 hjkl可以控制光标往上下左右移动,其中h/l控制光标向左向右移动,j/k控制光标向上向下移动复制命令:yy命令 复制一整行y&命令 复制自光标所在处至行尾复制多行 如想在第三行开始 复制5行 则将光标移至第三行处 输入5yy 即复制了5行数据粘贴命令p命令 粘贴 复制的内容剪切命令dd 剪切一整行d& 剪切自光标所在处至行尾撤销命令

2020-07-29 08:11:49 46

原创 每天一个Linux命令之常用命令概览

文章目录常见目录结构帮助命令常见命令使用常见目录结构$ 普通用户# root用户/ 根目录/root root用户的家目录/etc 配置文件目录/bin 命令目录/sbin 管理命令目录/usr/bin /usr/sbin 系统预装的其他命令帮助命令man命令使用man是manual的缩写,如查看ls命令的使用 man lshelp命令的使用内部命令和外部命令使用稍有不同shell(命令解释器)自带的命令称为内部命令,其他的是外部命令可用type来判断命令是内部命令还是

2020-07-28 19:45:16 32

原创 基于Prometheus+Grafana 搭建监控平台

文章目录安装Prometheus1、从docker镜像操作搜索镜像,并拉取下来2、运行镜像3、在浏览器端访问http://localhost:9090即可进入prometheus管理页面Prometheus与SpringBoot集成安装Grafana1、从docker镜像操作搜索镜像,并拉取下来2、运行镜像3、在浏览器上访问http://localhost:3000Prometheus与Grafana整合1、配置Prometheus 设置其监控节点2、重启容器3、在Grafana中设置数据源4、从官网上选择

2020-07-28 08:50:42 148

原创 还不理解ThreadLocal的看过来

ThreadLocal是什么?ThreadLocal是Java类库提供的在多线程环境下保证对共享资源安全访问的类ThreadLocal与Thread、ThreadLocalMap是什么关系?通过对源码分析发现,ThreadLocalMap是每一个线程Thread类的成员变量,里面有一个键值对数据Entry[] table,可以认为是一个map。一个Thread对象持有一个ThreadLocalMap成员变量,而ThreadLocalMap依托Entry静态类来存储数据,Entry结构中key表

2020-07-04 14:39:02 101 2

原创 如何优雅地停止一个线程

通常情况下,我们不会手动停止一个线程,而是让线程运行结束自然停止。但是在异常情况下依然需要我们提前停止线程,如程序出错重启等。为什么不强制停止线程?对于Java而言,最正确的停止线程的方式是使用interrupt。但是interrupt仅仅起到通知被停止线程的作用。而被停止线程可以选择什么时候停止或者不停止。那么,为什么不强制停止线程呢?因为如果不了解对方正在做的工作而贸然强制停止线程可能会引发一些数据安全问题,为了避免造成问题就需要给对方一定的时间来整理收尾工作。如线程正在写入一个文件,这时收到终

2020-06-28 22:13:23 86

原创 MySQL主从复制问题集锦

问题一:‘COULD NOT FIND FIRST LOG FILE NAME IN BINARY LOG INDEX FILE’这个报错通常伴随着Slave_IO_Running: NoSlave_IO_Running: No 一方面原因是因为网络通信的问题也有可能是日志读取错误的问题。解决方案:从数据库停止slave slave stop;刷新master上binlog日志fl...

2020-04-28 22:49:50 62

原创 Semaphore类浅析

SemaphoreSemaphore,信号量。有时被称为信号灯,是在多线程环境下使用的一种设施,可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量,一旦该关键代码段完成了,那么该线程必须释放信号量,其他想进入该关键代码段的线程必须等待直到第一个线程释放信号量。举例说明:某广场有3个停车位,过来了6辆车,因此会有3辆车暂时没有车位,但是只要车位被空出...

2020-03-15 21:20:01 122

原创 CyclicBarrier类浅析

CyclicBarrierCyclicBarrier也可以向CountDownLatch`一样,协调多个线程的执行。只是略有不同的是,CountDownLatch是减至0,而CyclicBarrier是加至某个数字。举例:就好比 只有集齐了7颗龙珠才能召唤神龙常用API方法如下CyclicBarrier(int parties) 创建一个新的 CyclicBarrier,...

2020-03-15 21:19:22 105

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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