自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多数据源配置H2 Mysql

最近有一需求,原本项目中由于某些原因使用嵌入式数据库H2,鉴于嵌入式数据库可靠性以及不方便管理等因素,需要将数据库迁移到Mysql。主要修改点有三处:①添加Mysql连接依赖①数据库的连接地址和数据库驱动③jpa使用的数据库。修改后pom.xml。修改后dev.yml。

2024-01-18 10:27:26 772

原创 手写OpenFeign(简易版)

手写OpenFeign远程调用组件

2024-01-15 16:53:15 909

原创 IDEA断点实用小技巧

多线程调试、断点修改变量值、断点条件设置、断点回退、中断Debug、计算表达式

2023-11-30 18:07:04 326

原创 Java使用opencv实现人脸识别、人脸比对

OpenCV是一个开源的计算机视觉库,它提供了一系列丰富的图像处理和计算机视觉算法,包括图像读取、显示、滤波、特征检测、目标跟踪等功能。opencv官网:https://opencv.org/

2023-10-12 18:04:29 6743 10

原创 SpringBoot+Canal+RabbitMQ实战

https://github.com/alibaba/canalMySQL主备复制原理canal 工作原理前提是mysql、rabbitmq已经安装完成查看是否生效:https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz下载完之后解压压缩文件,进入canal.deployer-1.1.6之后可以看到:配置 Canal 服务方式为 RabbitMQ 和连接配置(🏷 只列出需要

2023-05-10 17:44:45 920 1

原创 JDK定时器Timer原理

前些时间想到利用redis实现延时队列,但是底层的定时器不止如何实现好些,故此研究了一下jdk的Timer。Timer是一个用于执行定时任务的类,可以单次执行或按指定时间间隔循环执行(直到主动cancel或线程被杀掉)。Timer中任务处理采用了生产者-消费者模型的设计思想。

2023-02-20 14:22:13 589

原创 Jenkins远程SSH部署SpringBoot项目

安装完Publish over SSH插件之后,进入Manager Jenkins—>Configure System。例如此时pwd的输出为:/var/lib/jenkins/workspace/test-wechatpush。1.输出当前路径(jenkins上每个新建的项目都会在jenkisn工作目录新建一个文件夹)3.将jenkins工作路径下的目标jar包复制到当前的路径。其他的使用默认配置即可,点击应用 保存.前置环境配置:jdk、maven、git。2.将当前路径下的jar包都删除。

2023-01-07 12:51:58 1467

原创 docker安装nacos-2.0.0

访问:ip:8848/nacos。

2023-01-02 23:17:09 821 2

原创 Linux安装Redis

3、在Linux中, 将redis压缩包解压到指定的目录,这里是将redis解压到/opt文件夹下,可以使用-C指定到解压的文件夹。10、redis的客户端:用来连接redis服务,向redis服务端发送命令,并且显示redis服务处理结果。redis-cli:是redis自带客户端,使用命令redis-cli就可以启动redis的客户端程序。redis-cli -h ip地址 -p 端口:连接指定ip主机上的指定端口的redis服务。8.2、输入:redis-server 启动redis,启动成功。

2023-01-01 21:08:55 324

原创 服务器重启后,RabbitMQ用户丢失

最近由于阿里云服务器香港片区制冷设备故障导致大面积服务器停机,阿里故障修复后,在服务器上启动RabbitMQ后,再启动项目发现连接不上RabbitMQ:意思是身份验证失败,难道有人把RabbitMQ的用户给删了?问了运维发现没有人删除用户。在服务器上看一下有哪些用户:发现就剩下guest用户了,查了下,在重启之后可能造成用户丢失的问题。

2022-12-21 15:46:22 890

原创 数据库死锁

记录一下在开发中碰到的数据库死锁问题。

2022-11-10 20:44:41 245

原创 恢复Redis被误删的数据

要恢复删除的key,前提是需要开启aof持久化策略;在开启aof持久化策略的情况下,删不删除rdb文件没有关系。因为:redis恢复机制,即在开启aof并且存在文件的情况下,优先从aof文件中恢复。

2022-08-12 17:57:59 2392 2

原创 从Nacos客户端谈Nacos配置中心

