自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot结合mongodb使用(二)

【代码】springboot结合mongodb使用(二)

2024-04-01 21:34:51 204

原创 mongodb 基础查询使用

再根据source分组 统计出每天每个来源的总数。将分组后的数据重新命名 ,再次根据时间分组。根据时间分组(时间格式化)最后 根据时间 升序排序。

2024-03-31 10:09:55 257

原创 springboot结合mongodb使用(一)

【代码】springboot结合mongodb使用(一)

2024-03-24 13:57:45 271

原创 ElasticSearch 与java的结合使用(二)

根据日期按天统计,没有数据则0代替。

2024-03-10 15:30:17 416

原创 ElasticSearch 与java的结合使用(一)

编写配置类(可配置多数据源)

2024-03-10 13:50:56 563

原创 ElasticSearch 搜索推荐

【代码】ElasticSearch 搜索推荐。

2024-03-10 13:20:31 578

原创 ElasticSearch 模糊查询

【代码】ElasticSearch 模糊查询。

2024-03-10 09:09:39 398

原创 ElasticSearch聚合查询

【代码】ElasticSearch聚合查询。

2024-03-09 15:45:01 484

原创 ElasticSearch 分词器

可以通过修改IKAnalyzer.cfg.xml中的words_location可以对分词器 进行热更新,words_location是一个远程api地址返回分词的文件。下载源码(sorcecode.zip)地址:https://github.com/infinilabs/analysis-ik/releases/tag/v7.15.2。下载地址:https://github.com/infinilabs/analysis-ik/releases/tag/v7.15.2。主词库:main.dic。

2024-03-03 17:55:01 444

原创 ElasticSearch 基础查询语句

【代码】ElasticSearch 基础查询语句。

2024-03-03 15:08:13 390

原创 ElasticSearch 环境安装

执行 D:\fenbushi\elasticsearch-7.15.2-windows-x86_64\elasticsearch-7.15.2\bin\elasticsearch.bat就行,点开http://localhost:9200/ 可以正常访问则启动成功。运行 D:\fenbushi\kibana-7.15.2-windows-x86_64\bin\kibana.bat。下载地址:https://www.elastic.co/downloads/past-releases#kibana。

2024-02-24 11:08:09 682

原创 Hystrix + influxdb + Grafana 监控的搭建

Hystrix + influxdb +Grafana

2022-07-16 09:58:57 202 1

原创 Grafana监控安装和监控看板创建

下载安装包官网参考地址:https://grafana.com/docs/grafana/latest/installation/rpm/wget https://dl.grafana.com/oss/release/grafana-7.2.0.linux-amd64.tar.gz解压安装包tar -zxvf grafana-7.2.0.linux-amd64.tar.gz启动服务./bin/grafana-server web登录地址:http://localhost:3000..

2022-07-16 09:58:05 933

原创 influxdb2操作

1 下载安装包wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.1.1-linux-amd64.tar.gz下载 rpm文件wget https://mirrors.tuna.tsinghua.edu.cn/influxdata/yum/el7-x86_64/influxdb2-2.1.1.x86_64.rpm安装 yum localinstall influxdb2-2.1.1.x86_64.rpm2 解压tar xvz

2022-07-03 10:00:26 1025 1

原创 influxdb 数据归档处理

建立归档measurement 的保存策略查看所有保存策略show retention policies on pic删除保存策略DROP CONTINUOUS QUERY “pic_query01” ON “pic”CREATE RETENTION POLICY "1Year" ON "pic" DURATION 365d REPLICATION 1策略名称 "1Year"保存时间 365,pic库,副本数1创建连续查询显示所有连续查询SHOW CONTINUOUS QU.

2022-04-16 21:38:21 1159

原创 CompletableFuture

thenCombine() // 两个任务一起执行完成后结果汇总 public static void thenCombine() { CompletableFuture<String> fi = CompletableFuture.supplyAsync(() -> { ThreadUtil.printThreadInfo("厨师炒菜"); ThreadUtil.sleep(200); re

2021-07-24 13:57:53 75

原创 mysql 索引优化

索引 失效的常见情况复合索引多个列时,查询条件中没有索引第一列时索引会失效,如果跳过中间列,索引也只能用到部分列,中断的地方后索引列没有使用到。不要在索引列上做任务计算操作,函数,类型转换,因为会导致索引失效全表扫描。索引列使用范围查询会导致复合索引中后面的索引列失效使用!= ,<>,is null ,is not null 会导致索引失效以like ‘%aaa’ 查询会导致索引失效,可以使用覆盖索引防止失效字符串不加单引号索引会失效少用or,or连接导致索引失效– 删除表

2021-07-18 09:55:23 59

原创 mysql 执行计划查看

执行计划字段解释id 表的加载顺序表的加载顺序,ID相同时从上到下,ID不同时越大的越先执行select_type 查询类型SIMPLE 简单查询,不包含子查询和UNIONPRIMARY 查询中包含任何复杂部分,最外层查询为PRIMARYSUBQUERY select或者where 包含子查询DERIVED 在from列表中包含的子查询被标记为衍生虚表,mysql会递归执行这些子查询,结果放到临时表里UNION 若第二个select

