自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态调整线程池核心参数

采用的是apollo配置,监听apollo配置是否修改,如果有变动,则调用线程池的修改参数方法。

2023-08-23 11:32:10 252

原创 jdbc集成phoneix hbase

【代码】jdbc集成phoneix hbase。

2023-08-23 11:19:17 1015

原创 缓存的变更(JVM本地缓存->Redis分布式缓存)

在一次需求修改中,下游的服务附加提出了,针对某个业务数据缓存的生效时间的要求。

2023-08-23 10:56:42 855 1

原创 langchain ChatGPT AI私有知识库

原理就是把文档变为向量数据库,然后搜索向量数据库,把相似的数据和问题作为prompt,输入到大模型,再利用GPT强大的自然语言处理、推理和分析等方面的能力将答案返回给用户

2023-08-23 10:11:06 1435 1

原创 【fastjson和Jackson的时间日期的反序列化的差异】

注解,您可以使用它来指定日期字段的格式。所以,fastjson需要指定日期格式是因为它的默认解析行为是基于Java的默认日期格式,而Jackson具有更灵活的日期解析机制,可以自动识别日期格式,但也可以通过注解进行更精确的控制。因为fastjson有默认的时间格式,在序列化时遇到不常见的时间格式,如纳秒级的2023-07-04T10:00:00.0000000不能正常解析,如果需要解析,需要采用@JsonFormat指定格式。如果日期字符串的格式与默认格式不匹配,fastjson将无法正确解析日期。

2023-07-18 17:49:21 1104

原创 【Docker】离线安装、普通用户执行docker命令、镜像归档打tar包,及加载tar包镜像

离线安装、普通用户执行docker命令、镜像归档打tar包,及加载tar包镜像

2022-06-14 16:13:23 1276 1

原创 HTTP工具类CloseableHttpClient

import org.apache.http.*;import org.apache.http.client.HttpRequestRetryHandler;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;imp

2021-11-03 10:59:58 1358

原创 nginx负载均衡docker部署

一、nginx负载均衡docker部署3.1 创建文件夹在home用户目录下 创建redis的相关文件夹mkdir -p /home/jun/docker/nginxcd /home/jun/docker/nginx创建三个目录mkdir shell #构建、启动、停止等脚本mkdir dockerfile #dockerfile目录mkdir volumes #挂载配置、日志、数据文件3.2 准备dockerfile文件cd /home/hd/docker/nginx/dock

2021-11-03 10:52:52 1777

原创 rabbitmq主从docker部署

rabbitmq主从docker部署DockerfileFROM centos:7.7.1908COPY erlang-20.3.6-1.el7.centos.x86_64.rpm /homeCOPY rabbitmq-release-signing-key.asc /homeCOPY rabbitmq-server-3.7.5-1.el7.noarch.rpm /home # 创建者 MAINTAINER HuiDian <www.smartdot.com.cn># 设置系

2021-11-03 10:48:35 1336

原创 redis-docker-单机主从哨兵部署

redis-docker-单机主从哨兵部署一、redis单机调整系统参数sudo vi /etc/rc.local加入echo never > /sys/kernel/mm/transparent_hugepage/enabled sudo vi /etc/sysctl.conf加入vm.overcommit_memory = 1在用户目录下 创建redis的相关文件夹mkdir -p /home/jun/docker/rediscd /home/jun/docker/r

2021-11-03 10:43:24 182

原创 ELK主从集群部署(生产只有两套。。。)

概述机器IP节点名称服务114node-1数据、主节点(安装elasticsearch、logstash、kabana)115node-2数据节点(安装elasticsearch)如果logstash无法收集所有的ES服务日志,哪node-2也需要配置logstashlogstash收集所有的日志方法还是挺多的,如消息队列等等主要思路:ElastiSearch天生就是分布式的 ,它知道如何通过管理多节点来提高扩容性和可用性。 这也意味着你的应用无需关注这个

2021-09-07 17:39:18 724

