自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 SpringBoot多数据源

*** 数据源名称*/注解 Pointcut 使用 annotation 指定注解注解 Around 使用环绕通知处理,使用上下文进行对使用注解 DS 的值进行数据源切换,处理完后,恢复数据源。@Aspect@Componenttry{}finally {/*** 根据类或方法获取数据源注解*/Class

2023-09-12 17:39:29 1010 2

转载 深入理解Java线程池

线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常使用在多核服务器中,简而言之就是预制一定数量的线程在池里,当有程序申请一个线程时,从池里拿出一个用完之后再放回池里。这样可以避免线程频繁的创建、销毁、调度线降低服务器的整体性能。一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。

2023-08-28 15:42:41 151 1

转载 如何在Linux系统中安装Keepalived

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。Keepalived配置文件为:/etc/keepalived/keepalived.conf,

2023-08-24 14:55:51 618

转载 带你手写starter组件,搞懂SpringBoot自动配置原理

至此,我们就实现了手写SpringBoot项目中的starter组件,进而实现了自动配置。其实从仿照druid的Datasource类中就可以发现,SpringBoot的核心机制就是可以自动配置,通过大量的自动配置,大量的bean被自动配置到容器中,这就大大简化了过去手动配置bean的过程,从而简化整个项目的开发过程,这也就是SpringBoot的最大优势所在!

2023-04-23 11:10:40 191

转载 基于Spring Cache实现分布式二级缓存

通过内存缓存确实能够很大程度的提高查询速度,但如果同一查询并发量非常的大,频繁的查询redis,也会有明显的网络IO上的消耗,那我们针对这种查询非常频繁的数据(热点key),我们是不是可以考虑存到应用内缓存,如:caffeine。LRU通常使用链表来实现,如果数据添加或者被访问到则把数据移动到链表的头部,链表的头部为热数据,链表的尾部如冷数据,当数据满时,淘汰尾部的数据。我们说一级缓存是应用内缓存,那么当你的项目部署在多个节点的时候,如何保证当你对某个key进行修改删除操作时,使其它节点的一级缓存一致呢?

2023-02-03 16:06:36 426 1

转载 SpringBoot 常用读取配置文件的 3 种方法!

它可以扫描特定包下所有的被**@ConfigurationProperties**标记的配置类,并将它们进行IoC注入。注解可以将指定的配置读取类的对象加载到Spring容器,也就是说,在其他配置类上使用一个@EnableConfigurationProperties注解,来将配置文件的参数和RabbitmqProperties类的属性绑定。如果仅仅只是使用了@ConfigurationProperties注解是没有效果的,它并不会将这个配置注入容器中,它还需要和注入容器的注解一起使用。

2023-02-03 15:40:27 5767

转载 什么是Redis缓存穿透、击穿、雪崩?如何解决

2.返回空值给缓存:当查询不存在数据访问数据库返回值为空,仍然将空值进行缓存(Redis中value为空值会被回收,可以设置empty字符串等),当然插入值时要替代掉空值。1.布隆过滤器:将数据库中的数据哈希映射到bitmap(0、1表示存在、不存在),查询时先访问bitmap,查询不存在的数据就会被bitmap拦截,就不用进入数据库查询。互斥锁:在缓存失效的时候(判断拿出来的值为空),第1个进入的线程,获取锁并从数据库去取数据,没释放锁之前,其他并行进入的线程会等待,再重新去缓存取数据。

2023-02-03 09:13:34 185

转载 SpringBoot 实现 JWT token 自动续期

接上次说的jwt作为用户登陆验证token,这次聊一下token的自动续期实战。

2023-01-19 17:27:01 430

转载 Spring Batch 批处理,真的强大!

spring batch是spring提供的一个数据处理框架。企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作。1. 无需用户交互即可最有效地处理大量信息的自动化,复杂处理。这些操作通常包括基于时间的事件(例如月末计算,通知或通信)。2. 在非常大的数据集中重复处理复杂业务规则的定期应用(例如,保险利益确定或费率调整)。3. 集成从内部和外部系统接收的信息,这些信息通常需要以事务方式格式化,验证和处理到记录系统中。批处理用于每天为企业处理数十亿的交易。

2023-01-19 17:19:12 168

转载 JWT实战教程

​ —[摘自官网]# 1. 翻译 - 官网地址 : https : / / jwt . io / introduction / - 翻译 : jsonwebtoken( JWT )是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以 JSON 对象安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥 / 私钥对进行签名。

2023-01-19 15:00:03 245

转载 高性能的本地缓存的方案选型

在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或Memcached 这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如Guava cache或Caffeine,从而再次提升程序的响应速度与服务性能。

2023-01-13 14:34:30 207

原创 URL和URI区别以及简单实战

(2)获取地址:获取网上主机的地址,通过一个域名获取主机IP,可以使用该类中的一个静态方法getByName(String s)将一个域名或IP地址传给该方法参数s,获取一个InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示:www.baidu.com/14.215.177.39。上述url对象中使用的协议是http协议,即用户按着这种协议和指定的服务器通信,url对象包含的地址是www.baidu.com,所包含的资源是默认的资源(百度首页)。

2023-01-13 10:47:46 905

原创 java 正则表达式 分组(group)+设置分组名称

分组id是matcher帮我们自动按照分组顺序(1,2,3 …)分配好,在匹配的时候我们只需要输入分组id就能获取对应分组的值,但是分组名称需要我们自己提前设置好,和分组id一一对应组成一个map,先通过分组名称获取分组id再获取对应分组值。测试成功,不管是通过id还是名称都可以获取到对应的分组值。1.matcher类中通过分组id获取分组值。2.matcher类通过分组名称获取分组值。分组名称(key)-分组id(value)2.通过分组id获取。

2023-01-12 14:43:09 2700

转载 java自定义注解详解

注解其实就是一种标记,可以在程序代码中的关键节点(类、方法、变量、参数、包)上打上这些标记,然后程序在编译时或运行时可以检测到这些标记从而执行一些特殊操作。第一步,定义注解——相当于定义标记;第二步,配置注解——把标记打在需要用到的程序代码中;第三步,解析注解——在编译期或运行时检测到标记,并进行特殊操作。第一步,定义注解——相当于定义标记;第二步,配置注解——把标记打在需要用到的程序代码中;第三步,解析注解——在编译期或运行时检测到标记,并进行特殊操作。

2022-12-09 14:37:08 380

转载 JVM原理详解

jvm调优详解

2022-08-23 18:16:49 1785

转载 OOM详解以及常见分析方法

oomph

2022-07-08 14:35:25 1037

转载 logback的使用和logback.xml详解

logback.xml配置语法详解

2022-06-11 17:34:00 3093 1

原创 压测liunx服务需要的基础设置

Liunx服务压测前的基础配置

2022-05-26 15:53:14 326

转载 win10安装centos7虚拟机

1.下载vmware 和 CentOS7,并直接下一步安装 链接:https://pan.baidu.com/s/10n3cHPFNALe1qU9dopL6Yw  提取码:e1bh 一、创建虚拟机 1.打开vmware,如下图所示,一步步点击下一步,至完成即可     2、给vmware虚拟机取个名字,点击下一步直到完成...

2022-05-20 14:07:33 766

转载 liunx服务器上设置服务自启动

liunx服务自启动

2022-05-17 15:36:45 143

转载 Liunx安装MySQL详细教程

1 查看是否已经安装 Mysql rpm -qa | grep mysql 我之前装过一次! 如果你查看出来有东西,可以使用下面命令将其删除 rpm -e 文件名   2 下载官方 Mysql 包 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm ...

2022-04-29 15:08:16 510

转载 RocketMQ Dledger 多个group模式集群搭建+管理端

    Deledger 集群模式是多副本模式,每个Master配置二个 Slave 组成 Dledger Group,可以有多个 Dledger Group,由 Dledger 实现 Master 选举,具体定义的时候核心在于ID。     考虑到可维护性的特点,本次Broker集群采用的是DLeger多副本模式,这样就需要用过Broker配置文件的方式定义每一个DLeg...

2022-04-27 11:08:03 3061 2

原创 Redis集群cluster安装过程中常见问题解决办法

Redis集群安装部署过程遇到的问题及解决办法

2022-04-02 14:42:18 2076

原创 复杂回文Java代码实现

复杂回文算法

2022-03-08 17:08:26 718

转载 三主三从Redis集群cluster搭建

先准备环境centos7ip:192.168.81.132 192.168.81.133 192.168.81.137设置三台机器的/etc/hosts,每台都要添加如下三行,保存退出[root@localhost ~]# vim /etc/hosts192.168.81.132 redis-132192.168.81.133 redis-133192.168.81.137 redis-137安装依赖(3台都需要安装)yum -y install gcc gcc-c++ wget上传解

2022-03-07 15:45:16 608

转载 rocketmqweb管理端验证登录配置

官方下载地址 :https://github.com/apache/rocketmq-externals.git 博主资源 :https://download.csdn.net/download/weixin_44121378/82706084 官方下载的控制台不够完善,存...

2022-03-02 10:28:47 1255

转载 RocketMq主从异步集群搭

原文链接:https://blog.csdn.net/weixin_40533111/article/details/84451219 作者四月天五月雨^_^,转载请注明出处,谢谢 前言 本文基于最新版rocketmq 4.3.2搭建,2个节点,A节点部署A-m和B-s,B节点部...

2022-02-23 18:03:10 154

空空如也

空空如也

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

TA关注的人

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