- 博客(790)
- 收藏
- 关注
原创 varchar 修改后字段值变长了或变短了
原文链接:https://blog.csdn.net/liuche1/article/details/121502439。mysql变长类型字段varchar值更新变长或变短底层文件存储原理。
2024-08-23 16:09:57
176
原创 rotcketmq实践 吞吐量 发送重试 重试消费 异步 批量发送
性能:批量发送通常比单笔发送更高效,尤其是在消息体较小的情况下。资源消耗:批量发送减少了网络IO次数,降低了系统资源消耗。错误处理:单笔发送更容易实现精确的错误处理逻辑;批量发送则需要更复杂的逻辑来确保消息的正确性。在实际应用中,可以根据业务需求和性能要求选择合适的消息发送方式。例如,在对实时性和准确性要求非常高的场景下,可以选择单笔发送;而在追求高吞吐量且能接受一定延迟的场景下,则可以采用批量发送。
2024-08-16 16:46:12
815
原创 elasticsearch 字段类型的索引、字段类型修改、字段类型、分页、排序、分组、聚合
Elasticsearch 支持多种数据类型,用于处理和存储不同格式的文档数据。主要的数据类型分为三大类:核心数据类型、复杂数据类型和特殊数据类型。
2024-08-16 11:00:41
784
原创 clustered index的叶子节点存储了行数据,请问叶子节点行数据在磁盘上必须按照一整块硬盘的地址顺序存储吗? 还是可以碎片化利用磁盘空间呢?
InnoDB 的聚簇索引(Clustered Index)中的叶子节点确实存储了行数据,但这并不意味着这些叶子节点必须按照硬盘的物理地址顺序连续存储。实际上,在数据库管理系统中,数据通常是以页(Page)为单位管理的,每个页都有固定的大小,比如 InnoDB 中的默认页大小是 16KB。
2024-07-29 16:24:12
356
原创 ElasticSearch 关于搜索,有哪些类型的搜索
以上是Elasticsearch中的一些主要搜索类型。你可以根据你的需求选择合适的搜索类型来优化查询性能和满足特定的业务需求。如果你有具体的场景或问题需要讨论,请随时提问!
2024-07-29 09:40:59
386
原创 mongodb的功能和工具不如mysql多吗
MySQL 在关系数据处理、数据完整性约束、事务支持等方面具有优势,拥有成熟的关系模型和广泛的工具生态系统。MongoDB 在灵活性、水平扩展能力、高性能查询、地理空间索引等方面具有优势,特别适合处理大规模非结构化或半结构化数据。选择哪种数据库取决于您的具体需求和场景。如果您需要处理关系型数据并确保数据的一致性,MySQL 可能是更好的选择。如果您需要处理大规模的非结构化数据并且需要灵活性和水平扩展能力,MongoDB 可能更适合您的需求。
2024-07-26 16:42:48
339
原创 SecureCRT连接Linux时乱码问题
使用SecureCRT输入中文出现乱码的问题,通常与字符编码和终端的显示设置有关.发生乱码的原因主要是有三个地方1.Linux的etc的系统默认配置的编码2.用户环境变量里面设置的LANG变量3.SecureCRT会话变量里面的字符集的设置只要保持这三个地方的字条集编码保持一致就可以了。
2024-07-24 11:09:56
465
原创 idea springBoot启动时覆盖apollo配置中心的参数
–key01=val01 --key02=val02env=FAT;key02=val02;key03=val03
2024-07-22 17:15:05
531
原创 后端开发常见错误
8、批次处理表数据,要在try中占用批次,占用完成后要重新select批次数据,以避被其他线程占用数据。批次处理完成后要在finally中释放批次数据,即把执行批次(exe_batch_no)字段给清空。6、如遇奇怪的参数丢失,请仔细检查原始json,常见错误包括(1)字段重复,同一个字段写多次。4、表字段长度,在接口层校验字段长度, 调用三方系统的报错要截取报错的信息长度,避免登记表字段长度不足。3、使用mybatis的foreach的时候要考虑拼接sql的耗时,尤其是超过10条数据。
2024-07-05 10:34:09
318
原创 spring tx @Transactional 详解 `Advisor`、`Target`、`ProxyFactory
Advisor是一个Spring AOP的概念,它包含了切点(Pointcut)和通知(Advice)。在事务管理中,是一个典型的Advisor。通过以上代码示例,可以看出Spring如何解析注解,并使用AdvisorTarget和创建代理对象来处理事务逻辑。这些组件协同工作,实现了自动的事务管理。
2024-07-04 15:37:23
364
原创 springboot @configuration注解的配置, @bean注解方法a, 在@bean注解 getb(){}需要注入a
【代码】springboot @configuration注解的配置, @bean注解方法a, 在@bean注解 getb(){}需要注入a。
2024-07-03 19:20:51
186
原创 集群限流sentinel实践
配置方式:若希望某个资源限制集群总量为 Q,服务实例为 N,则可以配置单机均摊阈值为 Q / N。其中单机均摊模式下配置的阈值等同于单机能够承受的限额,token server 会根据客户端对应的 namespace(默认为 project.name 定义的应用名)下的连接数来计算总的阈值(比如独立模式下有 3 个 client 连接到了 token server,然后配的单机均摊阈值为 10,则计算出的集群总量就为 30);而全局模式下配置的阈值等同于整个集群的总阈值。配置为10, 则总体阀值为。
2024-07-03 16:11:28
537
原创 hikari初始化最小空闲连接池
总的来说,这段代码展示了 HikariCP 如何智能地管理连接池的大小,确保连接池中有足够的空闲连接,同时又不会无谓地占用过多资源。它通过异步的方式创建连接,避免了阻塞主线程,同时也确保了连接的创建是在资源允许的情况下进行的,不会导致资源过度消耗。这个执行器会异步地创建新的数据库连接,并将它们添加到连接池中。这里值得注意的是,最后一个连接的创建任务可能使用不同的创建者(同时,它还减去了已经正在被创建但尚未加入池中的连接数(这部分代码则通过一个循环,将连接创建的任务提交给一个执行器(),以防止重复计算。
2024-07-01 19:09:57
414
原创 记录一次java web接口压测调优过程
请注意,随着时间的推移和不同版本的更新,Tomcat的具体默认配置可能会有所变化。上述信息基于最近的资料汇总,对于特定版本的Tomcat,建议参考其官方文档或发行说明获取最准确的默认配置详情。Tomcat作为一款流行的Java Web服务器,其默认配置覆盖了从端口设置、应用部署、日志记录到性能调整等多个方面。
2024-06-27 11:13:48
498
原创 消息队列 有序 消费模式 主题 分区 高可用 持久 日志 崩溃恢复 事务 重试投递 崩溃最多丢失多少数据 日志模式
2、发送消息前要打印日志,确保消息丢失了也能在日志中找到。1、把多条消息合并成一个批次等同于一次提交一条消息;
2024-06-25 17:12:32
295
原创 零拷贝技术
零拷贝(Zero-copy)技术旨在减少数据从一个地方移动到另一个地方时的内存拷贝次数,尤其是减少从用户空间到内核空间,以及内核空间内部的拷贝次数,以此来提升系统性能。实现零拷贝的主要方式有几种,下面是一些常见的技术:Memory Mapping (内存映射):内存映射是零拷贝的一种常见实现方式。当一个文件被映射到内存时,操作系统创建了一个虚拟内存区域,这个区域直接指向文件在磁盘上的物理位置。这样,应用程序可以直接访问这个区域,将数据从磁盘读入内核缓冲区,而无需再从内核缓冲区拷贝到用户空间。在Java中,
2024-06-25 16:38:20
1080
原创 synchronized关键字和ReentrantLock在不同jdk版本中性能哪个高?该怎么选择呢?
在大多数情况下,你可以根据上述因素来选择,但在具体选择时,还应考虑整个系统的性能瓶颈是否在于锁的竞争。如果锁的竞争不是很激烈,使用哪种锁可能对整体性能影响不大。如果锁成为性能瓶颈,你应该通过基准测试来确定在你的特定环境中哪种锁更优。最后,无论选择哪种锁,都应该遵循良好的并发编程实践,如尽量减小锁的范围,避免过度使用锁,以及使用局部变量和不可变对象来减少同步的需要。在Java 8中,关键字通过监视器锁和锁升级策略实现了高效的并发控制。
2024-06-25 14:48:07
810
原创 udp传输协议,java,发送端和接收端
发送方准备数据并封装成UDP数据报,通过网络层发送到接收方。数据报在网络中传输,可能经历路由和转发过程。接收方接收到UDP数据报后,解封并验证数据报,将数据传递给应用层。由于UDP是无连接和不可靠的协议,发送方和接收方之间的交互过程简单但不保证数据的可靠传输。这种简单高效的传输方式适用于对传输可靠性要求不高但需要快速传输的应用场景,如实时音视频、在线游戏等。在UDP(用户数据报协议)中,报文在应用层生成后通常不会在传输层被拆分。然而,当UDP报文通过网络传输时,可能会因为底层网络的限制而被拆分。
2024-06-24 16:47:09
491
原创 == equals hashcode 比较 java
在Java中,==equals()和hashCode()都是用于比较对象的,但它们的作用和工作原理各有不同。==
2024-06-21 17:31:08
373
原创 IEEE 754 浮点数标准 java float double
并不是所有十进制小数都能用有限的二进制小数表示。计算机存储浮点数的位数有限,需要截断无限循环小数。这导致了一些十进制小数在转换为二进制表示时只能近似表示,结果就是精度丢失。这在浮点数运算中是一个常见的问题,因此需要在数值计算中考虑误差并进行必要的处理。好的,我再详细解释一下十进制小数转换为二进制的方法,确保每一步都清晰明了。这种方法的优势在于简单、直观且直接对应二进制数的位权,使得我们能够通过重复乘法和取整的过程精确地确定二进制小数的每一位。
2024-06-21 17:15:03
475
原创 java自动类型提升 100==100.0d为true
在每个示例中,Java将int类型的100转换为double类型的100.0,然后进行比较。因此,所有表达式都返回true。这是因为在浮点数和整数比较时,整数被自动提升为浮点数,并且这两个值在数值上是相等的。
2024-06-21 17:09:33
200
原创 java自动类型提升 100==100.0d为true
在每个示例中,Java将int类型的100转换为double类型的100.0,然后进行比较。因此,所有表达式都返回true。这是因为在浮点数和整数比较时,整数被自动提升为浮点数,并且这两个值在数值上是相等的。
2024-06-21 17:08:59
223
原创 常用命令
git bookgit fetch origin拉取远程所有分支git ls-remote查看远程所有分支git push origin --delete <branch name>删除分支git checkout <branch name>切换分支git branch -d <branch name >删除本地分支如何在本地切换到远程分...
2020-05-26 15:09:54
277
原创 less过滤日志
# 根据关键字在日志中查找[root@app]# less /data/logs/xxx/root.log | grep order打印日志到文件[root@app]# less /data/logs/xxx/root.log | grep fa374119105fc9e4 > order.log > 覆盖>>...
2020-04-27 10:27:10
1353
原创 2020-04-22
最终一致性: 借助可靠消息队列来实现TCC(try-confirm-cancel): 借助补偿来做回滚: 调用链要短。一般采用最终一致性方案: 简单、可靠将并行的东西搞成串行的:加锁来实现。打日志保存异常情况: 以便人工介入。整体事务和局部事务: 整体事务包含局部事务。加锁+TCC: 搞定。 ...
2020-04-22 16:10:33
161
原创 2020-04-16 how https works
https://howhttps.works/why-do-we-need-https/1、privacy: 不可被窃听。2、 integrity: 消息在传输途中不可被篡改。3、 identification: 验证身份/ 实现方式:附加一个数字签名HTTPS, via SSL certificates过程:1、handshakes ...
2020-04-16 10:50:16
260
原创 order by 和 索引
1、 order by 排序字段和索引2、 order by 排序字段对其他字段索引的影响3、 mysql是怎么走的索引, 当存在多个索引, order by, group by, where等
2020-04-13 13:59:07
211
原创 get请求参数
@GetMapping("/v1/xxx")selectPageByCondition(@RequestParam @QueryMap Map<String, Object> condition);
2020-04-09 16:24:36
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人