转载 第三方单点登录接入接口方案(参与)

我的指导人的文章:https://blog.csdn.net/zhou920786312/article/details/119546135————————————————第三方单点登录接入接口方案说明一、问题目前我们有一套自己的oa系统,oa系统有个门户页面,我们需要在这个门户上单点集成其他系统。每个其他系统都有自己的单点登陆方式,比如其他系统1使用token集成单点,其他系统2使用session集成单点。思考如果我们对每一个其他系统都做适配的话,以后接入进来的系统,我们都需要开发,这样不仅

2021-08-31 19:33:35 2743

原创 二维码设计与校验有效性

二维码移动端扫码求职登记,做有效性校验1.客户需要在PC端自定义设置二维码的过期时间,生成二维码,打印二维码和控制二维码的过期时间2.用户移动端扫码进行有效时间验证3.由于需要控制二维码是否过期,可能提前过期等,过期时间需要存储在数据库表中,方便校验综上所述:我们只需要一个生成组装二维码的值的方法 一个校验时间的方法即可生成二维码编码客户设置相关过期时间等参数信息传给后端生成code,并且存储进数据库表(编码,二维码名,过期时间,扩展:字段链接,是否提前过期)后端生成二维码方法:构建二

2021-08-31 19:17:38 1603

原创 consul基础理论知识

Consul是HashiCorp公司推出的开源软件,通过 GO 语言编写,提供服务注册和发现、配置、多数据中心的高可用方案等能力,分布式一致方面采用 raft 算法 实现,并且很容易和 Spring Cloud 等微服务框架集成,使用起来非常的简单,具有简单、易用、可插排等特点。简而言之,Consul 提供了一种完整的服务网格解决方案Consul功能●服务发现:Consul的客户端可以向Consul注册服务,例如api服务或者mysql服务,其他客户端可以使用Consul来发现服务的提供者。Consul

2021-04-19 14:18:20 469

原创 MySQL升级8.0与主从复制

升级8.0备份数据库配置文件cd /etccp my.cnf my.cnf.back停止连接数据库的应用,进行数据库备份(若有数据需要备份)2.1、备份数据库(3选择1,不用)创建目录 mkdir /home/hd/package/mysqlback备份数据库 备份实例上所有的数据库mysqldump -u root -p --all-databases > /home/user/package/mysqlback/all_db.sql2.2、备份整个数据目录(

2021-04-07 16:14:46 462

原创 raft协议笔记-一致性协议

Raft协议是一种一致性算法,用于在分布式系统中保持整个系统的一致性。是分布式系统开发首选的共识算法Raft算法是经过一切以领导者为准的方式,实现一系列值的共识和各节点日志的一致。用于管理日志一致性的协议。将分布式一致性分解为多个子问题:Leader选举(Leader election)日志复制(Log replication)安全性(Safety)日志压缩(Log compaction)在了解 Raft 之前需要了解一下什么状态机:论文指出,Raft 是一种用来管理日志复制的

2021-04-02 17:28:24 407 1

原创 Gossip协议笔记--谣言、流行病协议

gossip是一个去中心化思路的分布式通信协议,主要用在分布式数据库系统中各个副本节点同步数据之用,这种场景的一个最大特点就是组成的网络的节点都是对等节点,是非结构化网络,这区别于结构化网络。Gossip Protocol原本用于分布式数据库中节点同步数据使用,后来被广泛用于数据库复制、信息扩散、集群成员身份确认、故障探测等,应用实例有Redis集群、springcloud consul等。问题● 如何在多个不可靠、变化缓慢的网络中将多个节点实现并保持数据一致性的方法目标● 设计一种高效且强大的算

2021-04-02 15:30:31 1113

原创 spring使用策略模式,实现多种场景登录方式(策略模式)

spring使用策略模式,实现多种场景登录方式@Autowired注解可以帮我们自动注入我们想要的 Bean。如果只是简单使用@Autowired会遇到spring IOC容器中一个接口有多个实现的情况,spring无法识别具体的实现类,如果不是策略模式,我们可以进行具体的指定@Qualifier和@primary来避免bean冲突的情况。但在策略模式中是不行的。而除了这个基本功能之外, @Autowired 还有更加强大的功能,还可以注入指定类型的数组,List/Set 集合,甚至还可以是 Map

2021-01-08 14:21:13 1849 3

原创 Java NIO与Netty

Java 网络IO模型(BIO NIO AIO)BIO同步并阻塞(传统阻塞型):一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。NIO同步非阻塞:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。AIO异步非阻塞:一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理。BIO与NIO的区别BIO 是面向流的,NIO 是面向缓冲区的或者

2020-09-22 19:32:06 3790

原创 MVC(SpringMVC)与ORM(MyBatis)

MVCMVC 模型,它包含了 Model(模型),View(视图)和 Controller(控制器)。是针对表现层的设计模型,MVC是一种设计模式MVC的原理图: M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View 视图(做界面的展示 jsp,html……)C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)MVC 模型的优势第一:清晰的职责划分。第二:每个组件作用独立。有利于代码的重用。第三:由