2021-07-11 16:40:08 92

原创 mysql基础语法

– 选择指定的库use test0706;– 显示表结构desc article;– 查询表达式select 900*2;– 查询函数select VERSION();– 去重select DISTINCT card from class;– + 号的作用select 100+90; – 都是数字做加法select ‘join’ + 90; – 一方是字符,则将字符转换成数字,成功做加法,失败字符就变成0做加法select null + 90; – 一方是null结果为null

2021-07-11 09:23:48 91

原创 JVM命令行工具

jps (java process status)查看正在运行的java进程jps -l 显示全类名jps -m 输出虚拟机启动时传给main函数的参数jps -v 列出虚拟机启动时的JVM参数jstat 查看JVM的统计信息-class 打印类加载相关信息,类 的装载,卸载数量,总空间,类加载消耗时间等jstat -class 20780(进程ID)1000毫秒打印一次jstat -class 20780 10001000毫秒打印一次,共打印10次jstat -class

2021-05-16 21:12:21 188

原创 JAVA NIO通信基础详解

NIO(non-Block IO)和OIO(Old IO)对比(1) OIO是面向流的,NIO是面向缓冲区的.OIO是面向字节流或者字符流的,以流式的方式从一个流中读取一个或者多个字节,因此不能随意改变读取指针的位置。NIO引入了Channel(通道)和Buffer(缓冲区)的概念。只需从通道读取数据到缓冲区或者从缓冲区写到通道中,可以随意的读取缓冲区的任意位置数据。...

2021-02-16 18:52:31 129

原创 HDFS 命令

显示目录信息hadoop fs -ls /创建目录hadoop fs -mkdir -p /pys/mkdirtest剪切文件 本地目录 HDFS目录hadoop fs -moveFromLocal ./test.txt /pys/拷贝文件 本地目录 HDFS目录hadoop fs -copyFromLocal ./test.txt /pys/hadoop fs -put ./test.txt /pys/拷贝文件到本地 HDFS目录 本地目录hadoop fs

2021-01-03 11:30:04 206

原创 hadoop 分布式环境搭建

伪分布式1 修改 vim etc/hadoop/core-site.xml 文件添加 //hadoop 是主机名称<configuration> <!-- 指定HDFS中nameNode地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop:9000</value> </proper

2020-12-06 18:49:04 105

原创 shell 笔记

// 定义变量A=1 不能有空格// 撤销变量unset A// 声明静态变量 注意:不能unsetreadonly B=9//变量命名规则字母,数字,下划线组成,不能以数字开头,环境变量建议全大写// 提升变量为全局变量export B// 特殊变量1 $n $0 文件名 $1-9传入脚本的参数超过10的用9 传入脚本的参数 超过10的用9传入脚本的参数超过10的用{10}2 $# 获取输入参数个数3 $* 代表命令行中所有参数,把参数看成一个整体4 $@

2020-11-29 10:36:41 107

原创 linux 常用命令

// 创建文件夹mkdir kk// 创建文件touch kk.txt// 创建locate 目录库updatedb// 快速定位文件locate kk.txt//查看文件内容cat kk.txt// 查看并且编辑内容vim kk.txt//搜索kk文件内 hello 所在行数并展示内容cat kk.txt | grep -n hello 区分大小写cat kk.txt | grep -ni hello 忽略大小写...

2020-11-23 22:19:34 115

原创 Fork-Join API

