自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Elasticsearch搜索出现NAN异常

【代码】Elasticsearch搜索出现NAN异常。

2023-08-07 18:29:25 1654

原创 Elasticsearch实现不同索引使用不同的ik分词器词典

Elasticsearch实现不同索引使用不同的ik分词器词典

2023-01-03 18:20:07 1142

原创 WebSocket实现聊天室

WebSocket实现聊天室

2023-01-03 11:44:00 954

原创 WebSocket&SSE实时动态数据展示

WebSocket SSE服务端实时推送数据

2022-12-23 11:23:14 1456

原创 mysql json类型

mysql json类型

2022-12-16 16:51:32 620

原创 Java文件目录相关操作

Java文件目录相关操作

2022-11-11 11:51:46 313

原创 Java文件拷贝方式和效率性能对比

Java文件拷贝方式和效率性能对比

2022-11-11 11:47:43 1666

原创 Java文件读取方式和效率性能对比

Java文件读取方式和效率性能对比

2022-11-11 11:41:46 3643

原创 Java读取单个大文件的json数据避免内存溢出(二多线程版本)

Java读取单个大文件的json数据避免内存溢出(二多线程版本)

2022-11-02 11:23:43 1312

原创 Java读取单个大文件的json数据避免内存溢出(一单线程版本)

Java读取单个大文件的json数据避免内存溢出

2022-11-02 09:55:47 1920

原创 Mysql(五)高级原理问题

1.Mysql的binlog有哪集中录入格式,有什么区别?1)3种格式,statement,row,mixedstatement模式:每一条会修改数据的sql都会记录binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高了性能。由于sql的执行是有上下文的,由于sql的执行是有上下文的,因为保存的时候,需要保存相关的信息。同时还有一些使用了函数之类的语句无法被复制。(例如hostname函数)3)row模式:不记录sql语句上下文相关信息。仅保存哪条记录被修

2021-07-21 14:51:34 189

原创 Mysql(四)配置文件my.cnf详解及参数调优设置

Mysql配置文件详解[client] # 客户端设置,即客户端默认的连接参数# 端口号port = 3306# 用于本地连接的socket套接字socket=/tmp/mysql.sock[mysql] # mysql的客户端是否命令自动补全,默认是不补齐no-auto-rehash# 数据库或数据表的默认字符集,等同于character_set_server参数default-character-set=utf8mb4#服务端默认的比对规则,排序规则collation_

2021-07-21 14:49:04 4195

原创 Mysql(三)查询修改架构流程分析

Mysql查询数据流程Mysql修改数据流程

2021-07-21 14:34:12 134

原创 Mysql(二)硬件优化及数据量测试

Mysql硬件优化1.CPU选择:数据库读写数据,一般是IO密集(E系列-至强),主频相对低,核心数量多。2.内存容量选择: 建议2-3倍CPU核心数量(带缓存的数据库内存可以多点)。(ECC带有健康检查的)3.磁盘选择:Flash最快–SSD–PCI-E4.存储RAID级别(使用RAID10):R0R1R5: 读多写少的数据R10:性能很高5.网络:硬件网卡绑定,交换机堆叠。多个网卡绑定,0 1 主备的网卡,防止网卡坏了,不能通信。bonding。I系列的CPU,

2021-07-21 14:25:01 253

原创 Mysql(一)Explain详解