2020-09-18 17:01:29 2555

原创 Redis基础与缓存问题

缓存有哪些类型?缓存是⾼并发场景下提⾼热点数据访问性能的⼀个有效⼿段,在开发项⽬时会经常使⽤到。缓存的类型分为:本地缓存、分布式缓存和多级缓存。本地缓存:本地缓存就是在进程的内存中进⾏缓存,⽐如我们的 JVM 堆中,可以⽤ LRUMap 来实现,也可以使⽤Ehcache 这样的⼯具来实现。本地缓存是内存访问,没有远程交互开销,性能最好,但是受限于单机容量,⼀般缓存较⼩且⽆法扩展。分布式缓存:分布式缓存可以很好得解决这个问题。分布式缓存⼀般都具有良好的⽔平扩展能⼒,对较⼤数据量的场景也能应付⾃

2020-09-15 17:22:15 3988 1

原创 Spring boot起步依赖、自动配置与启动执行流程原理

什么是 Spring Boot?Spring Boot :起步依赖 自动配置Spring Boot 并不是一个框架,它是一种创建独立应用程序的更简单方法,只需要很少或没有配置(相比于 Spring 来说)。Spring Boot最好的特性之一是它利用现有的 Spring 项目和第三方项目来开发适合生产的应用程序。spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用,无需打包部署,直接运行springBoot约定大于配置到底是什么

2020-09-10 16:44:31 5801

原创 Spring IOC、AOP与事务

是什么、为什么、怎么样这大概是所有问题必经之路,也是我们解决问题的思路。什么是 IoC?IoC 解决了什么问题?IoC 和 DI 的区别?什么是 AOP?AOP 解决了什么问题?AOP 为什么叫做切面编程?什么是IOC?IoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,Spring IOC则是第

2020-09-09 17:37:30 2460

原创 Java多线程--线程与线程池

操作系统中线程的实现现代操作系统的线程主要有三种实现:内核线程实现,用户线程实现,混合实现内核线程(KLT):线程表由内核维护,由内核完成线程的切换,内核通过调度器对线程进行调度,并将线程的任务映射到处理器上,每个内核线程可以视为内核的一个分身。程序一般不会直接使用内核线程,而是使用内核线程的一种高级接口——轻量级进程(LWP)(广义上来说,轻量级进程也是在用户空间的进程中的,所以也是一种用户线程)。LWP和KLT是一一对应的,是1:1的关系,因此也叫作一对一线程模型(1:1)。内核线程最大的特点就是,如

2020-09-08 21:35:05 1008

原创 Java多线程--JUC-Lock锁(ReentrantLock、AQS)

