- 博客(37)
- 收藏
- 关注
原创 【MySQL】幻读 案例分析
幻读指的是一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没有看到的行。在可重复读隔离级别下,普通的查询是快照读,是不会看到别的事务插入的数据的。因此,幻读在“当前读”下才会出现。幻读仅专指“新插入的行”。
2025-02-12 02:05:59
447
原创 【性能调优】高性能实践
性能优化,缓存为王,所以开始先介绍一下缓存。缓存在我们的架构设计中无处不在,常规请求是浏览器发起请求,请求服务端服务,服务端服务再查询数据库中的数据,每次读取数据都至少需要两次网络 I/O,性能会差一些,我们可以在整个流程中增加缓存来提升性能。
2025-01-27 23:21:01
937
原创 【MQ】如何保证消息队列的高可用?
每个分区的 Leader 负责维护 ISR 列表并将 ISR 的变更同步至 ZooKeeper,被移出 ISR 的 Follower 会继续向 Leader 发 FetchRequest 请求,试图再次跟上 Leader 重新进入 ISR。只要分区的Leader副本和至少一个Follower副本保持同步,消费者就能看到所有已提交的消息,即使Leader副本发生故障。确保了Kafka在分区的Leader副本发生故障时,可以从ISR中选举出一个Follower副本作为新的Leader,
2025-01-27 23:11:36
770
原创 【MQ】如何保证消息队列的高性能?
Kafka 使用到了 mmap 和 sendfile 的方式来实现零拷贝。分别对应 Java 的 MappedByteBuffer 和 FileChannel.transferTo。
2025-01-27 23:05:53
565
原创 【数据结构与算法】滑动窗口
假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。返回最短子数组的左端点和右端点,如有多个满足条件的子数组,返回左端点最小的一个。若不存在,返回空数组。示例 1:输入: big = [7,5,9,0,2,1,3,5,7,9,1,1,5,8,8,9,7] small = [1,5,9] 输出: [7,10] ---5,7,9,1解题思路:滑动窗口,消减法。
2025-01-27 18:41:18
343
原创 【性能调优】后台服务出现明显“变慢”,诊断思路?
系统性能分析中,CPU、内存和 IO 是主要关注项。对于 CPU,如果是常见的 Linux,可以先用 top 命令查看负载状况,下图是我截取的一个状态。可以看到,其平均负载(load average)的三个值(分别是 1 分钟、5 分钟、15 分钟)非常低,并且暂时看并没有升高迹象。如果这些数值非常高(例如,超过 50%、60%),并且短期平均值高于长期平均值,则表明负载很重;如果还有升高的趋势,那么就要非常警惕了。
2025-01-27 18:04:10
292
原创 【MySQL】悲观锁和乐观锁的原理和应用场景
乐观锁则与 Java 并发包中的 AtomicFieldUpdater 类似,也是利用 CAS 机制,并不会对数据加锁,而是通过对比数据的时间戳或者版本号,来实现乐观锁需要的版本判断。FOR UPDATE 这样的语句,对数据加锁,避免其他事务意外修改数据。主要区别在于,操作共享数据时,“悲观锁”认为数据出现冲突的可能性更大,而“乐观锁”则是认为大部分情况不会出现冲突,进而决定是否采取排他性措施。悲观锁和乐观锁,并不是 MySQL 或者数据库中独有的概念,而是并发编程的基本概念。
2025-01-27 12:40:25
362
原创 【Java并发编程】探索 AQS
1、AQS内部维护⼀个state状态位, volatile int state;// state 这个值记录的是锁状态,state在无锁的状态下值为0,如果大于0,代表有线程持有锁。2、尝试加锁的时候通过CAS(CompareAndSwap)修改值,如果成功设置为1,记录当前线程ID,则代表加锁成功,⼀旦获取到锁,其他的线程将会被阻塞进⼊阻塞队列⾃旋3、释放锁的时候将会唤醒阻塞队列中的线程,释放锁的时候则会把state重新置为0,同时清空当前线程ID。1、状态state2、CLH队列。
2025-01-26 23:28:39
968
原创 【MQ】探索 Kafka
消息的顺序性、顺序写磁盘零拷贝RocketMQ内部主要是使用基于mmap实现的零拷贝,用来读写文件减少cpu的拷贝次数和上下文切换次数,实现文件的高效读写操作零拷贝顺序写磁盘页缓存技术批量传输与压缩消息网络模型分区并发高效的文件数据结构。
2025-01-24 02:04:06
1273
原创 【Java并发编程】线程池
{ // 如果当前线程是中断标记,则 if (Thread.interrupted()) { //那么从列表中移除节点 q,并抛出 InterruptedException 异常 removeWaiter(q);} // 表示还有一些后序操作没有完成,那么当前线程让出执行权 else if (s == COMPLETING) // cannot time out yet Thread.yield();//将当前线程阻塞等待 else if (q == null) q = new WaitNode();
2025-01-24 01:47:04
745
原创 【微服务与分布式实践】探索 Sentinel
/ 流控规则 final String flowPath = "/sentinel_rule_config/" + appName + "/flow";// 降级规则 final String degradePath = "/sentinel_rule_config/" + appName + "/degrade";通过以上步骤,Sentinel 可以利用 ZooKeeper 来集中管理和推送规则,实现规则的持久化和实时更新。这样,即使服务重启,配置的规则也不会丢失,并且可以快速响应规则的变化。
2025-01-24 01:39:30
1052
原创 【微服务与分布式实践】探索 Dubbo
Dubbo提供了多种负载均衡算法,如随机、轮询、一致性哈希等,用于在多个服务提供者之间进行负载均衡,确保请求能够均匀分布到各个服务提供者上。负载均衡器会根据服务提供者的权重、响应时间、并发数等因素来选择最优的服务提供者。
2025-01-24 01:27:40
983
原创 清结算领域
资金在平台的自有账户中形成了资金池,该部分资金具有金融风险,平台随时可以携款跑路;平台再将资金从自有账户清算后结算给平台的商家——第二次清算(二清违规)。二清简单的说就是清结算的“无证驾驶”,要想不违规,就找个有证的开车带着你。“二清”,即二次清结算,指的是有清结算资质的机构将资金结算给入网的平台后,该平台再将资金清结算给其子商户,若该平台没有清结算资质的话,就属于二清了。如果平台的经营出现问题,资金又没有受到第三方的监管,这些“裸奔”的资金很容易被平台卷走,对于商家和客户而言,都不安全。
2025-01-23 10:30:42
206
原创 后端大数据技术栈
后端大数据技术栈涵盖了从数据采集、存储、处理、分析到可视化的各个环节。选择合适的技术栈需要根据具体的业务需求、数据规模和预算来决定。批处理实时处理数据存储数据分析数据可视化希望这段总结能帮助你更好地理解和选择适合的后端大数据技术栈!如果有任何问题或需要进一步的示例,请随时告诉我。
2025-01-22 10:25:04
672
原创 Java实战 CompletableFuture API 汇总
Wed Jan 22 14:34:59 CST 2025thread name:ForkJoinPool.commonPool-worker-25 执行future3开始..., 第一第二个实现聚合结果:Hello World。Wed Jan 22 14:34:59 CST 2025thread name:ForkJoinPool.commonPool-worker-25 执行future2开始..., 第一个实例结果:Hello。两个任务是并行执行的,它们之间并没有先后依赖顺序。
2025-01-22 10:10:55
541
原创 Java实战 Stream流操作
Java Stream API 是 Java 8 引入的一个强大的功能,用于处理集合数据。它提供了一种声明式的方式,可以对集合进行高效的批量操作,如过滤、排序、转换、聚合等。Stream API 的设计灵感来源于函数式编程语言,使得代码更加简洁、易读,同时也支持并行处理,提升了性能。以下是 Java Stream 流操作的总结,涵盖常见的操作和使用场景。Java Stream API 提供了一种声明式的方式,可以高效地处理集合数据。通过中间操作(如filtermapsorted)和终端操作(如。
2025-01-22 10:06:31
386
原创 Docker 配置
Docker配置国内镜像{"registry-mirrors": ["https://dockerhub.azk8s.cn","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"],"insecure-registries": [],"debug": true,"experimental": false}
2021-02-26 22:16:58
184
1
原创 Docker 安装 MongoDB
下载mongo镜像docker pull mongo运行mongo镜像docker run -itd --name mongo -p 27017:27017 -v /home/db mongo --auth-p 27017:27017:映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。 --auth:需要密码才能访问容器服务。docker exec -it mongo mongo admin...
2021-02-26 21:58:40
148
原创 Solace-jms发送message
目录准备工作引入solace-jms依赖配置solace信息配置ConsumerConfiguration配置ProducerConfiguration发送message到Queue / Topic监听queue准备工作创建Queue:tutorial/test/queue创建Queue:tutorial/test/queue2 订阅Topic xxxxxxxx/TRANSACTION/V01/N/./*>引入solace-jms依赖...
2020-12-14 23:36:02
2200
1
原创 [Node.js] XML JSON 解析
npm install xml2jsimport xml2js from 'xml2js';export default class XMLParse { static jsonToXml(jsonContent) { const builder = new xml2js.Builder(); return builder.buildObject(jsonContent); } static async xmlToJson(xmlContent) { ...
2020-12-11 13:42:29
347
原创 JAXB XML XSD JAVA Bean 之间的转化
将 XML 文件(以.xml结尾)转化为 Schema 文件(以.xsd结尾) 下载Trang.jarjava -jar trang.jar sample.xml sample.xsd<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ServiceRequest xmlns="http://com.csdn.uc"> <ucAmount>100</ucAmount>...
2020-12-11 11:52:36
1146
2
原创 【Docker】Get Started with Solace
Solace Get Started :https://solace.com/products/event-broker/software/getting-started/ Docker安装Solace容器docker run -d -p 8080:8080 -p 55555:55555 -p:80:8008 -p:1883:1883 -p:8000:8000 -p:5672:5672 -p:9000:9000 -p:2222:2222 --shm-size=2g --env username_a.
2020-05-18 00:58:33
792
原创 【Docker】Get Started with Docker Desktop
官网https://www.docker.com/products/docker-desktop Download for Windows 下载 Docker Desktop Installer.exe 启动Docker默认使用Linux Container,如果启动报错提示:Cannot enable Hyper-V service。 检查虚拟化是否已启用,如果未开启,需要在开机的时候进入bios系统,设置Intel Virtualization Technology 为Enable ...
2020-05-18 00:34:05
837
原创 【Node.JS系列】mongoose - MongoDB 对象模型工具
官网:https://mongoosejs.com/First be sure you haveMongoDBandNode.jsinstalled.$ npm install mongoose
2020-04-29 23:06:10
201
原创 NPM 工具包
http://landau.github.io/predicate/#intronpm install --save is-predicate
2020-04-21 23:29:18
188
原创 【React 系列】Create React App
快速创建appnpm install -g create-react-appcreate-react-app react-admin
2020-04-19 19:00:05
229
原创 【SpringBoot系列】devtools实现热部署
1、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>2、设置自动编译3、Ctrl + Shift ...
2020-04-12 17:42:14
115
原创 【Vue 系列】安装vue cli - 使用图形化界面创建新项目
官方文档https://cli.vuejs.org/zh/guide/Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供:通过@vue/cli搭建交互式的项目脚手架。 通过@vue/cli+@vue/cli-service-global快速开始零配置原型开发。 一个运行时依赖 (@vue/cli-service),该依赖: 可升级; 基于 we...
2019-06-16 16:51:14
518
原创 Maven
1、Maven下载地址:http://maven.apache.org/download.cgi2、配置环境变量 M2_HOME:D:\software\maven\apache-maven-3.6.33、配置Path:%MAVEN_HOME%\bin4、D:\software\maven\apache-maven-3.6.3\conf\settings.xml 配置本地仓库:...
2019-06-14 01:06:29
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