概述概念:通过explain命令获取select语句的执行计划。explain主要用于分析查询语句或表结构的性能瓶颈。核心:表的读取顺序。(id)数据读取操作的类型。(select_type)哪些索引可以使用,实际使用了哪些索引。(possible_keys)表之间的引用。(ref)每张表有多少行被优化器查询。(rows)id概念:id列的编号是select的序号列。有几个select就有几个id。select查询分类:简单查询和复杂查询。复杂查询:简单子查询派生表(from

2021-07-21 14:17:01 135

原创 Nginx配置文件详解

# 配置worker进程运行用户 nobody也是一个linux用户,一般用于启动程序,没有密码#user nobody; # 配置工作进程数目,根据硬件调整,通常同于CPU数量或者2倍于CPU数量worker_processes 1;# 配置全局错误日志及类型,默认是error#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;# 配置进程

2021-05-05 11:07:46 117

转载 单例设计和静态方法

单例模式VS静态方法此文翻译文主要介绍下单例模式和静态方法的区别比较结论单例模式:是指实现了单例模式的类。下文提到单例类的时候指的是同一含义。静态类: 此处的静态类并不是特指语法意义上的静态类,而是指只包含静态方法的类。下文提到的静态类或静态或静态方法,在本文中的含义是一样的。另外一篇关于单例模式的不错的文章:http://poltora.info/blog/all-you-want-to-know-about-singleton/详细单例模式和静态类都很容易理解, 他们之间有一些相似

2021-04-15 22:48:10 736

原创 k8s部署应用案例

服务介绍t-sc 服务依赖于mysqlt-kateway 服务依赖于t-scdocker镜像推送下载mysql 5.7镜像制作sc kateway镜像参考任意节点登录harbor并推送镜像到harbor仓库将镜像推送到harbor仓库k8sMaster获取登录私服Harbor的秘钥docker login 192.168.10.102## admin Harbor12345在/root/.docker/config.json里面有一个秘钥cat /root/.docker/c

2021-04-13 23:49:37 1290

原创 K8s集群部署

使用kubeadm搭建k8s集群集群环境规划4台虚拟机,每台至少2G内存,2个CPU,能联网192.168.10.102 k8smaster节点192.168.10.103 k8snode1节点192.168.10.104 k8snode2节点192.168.10.105 nfs服务器虚拟机配置4台虚拟机都需要操作# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld# 关闭selinuxsed -i 's

2021-04-13 23:15:40 308 1

原创 java try catch finally return结果

public class T { public static void main(String[] args) { System.out.println(test1()); //5 Map<String, String> map = test2(); System.out.println(map.get("name")); //lisi System.out.println(test3()); //3

2021-03-23 17:47:13 136

原创 java父类子类代码块加载顺序

public class Father { static{ System.out.println("父类静态代码块"); } { System.out.println("父类构造代码块"); } public Father(){ System.out.println("父类构造函数"); } static class Son extends Father { static{ .

2021-03-23 17:30:00 138

原创 Hive核心

Hive的客户端和服务端客户端bin/hive 服务端元数据服务:nohup hive --service metastore 2>&1 &jdbc服务:nohup bin/hive --service hiveserver2 2>&1 &通过命令执行 使用-e参数执行hql语句: bin/hive -e "use test;select * from student;" 使用-f参数通过指定文本文件执行hql语句: bin

2021-03-23 17:24:08 158

原创 CAS

CAS定义CAS全称:CompareAndSwap,比较并替换。CAS操作包含3个操作数,内存位置V,期望值A,新值B。如果内存位置的值和期望值匹配,那么处理器会自动将该位置的值更新。否则处理器不做任何操作。无论哪种情况,它都会在CAS指令之前,返回该位置的值。怎样使用JDK提供CAS支持java提供对CAS操作,具体在sum.misc.unsafe类下:final native boolean compareAndSwapObject(Object var1, long var2,

2021-03-14 23:41:05 89

原创 HashMap&ConcurrentHashMap

HashMap原理,数据结构是什么,为什么?jdk7使用数组+链表。因为Hashmap是根据key计算hash值,从而得到哈希表的索引下标,而hash本质是数组实现。当出现hash冲突的时候,一个桶可能需要存放多个数据,hashmap将根据equals方法,判断hash冲突的key是否是同一个值,如果此时key不相同,利用头插法,将出现Hash冲突的Key+Value存放在链表上。缺点:如果一个链表特边长,查询的效率就会很低。链表的特性是增删快,查询慢。jdk8使用了红黑树来解决链表过长而导致效率

2021-03-14 23:35:34 123

原创 Session event listener threw exception java.lang.AbstractMethodError: org.apache.tomcat.websocket

异常: Session event listener threw exception java.lang.AbstractMethodError: org.apache.tomcat.websocket.server.WsSessionListener.sessionCreated(Ljavax/servlet/http/HttpSessionEvent;)原因springboot 2.1.x版本中tomcat引起的。解决去除pom依赖中的<!-- <depe

2021-03-12 11:53:55 1657

原创 线程池ThreadPoolExecutor整合Springboot使用

pom.xml为了在application.properties自定义的配置有提示 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>tru

2021-03-11 16:13:41 2215

原创 CompletableFuture任务编排案例

场景一个接口内有很多的业务逻辑,这些业务逻辑有的是可以并行执行的,有的是有先后顺序的。为了保证异步执行提升效率,并且异步中又有先后逻辑顺序,可以使用CompletableFuture异步编排的类。异步编排任务的创建及基本使用/** * 1:异步编排任务的创建及基本使用 * 使用线程池,异步执行任务。并且可以获取到任务的返回值。并且对任务的结果进行二次加工。 */public class CompletableFutureTest { public static ThreadPoo

2021-03-11 15:57:18 612

原创 nginx代理转发配置

需求centos服务器,192.168.4.1docker安装了两个springboot服务:192.168.8.20:8080 192.168.8.21:8081对外统一要用 192.168.4.1/xxx去访问所有的服务案例1本身访问服务2的url是: 192.168.8.21/ss浏览器输入 192.168.4.1/ss 就要访问到服务2的转发配置:server { listen 80; server_name localhost; charset

2021-03-05 19:54:52 4552

原创 Springboot 拦截器中使用application.properties配置的值

需求1.Springboot项目中,拦截器中想要获取到application.yml中的值2.Springboot项目中,拦截器中想要注入 RestTemplate或者其他对象3.Springboot项目中,使用了拦截器如果过滤掉swagger,让swagger可以正常访问。实现InterceptorProperties.java读取application.yml中user开头的配置。@Component@ConfigurationProperties(prefix = "user"

2021-03-05 13:39:29 1726

原创 zookeeper动态修改spring中的Enviornment对象中的配置

需求不停止代码,动态修改springboot的enviorment的值。原理:利用zookeeper的节点watch机制。原理分析1.Enviornment加载的时候会把application.properties中的文件,加载到enviorment–> propertySources–>propertySourcelist–>OriginTrackedMapProertySource中。2.我们可以再程序启动的时候,使用@PostConstruct注解,去连接zookee

2021-03-01 12:56:49 632

原创 ThreadLocal原理

1.原生jdbc如何实现事务伪代码 conn = DBpool.getConnection(); conn.setAutoCommit(false); insert(data,conn); //业务1 update(data2,conn); //业务2 conn.commit(); //事务必须在一个连接中才是有效的,因此必须要把获取到的conn连接传递到每个sql里面,才能保证事务。2.Spring对jdbc的事务如何实现的@Transactional注解保证事务,本质是AOP,

2021-03-01 11:50:17 178

原创 Redis核心原理

Redis 多路IO复用及原理Jedis源码 Jedis jedis = new Jedis("192.169.4.4", 6379); jedis.set("name","aa"); //socket jedis.close(); 底层是 this.socket = this.jedisSocketFactory.createSocket(); 创建了一个Socket socket-->tcp协议--->操作系统的内核 os kernel 模拟redis服务端和客户端

2021-02-27 22:34:38 156

原创 Mysql索引数据结构

索引的本质帮助Mysql高效查询的一种数据结构,存储在磁盘中。Mysql innodb存储引擎索引数据结构有哪些[1].hash索引[2].B + tree索引[3].为什么innodb引擎不让用户手动去控制hash索引?例如:select * from user where fname= ‘peter’根据fname=peter计算相应的hash值,找到9527这一行的记录指针。2)需要比对值是不是peter。(因为会有hash碰撞,如果不同的value通过一个hash计算达到了相

2021-02-27 12:36:56 148

原创 aop动态切换mysql数据源

需求Springboot项目,配置多个数据源,动态自动切换数据源。实现1.mysql建库建表1.创建4个库 test/customer/labormoney/employee2.对应库下创建表:person/customer/labor/employee3.每个表都是两个字段: id varchar(20),name varchar(20)2.pom.xml <parent> <groupId>org.springframework.boot&l

2021-02-26 17:21:45 251

原创 springboot注解和Aspect切面

场景分析 public User gerUser(String id) { //1.查询缓存 boolean cache = CacheUtil.isCache(id); //2.缓存命中,返回数据 if (cache) { System.out.println("缓存命中了-----------------"); return CacheUtil.getCache(id);

2021-02-26 11:49:29 489

原创 Spring data jpa 操作Mysql

1.maven依赖pom.xml <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compil

2021-01-31 22:26:24 178

原创 java(docker) 中文乱码

1.使用java -jar xxx.jar在linux服务器上打印出的中文日志乱码的解决: java -Dfile.encoding=utf-8 -jar xxx.jar2. docker容器中读取外挂的linux服务器上的中文文件名乱码: (文件上传到服务器中文乱码)设置容器的环境:ENV LANG=C.UTF-8如果使用的是docker-compose,如下: environment: LANG: C.UTF-8 LANGUAGE: en T

2021-01-31 21:52:32 718

原创 sonar之docker安装及代码检测使用

1.sonar之docker安装2.sonar之使用

2020-12-29 12:51:54 310 2

原创 大数据量sql文件导入mysql测试

1.sql文件说明a.sql 400M(3.7w条)b.sql 1.48G (17.3万条)c.sql 6G (24万条)主要存储的是互联网爬取的文章,包括内容。2.sql结构所有的sql文件的表结构如下:3.导入mysqlmysql使用docker安装mysql的my.cnf配置如下:[client]port = 3306socket=/tmp/mysql.sock[mysql]no-auto-rehashdefault-character-set=utf8m

2020-12-20 14:03:58 601 1

原创 java代码实现word转pdf(windows和linux都适用)

1.外挂一个jar包aspose-words-15.8.0-jdk16.jar 这个需要到官网下载2.准备一个配置文件license.xml 放在maven项目的resources目录下<License> <Data> <Products> <Product>Aspose.Total for Java</Product> <Product>Aspose.Words for Java<

2020-12-17 22:44:15 2987 1

空空如也

空空如也

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

TA关注的人

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