java.util.concurrent 在并发编程中使用的工具类,其重点有lock锁、辅助工具类、Atomic原子类以及并发集合框架等。lock 最 常 用 的 类 就 是 ReentrantLock , 其 底 层 实 现 使 用 的 是AbstractQueuedSynchronizer(AQS)Java是如何实现原子操作?在Java中可以通过锁和循环CAS的方式来实现原子操作如:Atomic原子类(循环CAS操作直到成功)AQS(自旋、LockSupport、CAS)AQS(Abstra

2020-09-08 15:56:21 1760

原创 Java多线程-锁机制(volatile、synchronized、CAS)

并发编程的三大特性:可见性、原子性、有序性volatile保证可见性与部分有序性,但是不保证原子性,保证原子性需要借助synchronized这样的锁机制volatile(最底层:lock add)●保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。●禁止进行指令重排序volatile的可见性Java内存模型 JMMJava内存模型,是java虚拟机规范中所定义的⼀种内存模型,Java

2020-09-07 20:36:35 4748 1

原创 JVM虚拟机(内存结构-Java对象-类加载器-GC)

JVM内存结构JVM内存分为线程私有区和线程共享区线程私有区1、程序计数器✓(记录当前线程执⾏到哪⼀条字节码指令位置)当同时进行的线程数超过CPU数或其内核数时,就要通过时间片轮询分派CPU的时间资源,不免发生线程切换。这时,每个线程就需要一个属于自己的计数器来记录下一条要运行的指令。如果执行的是JAVA方法,计数器记录正在执行的java字节码地址,如果执行的是native方法,则计数器为空。2、虚拟机栈✓(线程执⾏⽅法的时候内部存局部变量会存堆中对象的地址等等数据)线程私有的,与线程在同

2020-09-06 16:59:18 2364 3

原创 MySQL事务、锁、LBCC&MVCC

MySQL事务的特点(ACID):●原子性:对数据库的一系列的操作,要么都是成功,要么都是失败,不可能出现部分成功或者部分失败的情况;原子性,在 InnoDB 里面是通过 undo log 来实现的,它记录了数据修改之前的值(逻辑日志),一旦发生异常,就可以用 undo log 来实现回滚操作。●隔离性:在数据库里面会有很多的 事务同时去操作我们的同一张表或者同一行数据,必然会产生一些并发或者干扰的操作, 那么我们对隔离性的定义,就是这些很多个的事务,对表或者行的并发操作,应该是透明的,互相不干扰的。通

2020-09-05 16:45:48 3828 2

原创 MySQL索引与索引优化

MySQL的基本架构示意图MySQL索引就是用于优化器上。索引:MySQL官方对于索引的定义为:索引是帮助MySQL高效获取数据的数据结构。即可以理解为:索引是数据结构。索引是对数据库表中一个或多个列的值进行排序的结构,建立索引有助于快速获取信息。你也可以这样理解:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。首先明白为什么索引会增加速度?

2020-09-04 16:48:00 2757

原创 Elasticsearch中文高亮精确搜索问题,单字可以,多字不行等

Elasticsearch中文搜索问题,单字可以,多字不行的问题。第一使用IK分词器,版本要对应,下载到elasticsearch/plugin目录下,并新建ik目录第二配置实体类@Document注解之后,默认情况下这个实体中所有的属性都会被建立索引、并且分词。 * 我们通过@Field注解来进行详细的指定,如果没有特殊需求,那么只需要添加@Document即可。 * @Field这里ik_max_word是按最细粒度分词,ik_smart是按最粗粒度分词。 *在搜索的时候用粗粒度,在写入的时

2020-07-12 16:08:18 8390 2

原创 vue的history模式打包刷新404、cssjs文件无法引入等问题

vue的history模式打包刷新404、页面空白cssjs无法加载等问题,其实是history模式配置不完全,history模式需要前端配置还需后台配置。history模式下js、css文件路径引入的问题PublicPath如果设置相对路径,路由history模式在嵌套子路由页面刷新会出现js、css文件路径引入出错。一:如果是hash默认模式遇到的话,在vue的配置文件需要设置成相对路径vue.config.jspublicPath:'./',//相对路径二:如果路由模式是history

2020-07-12 15:33:27 2785

原创 前端数据请求为空Required request body is missing

前端数据请求为空Required request body is missing该错误解决错误发生环境:前后端分离下,后端@RequestBody要求json格式传输排查发现几点需要注意的地方:数据格式是否符合要求、数据对象是否为空this.$axios.post('/tag/edit',row,{ headers: { "Authorization": localStorage.getItem("token"),//本项目权限需要与问题无关 'Content-

2020-07-12 14:55:02 7833

原创 spring boot+vue前后端分离博客项目

简介:使用spring boot+vue构建的前后端分离博客项目,有前端界面+管理界面+后台服务的整套系统。技术栈:SpringBoot 2.x 后台基本框架Vue + ElementUIElasticSearch Shiro +Redis +JWT Mybaits-Plus Github地址:https://github.com/15626862046/Blog项目参考:后台管理:●https://github.com/lin-xin/vue-manage-system●h.

2020-07-11 17:01:05 909

原创 springboot+springsecurity+thymeleaf失效问题和An error happened during template

springboot+springsecurity+thymeleaf的使用方式十分简单,用一个类继承WebSecurityConfigurerAdapter并重写方法即可和@EnableWebSecurity开启服务,交给spring管理遇到的两个问题错误sec:authentication,sec:authorize 失效问题An error happened during templa...

2020-05-01 15:19:56 904

原创 错误o.s.b.d.LoggingFailureAnalysisReporter和Invalid bound statement (not found)

Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.Description:Field employeeDao in com.jun.managementsystem.controller.EmployeeControll...

2020-04-30 18:04:30 689

原创 算法--串(Sequence)(二十二)

学习恋上数据结构与算法的记录,本篇主要内容是串●✓

2020-04-13 16:19:52 620

原创 数据结构--跳表(skip List)(二十一)

学习恋上数据结构与算法的记录,本篇主要内容是跳表思考一个有序链表搜索、添加、删除的平均时间复杂度是多少?O(n)能否利用二分搜索优化有序链表,将搜索、添加、删除的平均时间复杂度降低至O(logn)?链表没有像数组那样的高效随机访问(O(1)时间复杂度),所以不能像有序数组那样直接进行二分搜索优化那有没有其他办法让有序链表搜索、添加、删除的平均时间复杂度降低至O(logn)?使用跳表(...

2020-04-13 15:23:04 442

原创 数据结构--布隆过滤器(Bloom Filter)(二十)

以下学习恋上数据结构与算法的记录,本篇主要内容是布隆过滤器●思考:如果要经常判断1 个元素是否存在,你会怎么做?很容易想到使用哈希表(HashSet、HashMap),将元素作为key 去查找✓时间复杂度:O(1),但是空间利用率不高,需要占用比较多的内存资源如果需要编写一个网络爬虫去爬10亿个网站数据,为了避免爬到重复的网站,如何判断某个网站是否爬过?很显然,HashSet、Has...

2020-04-13 15:11:29 503

原创 算法--动态规划DP(十九)

学习恋上数据结构与算法的记录,本篇主要内容是动态规划动态规划(Dynamic Programming)动态规划,简称DP,是求解最优化问题的一种常用策略●通常的使用套路(一步一步优化)①暴力递归(自顶向下,出现了重叠子问题)②记忆化搜索(自顶向下)③递推(自底向上)动态规划的常规步骤动态规划中的“动态”可以理解为是“会变化的状态”①定义状态(状态是原问题、子问题的解)✓比如定...

2020-04-11 15:12:26 530

原创 算法--贪心与分治(十八)

以下是学习恋上数据结构与算法的笔记,本篇主要内容是贪心与分治●✓

2020-04-07 15:39:56 794

Java开发手册(文档系列).rar

Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)Java开发手册(文档系列)

2020-09-09

空空如也

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

TA关注的人

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