- 博客(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
原创 线程池、基础数据结构
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
原创 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
原创 Springboot 多数据源配置
环境: JDK17 springboot 3.2.4 durid 1.2.23。可以使用sqlSessionTemplate执行xml sql中的方法。mybatis的配置需要在这里配置进去,比如前面提到的自定义的插件(新建数据连接配置类(其它数据源参考下方配置即可)构建sqlSessionFactory公共方法。
2024-09-30 11:29:32
778
2
原创 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
原创 拦截器/过滤器/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关注的人