RecursiveActionRecursiveAction 执行任务没有返回值,只执行一次。分解任务public class MyRecursiveAction extends RecursiveAction { private int beg; private int end; public MyRecursiveAction(int beg, int end) { super(); this.beg = beg; this.end = end; } @Overrid

2020-10-05 18:20:56 201

原创 ScheduledExecutorService API计划任务使用

使用callable进行延迟运行public class MyCallableA implements Callable<String> { @Override public String call() throws Exception { String name = Thread.currentThread().getName(); System.out.println(name+" callA start "+ System.currentTimeMillis());

2020-10-05 12:40:26 331

原创 ExecutorService API的使用

T invokeAny(Collection<? extends Callable> tasks) throws InterruptedException, ExecutionException;方法取得第一个完成任务的返回结果,具有线程阻塞特性,当第一个任务完成后会调用interrupt()方法中断其他任务,所有其他任务可以根据 if(Thread.currentThread().isTnterrupt()==true) 来判断任务是否继续执行。1 无 if(Thread.curren.

2020-10-04 17:54:00 162

原创 CompletionService API的使用

CompletionService 介绍接口CompletionService 是以异步的方式一边产生新任务,一边处理完成的任务结果,可以将任务执行和任务处理分离开,使用submit()执行任务,task()取得已完成的任务,并按照任务的时间顺序处理结果。使用CompletionService 解决Future阻塞的问题Future take() throws InterruptedException ;方法会先将执行完的任务Future对象返回,这样可以部分优化Future的线程阻塞问题,但是接口

2020-10-04 15:03:26 172

原创 Future和 callable API的使用

callable与runnable的区别1 callable接口的call()方法有返回值,而runnable的run()没有。2 callable接口的call()方法可以声明抛出异常,而runnable的run()不可以。V get() throws InterruptedException, ExecutionException; 获取线程执行的返回结果,具有阻塞性。V get(long timeout, TimeUnit unit) throws InterruptedException,

2020-10-04 11:32:31 109

原创 Phaser API的使用

Phaser 方法int arriveAndAwaitAdvance(); 当前线程到达屏障parties值加1,在此等候条件满足后再向下一个屏障运行,条件不满足时线程呈现阻塞状态。int arriveAndDeregister(); parties值减一;int getPhase();获取已经到达第几个屏障;boolean onAdvance(int phase, int registeredParties);通过新屏障的时候调用。返回true则屏障不等待,Phaser呈现无效/销毁状态,返回fa

2020-10-03 16:59:09 168

原创 CountDownLatch 与CyclicBarrier线程组团特性

CountDownLatch 多线程同步辅助类CountDownLatch latch = new CountDownLatch (1); 是给定计数为1,当运行CountDownLatch 类的线程判断计数不为0的时候则呈现等待状态,如果为0则继续运行。计数器无法被重置,计数操作是做的减法。await()实现等待,countDown()继续执行。`运动员比赛测试代码import java.util.concurrent.CountDownLatch;public class MyThread

2020-10-02 15:59:05 140

原创 Semaphore控制并发量

Semaphore 提供的功能是synchronized的升级版,可以实现对并发数量的控制。Semaphore 同步性acquire()方法获得一个许可,release()释放一个许可,Semaphore 可以控制获得许可的线程数量,让线程排队执行任务,保证不会出现非线程安全的问题。(需要控制构造Semaphore 时的参数permits=1)。Semaphore 常用APIacquire(int permits) 指定获取许可个数。release(int permits)指定释放许可个数

2020-08-16 15:53:28 171

原创 ThreadPoolExecutor的使用(二)

1. ThreadFactory+executor+UncaughtExceptionHandle处理异常对线程池的创建中可以使用自定义的ThreadFactory,使用自定义的ThreadFactory时如果出现异常完全可以自定义处理。MyThreadFactory 自定义的线程工厂,包含自定义的异常处理import java.lang.Thread.UncaughtExceptionHandler;import java.util.concurrent.ThreadFactory;publi

2020-08-02 15:15:04 319

原创 ThreadPoolExecutor的使用(一)

1. 常用的构造方法corePoolSize : 核心线程数maximumPoolSize : 最大线程数keepAliveTime: 线程数大于 corePoolSize 时,超过此时间则清除多余的空闲线程unit: keepAliveTime的时间单位BlockingQueue : 保存线程的任务队列 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSi

2020-08-02 12:46:31 162

原创 Executor接口与Executors创建简单线程池

Executor接口介绍Executor接口仅仅是定义了一种规范,没有实现任何功能。API接口源码public interface Executor { /** * Executes the given command at some time in the future. The command * may execute in a new thread, in a pooled thread, or in the calling * thread, at

2020-08-02 10:36:27 148

原创 深入理解volatile关键字

原子性是指在一次或者多次操作中,要么所有操作都执行成功,要么都执行不成功。可见性当一个线程对共享变量进行修改后,另外的线程可以立即看到修改后的值。有序性指代码在执行过程中的先后顺序,由于java编译器寄运行期的优化会导致执行顺序和代码顺序不一致。Java内存模型(JMM)如何保证原子性,可见性,有序性JMM只保证基本的读取和赋值的原子性操作其他都不保证,x=10是原子性的,x++,y=x之类的都是非原子性的。java提供如下方式保证原子性:使用synchronized关键字。使用java

2020-07-19 17:45:57 170

原创 JVM加载器的双亲委托机制

双亲委托机制介绍双亲委托机制有时也称父委托机制,当一个类调用loadClass之后并不会直接将其加载,而是先交给当前类加载器的父加载器尝试加载,知道最顶层的父加载器,然后再一次向下进行加载。loadClass方法源码 public Class<?> loadClass(String name) throws ClassNotFoundException { return loadClass(name, false); } protected Class

2020-07-19 15:30:30 124

原创 JVM类加载器与自定义类加载器

JVM内置的三大类加载器JVM提供了三大类加载器,不同的加载器负责将不同的类加载到JVM内存中,并且它们之间严格遵守父委托机制。根类加载器根加载器又称Bootstrap类加载器,是最顶层的加载器由C++编写,主要负责虚拟机核心库的加载,比如java.lang包都是根加载加载的,根加载器的加载路径可以通过“sun.boot.class.path”获取。 public static void main(String[] args) { System.out.println(System.getPro

2020-07-18 18:34:16 110

原创 类的加载过程

类的主动使用和被动使用

2020-07-18 14:43:05 91

空空如也

空空如也

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

TA关注的人

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