自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 shardingsphere-jdbc基础运用

BUSINESS_TABLE:对应实体类中映射数据库的逻辑表名称,比如数据库中分片的表为 tab_business_0、ab_business_1 那么对应的实体类映射应该为 tab_business。LOAD_BALANCER_NAME:自定义的负载均衡算法逻辑名称,与后面读写数据库配置负载均衡算法对应。INLINE_DATASOURCE 、INLINE_TABLE:与配置的算法的逻辑名称一致。(其中map中的key为自定义的逻辑名称,在后面配置规则的时候需要保持一致)

2025-02-20 17:56:49 468 1

原创 Java项目依赖管理小知识

场景:存在一个本地jar包需要依赖到项目里。

2025-01-03 10:19:58 236

原创 线程池、基础数据结构

FixedThreadPool:固定大小线程池,来一个任务创建一个线程直到最大,适用于负载较重、运行时间较长的应用,因为它能有效控制系统的并发水平,防止过多的线程占用系统资源,导致系统瘫痪或不稳定。CachedThreadPool:可缓存线程池,线程池大小没有限制受系统资源影响,接到任务后判断线程池中的线程状态如果都为活跃则创建新的线程,否则选择已构建的线程使用。SingleThreadExecutor:单个线程的线程池,只用一个线程来执行任务,保证所有任务按照一定的顺序执行(FIFO)

2024-11-06 16:52:27 964

原创 JVM结构、GC、SpringMVC、IOC

Mark-Compact,标记完之后将存活的对象移到一端然后清理端边界以外的内存,比Mark-Sweep效率低因为其只需要标记之后然后清除对象释放内存,而整理除了标记和清理步骤外,还增加了移动操作,以及更新对象引用地址的操作。老年代通常占堆总内存的2/3到1/2,用于存放生命周期较长的对象。(Mark-Sweep),标记的对象越多越损耗性能,容易产生内存碎片,(比如一个内存块的大小是2,通过一次GC被标记清理,当需要一个内存块大小为1.9时那么就会产生一个0.1内存碎片因为太小而无法被使用)。

2024-11-01 16:20:46 244

原创 RabbitMQ、Kafka消息中间件

未安装插件的情况下可在官网下载安装:https://www.rabbitmq.com/community-plugins。退出容器在RabbitMQ的管理界面,交换机新建队列查看选择队列类型是否出现:x-delayed-message。根据RabbitMQ服务器的配置,设置相应的参数,例如主机名、端口、用户名、密码等。官网地址:https://www.rabbitmq.com/监听订阅消息,发送消息是什么类型这里就用什么类型接收。将插件copy到容器,如果你是docker启动的mq。将连接工厂放入监听里。

2024-10-28 17:53:20 311

原创 Linux服务器简单操作命令

【代码】Linux服务器简单操作命令。

2024-10-28 11:05:34 201

原创 Java程序输出PDF格式文件

文件位置:resources/templates/test.html。这里字体文件可在 C:\Windows\Fonts 下复制。Itextpdf转Html为PDF。设置变量并在Html中引用。使用模板引擎构建文档内容。模板引擎获取Html文件。

2024-10-24 15:11:57 165

原创 分布式微服务搭建

环境:JDK17 / Nacos (docker镜像nacos/nacos-server:latest) / spring.cloud:2023.0.1。更多的变量配置可以在进入平台后右上方文档中查看或者,进入nacos容器conf文件夹下的application.properties配置文件中查看。yaml配置,对应的配置属性可在NacosConfigProperties中查找,这里只配置了账号密码,其它的使用的是默认的配置。启用了权限认证的其默认的账号密码均为:nacos (进入平台后自行修改)

2024-10-17 15:20:21 345

原创 Docker的安装及简单操作命令

查看某个容器的网络详情:docker inspect container-name | docker inspect bridge-network-ID。指定Dockerfile创建镜像:(-f指定Dockerfile文件路径,不指定默认读当前路劲下的Dockerfile)2.然后打开运行窗口输入:powerShell 执行:wsl --set-default-version 2。阿里云镜像加速器地址:登录阿里云控制台 - 容器镜像服务ACR - 镜像工具 - 镜像加速器。

2024-10-15 15:33:47 1074

原创 Git基础命令

场景:本地分支名关联的远程分支名不一样,想保持一致。场景:远程分支名称被更改,需要获取正确的分支。

