自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot项目打包的可执行jar运行报错

java -jar 命令执行的时候,会去运行可执行jar文件的META-INF/MANIFEST.MF文件中的Main-Class属性指定的类,如果没有找到,就会报没有主清单的错误。

2022-10-10 23:47:02 2340 1

原创 centos7安装docker-compose插件

docker-compose安装方式的主要可以分为两种,一是使用docker仓库进行安装,而是手动方式安装。

2022-10-02 11:19:20 1341

原创 Rocketmq 消息过滤简述

Rocketmq消息过滤是指在消息消费时,消费者Consumer可以对某一主题下的消息按照某种过滤规则进行过滤,只消费自己感兴趣的消息。Rocketmq同时支持在Broker端和Consumer端做消息过滤。

2022-09-30 21:13:40 949

原创 定时任务之Timer定时器

Timer定时器单线程执行,执行时间长的任务会阻塞其他任务,即使已经到了调度时间。Timer定时器调度的任务如果抛出异常,TimerThread线程就会退出,Timer定时器也就没用了。Timer定时器比较古老,现在用的比较少了,权当了解。

2022-09-30 16:07:51 469 1

原创 浅聊java定时任务实现

定时任务,可以定时定期或者周期性地以某种间隔执行某些逻辑。业务场景中很多地方需要使用到定时任务,比如分钟级扫消息表中未发送成功的消息再次发送,小时级清理过期数据或者无用垃圾,天周月级查询上一维度的业务数据生成上一维度的业务报表等等。

2022-09-30 13:29:00 167

原创 mybatis日志打印大杀器

mybatis日志打印大杀器,再也不用手动替换?号

2022-09-30 00:12:53 4562

原创 springboot项目开启事务支持

springboot项目不需要手动在启动类上加@EnableTransactionManagement注解

2022-09-28 21:59:40 860

原创 windows10环境下安装mysql

虽然现在云服务器、虚拟机等盛行,在这些服务器上安装mysql也十分方便,但是大部分时候,我们程序员使用的开发环境可能还是windows,所以,在windows环境下安装一个mysql供平时使用也是有必要的。

2022-09-27 22:37:27 2441

原创 Mybatis之批量更新数据(批量update)

当我们使用mybatis的时候,可能经常会碰到一批数据的批量更新问题,因为如果一条数据一更新,那每一条数据就需要涉及到一次数据库的操作,包括网络IO以及磁盘IO,可想而知,这个效率是非常低下的。而平时我们很少直接使用原生jdbc直接操作数据库,而是会使用比较成熟的ORM框架,那么今天我们就来总结一下,如何使用mybatis做批量更新。

2022-09-25 23:29:48 87777 12

原创 Rocketmq之NameServer地址配置及更新

NameServer在整个Rocketmq的模块划分中占据重要的地位,起到类似于注册中心的作用。BrokerServer启动时需要向NameServer注册自身元数据信息以及主题Topic信息,而Producer发送消息到BrokerServer、Consumer从BrokerServer订阅消息,则需要经过NameServer才能确定最终要进行数据通讯的BrokerServer的地址,所以,BrokerServer、Producer、Consumer程序启动均需要配置NameServer的地址。

2022-09-20 21:56:50 7407

原创 动态代理类字节码文件输出

前言JAVA中,现在创建动态代理主要有两种方式,JDK动态代理以及CGLIB动态代理。但是平时我们看不到具体生成的动态代理类它的字节码文件是什么样子的,那么我们今天就记录一下针对这两种方式,如何输出其字节码文件到指定目录,方便我们查看。JDK动态代理通过java.lang.System#setProperty方法设置系统属性sun.misc.ProxyGenerator.saveGeneratedFiles=truejdk.proxy.ProxyGenerator.saveGeneratedFil

2022-02-06 15:04:38 621

原创 Redis键通知(事件通知)

Redis键通知(事件通知)通常,对于Redis这款中间件,最多的应该是作为缓存来使用,比较好的做法是会给Redis中的key设置一个过期时间,过期之后自动删除。那么,我们可能会有这样的需求,如果一个key被删除了,或者过期了,能否通知使用redis的应用程序呢,其实是有方法的。从Redis:2.8.0开始,提供了键空间通知的功能,详见官方文档Redis Keyspace Notifications - Redis 。原理就是基于Redis的PUB/SUB机制,当键被发生了某种操作时,Redis会往特定

2021-09-26 23:34:41 1099

原创 centos8 搭建单机rocketmq

学习在centos系统中搭建rocketmq单机版centos系统信息如下下载下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip可以直接在本页面下载到自己电脑上再通过ssh工具上传服务器,或者直接在服务器上使用wget命令下载wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.9

2021-08-13 10:46:58 207