一、引入nacos配置中心依赖导入的依赖源码中有这样一个配置类:NacosConfigAutoConfiguration我们先看nacosContextRefresher这个方法传递了两个参数,NacosConfigManager,NacosRefreshHistory,其中NacosConfigManager就是上面初始化的一个Bean,NacosRefreshHistory盲猜一波,是nacos配置文件刷新的历史记录,里面保存了最近20个版本的配置记录。NacosContextRefresher

2022-06-18 14:40:28 1384

原创 浅谈MyBatis

四大组件:Executor、ParameterHandler、StatementHandler、ResultSetHandler项目启动时会加载MybatisAutoConfiguration类,在这个类中创建了SqlSessionFactory,并且会将XML文件或者注解配置的 SQL信息会被转换为 MappedStatement 对象注册到 Configuration 组件中。SqlSessionFactoryBeanConfiguration组件中的......

2022-06-13 18:20:34 263

原创 Spring使用三级缓存解决循环依赖

循环依赖:@Servicepublic class TestService1 { @Autowired private TestService2 testService2; public void test1() { }}@Servicepublic class TestService2 { @Autowired private TestService1 testService1; public void test2() {

2022-05-11 17:37:56 1525

原创 CentOS 7安装Jenkins

前提条件:安装JDK,这里小编安装的JDK1.8查看JDK安装位置:echo $JAVA_HOME如果你的系统没有自带git,那么也需要安装一个。

2022-01-23 18:53:31 8818

原创 SpringBoot整合ELK日志收集

首先下载ELK,官网:https://www.elastic.co/cn/小编这里下载的7.16.1版本,注意,elasticsearch、logstash、kibana的版本要一致,否则可能报错。需要提前安装JDK1.8。启动顺序为:Logstash >= Elasticsearch > Kibana1. Elasticsearch# 解压tar -zxvf elasticsearch-7.16.1-linux-x86_64.tar.gz# 切换目录cd elasticsear

2021-12-19 18:30:32 1312

原创 Linux启动elasticsearch-7.16.1报错

1. 下载Elasticsearch官网:https://www.elastic.co/cn/小编这里下载的7.16.1版本# 解压tar -zxvf elasticsearch-7.16.1.tar.gz# 切换目录cd elasticsearch-7.16.1/修改配置文件 config/elasticsearch.yml,添加如下配置:network.host: 192.168.37.189http.port: 9200启动ES:# ./bin/elasticsearch

2021-12-19 14:32:08 2290

原创 MySQL存储过程之循环遍历查询的结果集

前言:近来碰到这样一个问题:在生产上导入的数据发现会员的相册数量统计结果与相册中实际的数量不一致的问题。解决这个问题有两种办法:1:使用程序修正数量不一致的问题2:使用MySQL的存储过程若使用第一种办法的话,需要重新发布版本,比较麻烦,再加上领导对发布版本有些抵触,我觉得我们还是使用第二种方式比较快捷。1. 表结构测试表结构如下:CREATE TABLE `member_album` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据I

2021-12-18 18:43:42 13791

原创 KubeSphere DevOps 系统功能实战

前言基于 Jenkins 的 KubeSphere DevOps 系统是专为 Kubernetes 中的 CI/CD 工作流设计的,它提供了一站式的解决方案,帮助开发和运维团队用非常简单的方式构建、测试和发布应用到 Kubernetes。它还具有插件管理、Binary-to-Image (B2I)、Source-to-Image (S2I)、代码依赖缓存、代码质量分析、流水线日志等功能。DevOps 系统为用户提供了一个自动化的环境,应用可以自动发布到同一个平台。它还兼容第三方私有镜像仓库(如 Harb

2021-10-05 22:09:01 1421 1

原创 KubeSphere部署Nacos集群

1.创建配置(目的:挂载)

2021-10-05 00:21:41 1874

原创 KubeSphere部署Mysql有状态副本集

首先我们知道以前使用docker部署有状态应用时都会将应用的配置文件和数据挂载到宿主机,例如docker启动mysql命令:docker run -p 3306:3306 --name isee-mysql \-v /db/mysql/log:/var/log/mysql \-v /db/mysql/data:/var/lib/mysql \-v /db/mysql/conf:/etc/mysql/conf.d \-e MYSQL_ROOT_PASSWORD=root \--restart=al

2021-10-04 17:32:49 1985

原创 在Kubernetes上最小化安装KubeSphere

前言:本文案例:安装KubeSphere v3.1.1首先,安装KubeSphere是有先决条件的:kubernetes集群版本若是不满足,那只能安装其他版本的KubeSphere了,或者升级k8sjiqun版本机器可用CPU > 1核;内存 > 2GKubernetes 集群已配置默认 StorageClass(请使用 kubectl get sc 进行确认)不用理会这里主要说一下第三点:Kubernetes 集群已配置默认 StorageClass在master节点输入命

2021-08-23 00:01:25 1573 2

原创 java性能检测工具:jvisualvm

前戏:安装JDK并配置好环境变量1. win + R 输入cmd进入命令行界面2. 输入:jvisualvm可以看到本地的java进程3. 查看CPU、内存使用情况右下角:运行:运行的线程休眠:调用sleep()方法的线程等待:调用wait()方法的线程驻留:线程池里空闲的线程监视:等待锁的线程4. 安装插件(以Visual GC插件插件为例)打开网址:https://visualvm.github.io/pluginscenters.html找到对应的jdk版本,例如我

2021-08-19 16:09:06 307

原创 k8s部署应用(命令行模式)

1.部署一个rediskubectl create deployment isee-redis --image=redis– 命令解析:kubectl create deployment 固定写法,创建一个部署isee-redis 容器名称–image=redis 指定镜像1.获取k8s里面所有资源kubectl get all可以看到,已经有一个名称为isee-redis-xxx的pod,status是Running状态;replicaset:复制,即我们的应用要复制几份,这里

2021-08-17 22:07:52 592

原创 kubeadm部署k8s集群

前言:此文档尚未完善,小编正在玩命编写中…1. 设置linux环境-- 禁用防火墙systemctl stop firewalld-- 停止并禁用开机启动systemctl disable firewalld-- 关闭selinux(关闭linux默认的安全策略,不关闭会修改/etc/selinux/config的内容)sed -i 's/enforcing/disabled/' /etc/selinux/config -- 把当前会话的默认安全策略也禁掉(或者重启虚拟机应该也可,我是这样

2021-08-16 22:20:30 2686 2

原创 springboot整合seata踩坑记录(AT模式)

一.环境说明1、SpringBoot版本:2.5.22、SpringCloud版本:2020.0.33、spring-cloud-alibaba版本:2021.14、seata-server-1.4.25、nacos版本:1.1.4这里项目创建过程就不做过多赘述了…二.官网下载seata服务seata官网:https://github.com/seata/seata/releases三.修改seata服务配置文件将下载完之后的文件解压,进入到里面的config目录,里面有一个regis

2021-08-05 21:28:30 1693

原创 navicat15连接不上docker创建的mysql8容器问题-已解决

PS:其实事后小编又重新新建了个mysql8容器,防火墙也打开了,之前的33306端口也给关闭了,mysql8远程访问权限也没修改,mysql8的密码加密方式也没改,但是照样连接成功!(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。-p:宿主机:容器端口映射;33306:宿主机端口,3306:mysql端口;查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

2021-07-25 16:31:49 1372 1

原创 spring封装的线程池

@Configurationpublic class ThreadPoolConfig { private static final int CORE_POOL_SIZE = 10; private static final int MAX_POOL_SIZE = 50; private static final int QUEUE_CAPACITY = 99999; private static final int KEEP_ALIVE_SECONDS = 60;

2021-07-19 11:20:40 306

原创 gateway配合nacos路由报错:Unable to find instance for XXX

gateway配合nacos 找不到服务的问题nacos版本: 1.1.4spring-boot版本: 2.5.2spring-cloud版本: 2020.0.3spring-cloud-alibaba版本: 2021.1gateway网关pom.xml<dependencies> <!-- gateway --> <dependency> <groupId>org.springframework.cloud</g

2021-07-16 21:15:36 6658 3

原创 RabbitMQ消息持久化、消息确认、消息重试、死信队列实战!

不知各位小伙伴是否听闻过:MQ消息持久化、消息的确认机制、消息的重试机制和死信队列这几个名词啊,如果没听说过的小伙伴可就要去好好补补课啦!微信搜索:“每日一试” 或 “每日一面”关注公众号,每日收集大厂面试真题,每天学习新知识!或者扫描下方二维码:既然听说过,那你们可知这些又是如何实现的呢?闲话不多说,接下来咱们进行实战!1. 配置环境:①安装Erlang环境包②RabbitMQ官网:http://www.rabbitmq.com/下载RabbitMQ软件包并安装,此文就不再一一赘述了

2021-04-05 15:13:44 976

原创 Linux部署SpringBoot项目(包括Nacos)

很多初入行的小伙伴都不知道到底怎样在公司里面去进行项目部署,很多人一提到Linux就犯怵,因为Linux给我们的感觉就是一个黑黑的窗口,然后敲很多很多的命令...今天我们就来实战部署一下SpringBoot项目和Nacos注册中心。扫码关注微信公众号,每日学习新知识!一:安装并启动Nacos1、官网下载linux版本nacos官网地址:https://nacos.io/zh-cn/index.html2、下载完之后将其上传到Linux服务器上进行解压(小编使用的Secure.

2021-03-28 19:39:17 664 1

原创 亿级数据优化必备只分库分表

1. 单表行数多少时适合分库分表?单表行数超过500万行时或者单表容量超过2GB时,才推荐使用分库分表。如果项目中预计三年以上的时间数据量才能达到这个级别时,请不要在创建表时就进行分库分表。学习阿里Java规范2. 分库分表数据到底怎样拆分?...

2020-06-08 23:10:52 424

原创 RPC框架通信原理

1. 什么是RPCRPC:(Romote Procedure Call)远程过程调用;RPC框架的作用:使得调用远程方法就像调用本地方法一样远程调用的目的:数据交换2. 开源 RPC 框架跟语言平台绑定的开源 RPC 框架主要有下面几种。Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。Tars:腾讯内部使用的 RPC 框

2020-05-27 10:36:53 499

原创 videojs设置容器宽高太小自动播放失效问题解决

最近 xiaomu 在工作中业务需求需要播放rtmp流,H5自带的video显然不支持,所以上网搜索了一下可以播放rtmp流的插件,于是找到了videojs本来使用的好好的,但是业务需求需要在一个页面播放四个视频,这就使得每个video容器的宽高变小了,问题也就随之而来…因为用户点击播放之后视频要自动播放,video 标签有autoplay属性,设置一下就好了…<video id="m...

2020-04-29 21:04:46 2629 9

翻译 volatile关键字

1. volatile简介我们知道java关键字synchronized这一大神器,在java中还有一大神器就是关键volatile,可以说是和synchronized各领风骚,其中奥妙,我们来共同探讨下。我们了解到synchronized是阻塞式同步,在线程竞争激烈的情况下会升级为重量级锁。而volatile就可以说是java虚拟机提供的最轻量级的同步机制。但它同时不容易被正确理解,也至于在...

2020-04-27 15:17:57 148

原创 Zookeeper详解

1. Zookeeper简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等…统一命名服务:统一配置管理:统一集群管理:服务动态上下线:软负载均衡:...

2020-04-12 13:41:20 584

原创 Kafka内部结构

鄙人愚钝,在经历了三天两夜,我终于是搞懂了这Kafka的内部结构,之前看很多文章都是不清晰,脑海中始终没有一个清晰的构图…1. Kafka简介Apache Kafka最早是由LinkedIn开源出来的分布式消息系统,现在是Apache旗下的一个子项目,并且已经成为开源领域应用最广泛的消息系统之一。Kafka社区非常活跃,从0.9版本开始,Kafka的标语已经从“一个高吞吐量,分布式的消息系统...

2020-04-11 15:14:33 694

原创 分布式锁之Redis实现

1. 为什么需要分布式锁?我们假设一个场景:比如某电商网站做一个促销活动,例如秒杀、抢优惠券…这个时候并发超级高。如果你的系统是集中式结构,那么ok,没有问题,但是如果你的系统是分布式架构…那么问题就来了。在实际中为了高可用,我们通常会把服务做集群,例如秒杀系统有三个服务:A1、A2、A3,Nginx做负载均衡。假设有两个用户在同一时刻请求nginx,nginx把这两个请求分别发放到A1、...

2020-04-07 19:32:24 219

原创 分布式事务(Seata)

1. 事务首先,我们先说一下事务,大家都不陌生,事务就是多条对数据库增删改的SQL要么一起成功,要么一起失败。如上图:比如我们下订单,订单模块、库存模块、账户模块都是同一个系统使用的同一个DB,同一个数据库Connect,在这个基础上去保存订单、减库存、减账户余额,那么可以保证是同一个事务,可以保证事务的一致性。注:这里强调的是同一个数据库Connect,如果上图使用的是同一个DB,但不...

2020-04-06 13:46:55 459

空空如也

空空如也

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

TA关注的人

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