2024-10-15 10:42:11 110

原创 数据一致性问题分析(事务/锁)

事务管理,分布式事务管理,锁机制

2024-10-08 17:24:42 948 1

原创 Springboot 多数据源配置

环境: JDK17 springboot 3.2.4 durid 1.2.23。可以使用sqlSessionTemplate执行xml sql中的方法。mybatis的配置需要在这里配置进去,比如前面提到的自定义的插件(新建数据连接配置类(其它数据源参考下方配置即可)构建sqlSessionFactory公共方法。

2024-09-30 11:29:32 778 2

原创 Mybatis SQL 自定义拦截器实现扩展需求

mybatis 自定义 sql 拦截,处理权限查询、逻辑删除、隐私数据加解密等

2024-09-29 17:53:23 956

原创 Mysql安装/命令行操作/日志简介/主从同步

解惑:(1) MIXED可能存在某些情况下选择了STATEMENT而导致了数据的不一致,(2) 由于MIXED需要在解析优化sql后做额外的逻辑判断用那种模式,这导致在高并发场景下就存在性能问题,而ROW不需要解析优化。‌MIXED:ROW和STATEMENT的结合,mysql根据sql语句的具体情况自动选择合适的ROW或STATEMENT模式,确定性的sql用STATEMENT,非确定性或复杂sql用ROW。中继日志:relay log 在MySQL复制中,从服务器用来记录从主服务器接收的数据变更。

2024-09-29 15:43:10 972

原创 Redis Lock分布式锁

Redis通过事件循环来处理网络I/O事件,能够同时处理多个客户端的连接请求,但其核心数据处理(读、写、删除)都是在一个单线程的主线程中处理,且每次只能执行一个命令,从而保证了数据的一致性。缺陷:setIfAbsent(key, value, expire)该方法执行的命令SETNX和EXPIRE命令是两个独立的操作,即先执行SETNX再执行EXPIRE,所以还是可能存在SETNX执行结束后出现服务宕机而导致锁死的情况。缺陷:当业务程序未执行结束,出现宕机等情况导致未执行释放锁的操作,则会出现锁死的情况。

2024-09-14 13:12:32 481

原创 Redis安装及基础命令

下载地址:https://redis.io/downloads/–network-alias:在bridge网络中定义的别名。–network:指定容器加入的docker网络。官网地址:https://redis.io/–requirepass:密码。

2024-09-14 10:08:15 306

原创 LocalDateTime与前端字符串时间数据交互问题

LocalDateTime与前端交互问题

2024-09-05 14:18:22 1218

原创 拦截器/过滤器/AOP应用/动态代理

过滤器:jakarta.servlet.Filter 存在于 java servlet 所以如Tomcat 、Jetty这些遵循servlet规范的容器都可以使用。(servlet是一个接口定义规范)拦截器:HandlerInterceptor 属于springmvc 用于拦截mvc控制器(controller),mvc的核心是DispatcherServlet。

2024-08-30 15:37:26 337

原创 RateLimiter限流简单介绍

令牌以固定的速率生产令牌并放入桶中直到达到桶的最大值,每一个请求先去桶中获取令牌,没有获取到令牌则拒绝请求。将时间窗口划分为更小的时间片段,相邻几个时间片段组成一个时间窗口,当时间窗口求情数量达到阈值拒绝请求。每一个固定单位时间为一个窗口,记录每个时间窗口请求数量,数量达到阈值拒绝请求等待下一个时间窗口。限流:控制单位时间内的请求次数,避免过高的请求造成系统压力,保证服务的稳定性和可靠性。优点:能够平滑的处理突发流量,突发的最大请求数就是令牌桶当前拥有的令牌数。

2024-08-29 11:53:48 550

原创 Docker部署平台服务(Java后端和vue前端)

这里使用的JDK17镜像为:azul/zulu-openjdk:17。变量名=变量值(变量值有特殊字符或者值太长需要换行时可放入引号中)这里定义创建好的network为:chevysky-bridge。创建network实现多容器间相互访问具体可参考。

2024-08-26 17:50:18 343

原创 Java 文件上传和内存消耗

java使用MultipartFile接收到的文件然后存到磁盘固定位置是不需要消耗内存的,使用 MultipartFile.transferTo()方法本质是将文件从临时文件位置移到最终指定的位置。

2024-08-21 11:57:52 375

空空如也

空空如也

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

TA关注的人

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