原创 linux 安装 nginx

linux 安装 nginx基于centos8安装nginx下载nginx安装包,并解压wget http://nginx.org/download/nginx-1.20.1.tar.gz安装必要的辅助工具yum -y install pcre-devel openssl-devel进行安装前的配置进入nginx-1.20.1目录执行下述代码./configure \# 配置nginx的安装目录--prefix=/usr/local/softwares/nginx/ng

2021-08-01 23:09:25 65

原创 mysql 关联查询没有走索引

mysql 关联查询没有走索引在关联字段上确认建立好索引的前提下,请检查关联字段的编码 长度等是否一致

2021-07-29 17:45:40 398

原创 centos8安装单机redis

下载redis并解压我们选择5.0版本的redis,直接通过wget命令下载# 下载wget https://download.redis.io/releases/redis-5.0.12.tar.gz# 解压tar -zxvf redis-5.0.12.tar.gz编译安装进入解压后目录执行make命令make MALLOC=libc安装到相应bin目录该步骤非必须cd src && make install执行redis-server命令.

2021-07-20 11:52:22 138

原创 WebMvc 解决跨域问题

springboot项目配置解决跨域问题话不多说,直接上代码@Configurationpublic class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry // 配置对所有请求路径生效 .addMapping("/**") // 放行所

2021-07-07 14:56:40 444 2

原创 FeignClient调用微服务 报错No route to host

问题背景:使用spring cloud alibaba构建的微服务系统,处于负载的考虑,给上游服务加了一台centos7服务器,购买的阿里云服务器,注册中心查看服务正常,但是下游服务调用时异常,报错No route to host.最后发现就一个问题:新加的服务器防火墙没关systemctl stop firewalld懂行的大佬给咱科普下为啥防火墙没关是报No route to host这个错呢?...

2021-07-02 23:37:18 1622

原创 linux centos8 安装 jdk8

记录在centos8环境下安装jdk8的步骤.1. 下载jdk压缩包官网下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html但是oracle官网在国外,访问速度可能上不去,并且现在下载都需要先注册oracle官网账号后才能下载,比较繁琐,可以选择下面的国内地址华为镜像地址:https://repo.huaweicloud.com/java/jdk/选择大版本8进行下载,小版本自行选择2.

2021-07-01 21:30:53 331

原创 Rocketmq控制台

Rocketmq控制台搭建rocketmq搭建成功之后就可以使用,对于topic、queue、message等的增删改查操作如果通过命令去执行非常繁琐,可以通过rocketmq控制台提供的可视化界面进行操作,而比较流行的rocketmq控制台就是rocketmq-console.今天就整理一下rocketmq-console搭建。下载项目rocketmq-console是rocketmq的一个社区项目中,项目托管在github上地址:https://github.com/apache/rocke

2021-06-27 15:18:51 1028

原创 Rocketmq学习之windows环境本地搭建

学习windows环境下搭建rocketmq。1. 官网下载rocketmq的二进制文件包下载地址:http://rocketmq.apache.org/dowloading/releases/当前最新稳定版本是4.9.0,我选择的是4.8.02. 解压压缩包 项目结构如下:3. 配置环境变量ROCKETMQ_HOME="D:\rocketmq"NAMESRV_ADDR="localhost:9876"4. 启动Name server在rocketmq项目根目录下执行命令.\bi

2021-06-24 12:59:35 427

原创 session管理

单体项目时代,session管理比较简单,往往直接存储在内存中即可满足要求,但是随着项目体量不断变大,项目访问量不断增多,往往会选择多节点部署和服务化拆分,带来便利的同时,session管理也带来了问题,最典型的问题,比如请求上一个节点登录成功,但在访问下一个节点的时候会又让你再次登录。那么今天就来聊聊这种情况下如何做session的管理,比较常见的解决方案大概就是以下几种。sticky session会话粘滞,就是请求发起IP相同的会打到同一台服务器上,原理通常就是对IP求hash值,然后对服务器

2021-06-15 11:25:54 461

原创 项目打包依赖跟代码分离

现在使用springboot构建一个spring项目是非常简单的,不仅如此,打包发布也非常的方便。使用maven插件打包可以很方便打成一个可执行jar包,扔到服务器上就可以执行启动。但是,这也带来一个问题,就是每次发布都需要将一个很大的jar包扔到服务器上,很繁琐。因为通常一个项目所需依赖是不经常变动的,经常变的只有业务代码而已,那每次都上传很大的一部分依赖jar包就显得很浪费,如果在依赖不变的情况下,能做到只上传代码部分,那将非常省事。那怎么做呢?请往下看,我们以一个demo工程为例普通情况下,一个

2021-06-06 11:13:27 196

原创 spring alias别名使用

