JAVA开发
文章平均质量分 53
灬点点
菜鸟
展开
-
Elasticsearch实战相关场景
Elasticsearch实战相关场景(固定排名类似广告第一位,搜索第二位,分词器,索引设计,云词等)原创 2022-03-14 19:17:36 · 1913 阅读 · 0 评论 -
多张图片合成PDF
多张图片合成PDFimport com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Image;import com.lowagie.text.Rectangle;import com.lowagie.text.pdf.PdfWriter;import lombok.extern.slf4j.Slf4j;import okhttp3.*;import org.原创 2022-01-06 22:04:20 · 703 阅读 · 0 评论 -
SpringBoot整合Mybatis以及Phoenix
Phenix介绍Phoenix是由saleforce.com开源的一个项目,后又捐给了Apache基金会。 它相当于一个Java中间件,提供jdbc连接,操作hbase数据表。 Phoenix是一个HBase的开源SQL引擎。 你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。前期准备jdk >= 1.8HBase 2.3.5Hadoop 3.2.2Phoenix 2.3-5.1.1-binSpringBoot 2.2.5.RELEAS翻译 2021-07-27 19:09:48 · 1005 阅读 · 0 评论 -
Compileflow入门教程
compileflow是一个非常轻量、高性能、可集成、可扩展的流程引擎。compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。compileflow-idea-designer是一款Idea插件。能够让你轻松完成原创 2021-07-19 10:32:12 · 4218 阅读 · 4 评论 -
接口性能优化指南、函数式接口案例、JDK9-JDK13新特性
一、接口性能优化指南1.代码是不是渣? 代码逻辑梳理与重构,去掉不必要的逻辑处理和外部查询2.SQL是不是烂?所写SQL是否缺乏优化,比如涉及Full Scan全表扫描3.需要进程缓存? 进程缓存:EhCache LoadingCache Caffeine4.需要远程缓存? Redis,MemCache二、函数式接口案例@FunctionalInterfacepublic interface BiFunction<T,U,R> { R apply(T t,U u);}原创 2021-04-19 08:18:17 · 299 阅读 · 0 评论 -
提高工作效率方法
1、公司公网网站经常卡顿,经查有些ip对网站发起频繁访问,疑似被黑客攻击,请定位出问题,并解决?答:写个shell脚本屏蔽这些高频 繁访问的ip(基于 firewall防火墙,网站是以nginx作为中间件,nginx日志路 径:/usr/local/nginx/logs,一分钟超过200视为频繁。或者使用阿里云或者其他云产品的安全组。#!/bin/bashDATE=$(date +%d/%b/%Y:%H:%M)NGINX_PATH=/usr/local/nginx/logs/access.log#翻译 2021-03-29 22:21:53 · 180 阅读 · 0 评论 -
GDB、监控JVM、LLDB、内存层级结构
一、GDB介绍:GDB是GNU Project调试器,它使您可以查看另一个程序在“执行”期间正在执行的操作–或该程序崩溃时正在执行的操作。GDB可以做四种主要的事情(以及支持这些事情的其他事情)来帮助您捕获行为中的错误:• 启动您的程序,并指定可能影响其行为的所有内容。• 使程序在指定条件下停止。• 检查程序停止时发生的情况。• 更改程序中的内容,以便您可以尝试纠正一个错误的影响,然后继续学习另一个错误。GDB 调试器已经对 C、C++、Go、Objective-C、OpenCL、Ada 等翻译 2021-03-26 23:23:26 · 418 阅读 · 0 评论 -
多源分库分表实现
项目架构:原理:采用哈希取余,然后定位存储或者查询哪张表依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https原创 2021-03-26 13:22:48 · 197 阅读 · 0 评论 -
抢购秒杀处理方案、分析热点数据
一、抢购秒杀处理方案特点:秒杀活动对稀缺或者特价的商品进行定时定量售卖,吸引成大量的消费者进行抢购,但又只有少部分消费者可以下单成功。因此,秒杀活动将在较短时间内产生比平时大数十倍,上百倍的页面访问流量和下单请求流量。秒杀3阶段:1、秒杀前:用户不断刷新商品详情页,页面请求达到瞬间峰值2、秒杀开始:用户点击秒杀按钮,下单请求达到瞬时峰值3、秒杀后:少部分成功下单的用户不断刷新订单或者退单,大部分用户继续刷新商品详情页等待机会本质:抢购/秒杀主要是解决热点数据高并发读写的问题。裁剪:抢购/秒翻译 2021-03-21 21:50:29 · 1588 阅读 · 0 评论 -
RocketMQ常见的错误
1、Please set the JAVA_HOME variable in your environment, We need java(x64)解决:• 本地需要配置 JAVA_HOME 使用命令 vim ~/.bash_profileJAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home"export JAVA_HOMECLASS_PATH="$JAVA_HOME/lib"PATH=".$PAT原创 2021-03-20 17:37:26 · 2483 阅读 · 0 评论 -
数字排在最前,英文字母其次,汉字则按照拼音进行排序,获取中文首字母
中文名字,按照A-Z方式进行排序。import cn.hutool.extra.pinyin.PinyinUtil;import com.alibaba.nacos.client.utils.StringUtils;import org.apache.commons.collections.CollectionUtils;import java.text.Collator;import java.util.Collections;import java.util.Comparator;imp原创 2021-03-18 14:46:01 · 1492 阅读 · 0 评论 -
CountDownLatch、commons-pool2、commons-pool
场景:CountDownLatch 的作用就是 允许 count 个线程阻塞在一个地方,直至所有线程的任务都执行完毕。之前在项目中,有一个使用多线程读取多个文件处理的场景,我用到了 CountDownLatch 。import cn.hutool.core.thread.ThreadUtil;import java.util.Arrays;import java.util.List;import java.util.concurrent.CompletableFuture;import java.翻译 2021-03-08 21:59:14 · 257 阅读 · 0 评论 -
Curl、OpenOffice 文件转换、Docker工具类、短url、MinIo工具类
一、MinIo工具类import com.tools.module.app.util.MinIoProperties;import io.minio.MinioClient;import io.minio.PutObjectOptions;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.sprin翻译 2021-03-08 16:09:59 · 546 阅读 · 0 评论 -
重试机制(Guava Retry)和(spring-retry)、观察者模式、内部消费者生产者工具
声明:详情请参考注释一、重试机制(Guava Retry)和(spring-retry)import com.github.rholder.retry.*;import lombok.extern.slf4j.Slf4j;import org.springframework.remoting.RemoteAccessException;import org.springframework.retry.annotation.Backoff;import org.springframework.re原创 2021-02-03 11:40:01 · 1299 阅读 · 6 评论 -
Retrofit、RxHttp、OkOne
一、Retrofit官网:https://square.github.io/retrofit/开源地址:https://github.com/square/retrofit简介:Retrofit是现在比较流行的网络请求框架,可以理解为okhttp的加强版,底层封装了Okhttp。准确来说,Retrofit是一个RESTful的http网络请求框架的封装。案例: <dependency> <groupId>com.squareup.ret原创 2021-01-30 21:05:23 · 722 阅读 · 0 评论 -
阿里云消息队列 MQ、数据同步 (canal rabbitmq 消息解析成 sql) 与 ( Maxwell rabbitmq 消息解析成 sql)、调用私有方法, 获取泛型类型Class, 被AOP
一、阿里云消息队列 MQimport org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.task.TaskExecutor;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;@Conf原创 2021-01-25 17:17:50 · 1083 阅读 · 1 评论 -
获取网络上下行速度、判断nginx是否运行、检查网络端口是否通、执行ssh连接工具、注解方式分布式锁
一、获取网络上下行速度import cn.hutool.core.date.DateUtil;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class NetWorkUtil { private static final int SLEEP_TIME = 2 * 1000; // 获取网络上行下行速度原创 2021-01-21 11:29:29 · 912 阅读 · 4 评论 -
缓存方式幂等性工具、消息队列方式幂等性工具、检测客户端服务端是否在线
1、缓存方式幂等性工具import cn.hutool.core.util.IdUtil;import com.alibaba.fastjson.JSON;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;im原创 2021-01-19 23:15:17 · 457 阅读 · 2 评论 -
FeignClient的配置对象、RestTemplate连接池配置对象、获取JDK动态代理/CGLIB代理对象代理的目标对象的工具类、Controller的环绕拦截类、Set拷贝、List拷贝
一、RestTemplate连接池配置对象。import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;import org.apache.http.client.HttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.springframework.boot.autoconfigure.condition.Conditio原创 2021-01-05 17:15:50 · 449 阅读 · 2 评论 -
SandBox-repeater安装使用记录
SandBox简介JVM沙箱容器,一种JVM的非侵入式运行期AOP解决方案。底层运行原理是结合了ASM框架中JVM的agent、attach机制注入目标程序更详细的介绍说明请参考:https://github.com/alibaba/jvm-sandboxSandBox-Repeater简介基于SandBox基础上开发出的录制回放Module,目前该Module已经支持的插件类型有:http、dubbo、ibatis、mybatis、java、redis、hibernate、spring-data翻译 2020-12-31 15:35:02 · 1745 阅读 · 1 评论 -
HyperLogLog、获取一个类的注解、运行lua脚本工具
一、HyperLogLog统计 PV :每个网页一个独立的 Redis 计数器就可以了,这个计数器的 key 后缀加上当天的日期。这样来一个请求,incrby 一次,最终就可以统计出所有的 PV 数据。统计UV: UV 不一样,它要去重,同一个用户一天之内的多次访问请求只能计数一次。这就要求每一个网页请求都需要带上用户的 ID,无论是登陆用户还是未登陆用户都需要一个唯一 ID 来标识。import org.springframework.data.redis.core.HyperLogLogOpera翻译 2020-12-31 14:43:48 · 194 阅读 · 0 评论 -
验证码工具类、获取服务器资源、i18n资源文件
一、发送验证码工具类import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;import com.aliyuncs.exceptions.ClientException;impo原创 2020-12-27 18:27:17 · 337 阅读 · 0 评论 -
OSS上传文件返回前端上传进度三种方式
一、采用前端定时轮询请求接口1.1、上传文件 @Value("${oss.endpoint}") private String endpoint; @Value("${oss.accessKeyId}") private String accessKeyId; @Value("${oss.accessKeySecret}") private String accessKeySecret; @Value("${oss.bucketName}")原创 2020-12-20 00:04:24 · 4803 阅读 · 10 评论 -
JAVA后端一键部署服务
一、JAR包部署1、添加ECS服务器配置2、创建上传jar包到服务器3、添加命令与配置/root/app/sh /root/app/rebuild.shclean install选择本地打包的jar包、一般在target目录中,选择Upload File进行上传、他会自动运行shell脚本命令4、rebuild.shkill -9 $(netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }');原创 2020-12-19 21:26:06 · 2783 阅读 · 2 评论 -
mybatis-plus流式查询、8款redis可视化工具、JAVA工具集
一、mybatis-plus流式查询import com.imooc.stream.domain.User;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.cursor.Cursor;@Mapperpublic interface原创 2020-12-14 23:40:27 · 984 阅读 · 0 评论 -
springboot集成tidb
一、介绍tidbTiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。同时兼容 MySQL 协议和生态,迁移便捷,运维成本极低。官网:https://pingcap.com/二、使用docker安装tidb1、修改docker镜像源2、安装部署命令2.1、下载docker-composegit原创 2020-12-03 00:56:41 · 8689 阅读 · 2 评论 -
获取请求响应时间、数学计算相关的工具类库、异步返回
一、后台打印请求响应时间等数据1.1、使用shiro实现import lombok.extern.slf4j.Slf4j;import org.apache.shiro.web.servlet.AdviceFilter;import org.springframework.core.NamedThreadLocal;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.se原创 2020-11-29 16:31:32 · 648 阅读 · 2 评论 -
后端游戏开发入门
一、题记2020年11月21日,由于自己笔记本电脑充电,自动断电重启,想买一台二手电脑,学习编程,敲敲代码。公司的电脑不怎么样,IDEA打开需要1分钟左右,可能插件安装很多导致的吧。然后在咸鱼上找找有没有二手电脑,可能机缘巧合,遇到一位游戏后端开发,在上大学的时候就想做一名后端游戏开发,然后问那位大佬,游戏后端开发用什么框架,直接说底层基于netty,手写框架。此时震惊了。目前了解游戏开发大部分使用C++、少部分使用go、但是使用java开发第一次了解。我所了解java开发做web的服务端很多。但是对于游原创 2020-11-21 19:57:26 · 7009 阅读 · 0 评论 -
校验url和win10环境安装Ubuntu系统到D盘
一、两种方式校验url是否格式正确与是否有效 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.11.0</version> </dependency>原创 2020-11-06 13:37:30 · 911 阅读 · 0 评论 -
优化前端资源加载
一、优化前端资源加载js加载资源方式:1.1、使用内联图片,也就是将图片转换为base64编码的data-url。这种方式,其实是将图片的信息集成到css文件中,避免了图片资源的单独加载。但图片内联会增加css文件的大小,增加首屏渲染的时间。1.2、使用js代码对图片进行预加载。preloadImage() { const imgList = [ require('@/assets/imgs/error.png'), require('@/assets/im原创 2020-10-24 21:41:19 · 354 阅读 · 0 评论 -
ThreadLocal与工具类
一、实现ThreadLocalimport org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.HashSet;@RestControllerpublic class StatController { static Integer c = 0; /**翻译 2020-10-19 23:41:46 · 570 阅读 · 0 评论 -
FTP工具类
一、依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.1.1</version> </dependency> <dependency>原创 2020-09-29 23:47:14 · 4862 阅读 · 0 评论 -
轻量级规则引擎
一、aviator规则引擎依赖:<!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator --> <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId>翻译 2020-09-27 00:00:59 · 998 阅读 · 0 评论 -
springboot实现webrtc
一、项目结构二、依赖和配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org翻译 2020-09-20 22:27:15 · 6807 阅读 · 20 评论 -
复制文件工具与下载文件工具
一、FileUtils.copyInputStreamToFile();说明:使用: File newFile = new File(path); InputStream inputStream = new ByteArrayInputStream(bytes); FileUtils.copyInputStreamToFile(inputStream, newFile);二、FileCopyUtils.copy();说明:使用: File new原创 2020-09-16 22:07:31 · 519 阅读 · 0 评论 -
java开发采坑之路续集
1.在web环境中使用ThreadLocal出现数据错乱原因:线程可能重用,导致ThreadLocal中的数据会串解决办法:ThreadLocal<String> localName = new ThreadLocal();try {localName.set("Java");// 其它业务逻辑} finally {localName.remove();}2.使用ConcurrentHashMap出现线程安全问题和性能并未提升原因:ConcurrentHashMap只翻译 2020-09-10 00:16:36 · 340 阅读 · 0 评论 -
csv导入导出
一、依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.7</version> </dependency>二、工具类import lombok.exte原创 2020-09-08 22:31:21 · 320 阅读 · 0 评论 -
解决高并发相关问题
一、用于解决高并发下System.currentTimeMillis卡顿import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.ThreadFactory;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicLong翻译 2020-09-06 14:05:42 · 452 阅读 · 0 评论 -
fastdfs工具类与采坑记
一、docker安装Fastdfs1.查找Docker Hub上的redis镜像docker search fastdfs2.拉取镜像docker pull delron/fastdfs #拉取最新版本4.使用docker镜像构建tracker容器(跟踪服务器,起到调度的作用):docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtim原创 2020-09-05 21:59:11 · 1599 阅读 · 1 评论 -
kryo、fst实现序列化
一、fst介绍:FST fast-serialization 是重新实现的 Java 快速对象序列化的开发包开源地址:https://gitee.com/mirrors/fst依赖: <!-- https://mvnrepository.com/artifact/de.ruedigermoeller/fst --> <dependency> <groupId>de.ruedigermoeller</gro原创 2020-09-02 23:54:31 · 1733 阅读 · 0 评论