今天,有个新来的同事问了我一个关于spring中bean的别名问题,他说如果一个bean的别名跟其他bean的名字一样,那根据名字获取的对象到底是哪一个?碰到这种问题,我们最好就是自己写个demo测试一下,demo程序如下:@Configurationpublic class AppleConfig { @Bean public Apple redApple() { return new Apple("红苹果"); } @Bean(name = "blac

2021-06-03 21:56:43 737 2

原创 正则提取字符串中内容

有的时候,会有这样的需求,给定一个特定结构的字符串,需要将其中的可变部分提取出来,例如,有一段关于优惠券的话术"满199元减20元",其中,199是使用优惠券的条件,而20则是具体的优惠券金额,这两个数字属于可变部分,现要求直接提取这两部分数字。当然,我们可以使用String现有api进行提取,indexOf、subString等配合使用即可,但我们今天使用正则表达式进行匹配和提取,详见代码// 待提取的目标资源String source = "满199元减20元";// 编译正则样式Patter

2021-06-03 13:45:57 1248

原创 centos7安装docker

正在学习docker,记录一下linux centos7环境中的安装步骤。可以参照docker官网的指导,地址:https://docs.docker.com/engine/install/centos/卸载旧版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \

2021-06-01 13:50:13 57

原创 zookeeper的3个端口

稍微了解过zookeeper集群的会知道,搭建集群时配置文件zoo.cfg中会出现这样的配置clientPort=2181server.1=localhost:2887:3887server.2=localhost:2888:3888server.3=localhost:2889:3889第一个端口,clientPort就是zk服务端暴露出来供zk客户端连接的端口,之后zk客户端(ssh终端或者java代码客户端)发送命令到服务端都会经过这个端口第二个端口,集群列表的最后一列,比如3888,这

2021-06-01 10:32:15 6787

原创 zookeeper伪集群搭建

zookeeper作为一款分布式协调中间件,其重要性不言而喻,因此需要保证其高可用性。所以一般都会搭建zookeeper集群,今天我们在一台服务器上搭建伪集群。首先,需要准备zookeeper的安装包,从官网自行下载,上传到云服务器上或者自己的虚拟机上。我选择上传到/user/local/zk目录下。请选择bin.tar.gz结尾的文件,tar.gz文件需要自己进行编译之后才能使用。解压压缩文件到同级目录进入apache-zookeeper-3.6.3-bin,目录展示如下重点关注bin和co

2021-06-01 09:20:10 290

原创 HttpServletResponse写出数据乱码

今天,做项目的时候碰到了一个问题,项目背景是标准spring项目,在controller方法中直接通过HttpServletResponse.getWtiter().write()方法写出中文字符串,但是在浏览器显示是乱码的,网上都是说设置response的characterEncoding为utf-8并且设置contentType头的值为text/html;charset=utf-8,但是设置了还是不好使,最终,直接通过response. setContentType()方法设值...

2021-05-29 00:32:13 424

原创 浅聊Integer的缓存

有一道常见的面试题,如下public static void main(String[] args) { Integer a = 128; Integer b = 128; Integer c = 100; Integer d = 100; System.out.println(a == b); //false System.out.println(c == d); //true}为什么会导致这样的结果呢?那就是Integer缓存在作怪!通过反编译.c

2021-05-26 22:44:38 149

原创 zookeeper的observer节点不参与领导者选举

zookeeper的observer节点不参与领导者选举序言:了解过zookeeper中间件的知道,zookeeper中有一类节点的角色是observer,这类节点在领导者选举的过程中不参与选举,现从源码角度分析下observer如何不参与选举。相关概念zookeeper节点有以下3种角色leader-领导者follower-跟随着observer-观察者其中,leader和follower统称为participant,即选举的参与者,又叫voting memberparticipan

2021-05-11 16:30:20 759

原创 idea构建zookeeper源码

序言最近想研究一下zookeeper的源码,稍作记录开发工具使用IntelliJ IDEA下载zookeeper源码github下载或者clone,地址:https://github.com/apache/zookeeper我选择版本:tag 3.6.2下载完成解压后代码结构如图示...

2021-05-08 14:58:24 165 1

原创 Spring Security异步方法调用认证传递问题

Spring Security异步方法调用认证传递问题问题描述解决方案第一种方法第二种方法通过设置系统变量的方法本人不会实现,请知道的大牛指教一下,谢谢!问题描述Spring支持异步方法调用,若在异步方法中,需要获取之前已经通过的认证信息,不做特殊处理的情况下是无法获取Authentication对象的,比如我下面的代码,因为authentication为null,直接抛出了空指针异常:@S...

2019-07-24 13:33:46 591

空空如也

空空如也

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

TA关注的人

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