自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 常见的几个JVM调优场景

讲几个常用的JVM调优场景,经常使用的参数讲解。

2024-03-20 23:31:58 1350 1

原创 收集一些PostgreSQL的题目

关于PostgreSQL的一些面试题

2024-03-20 14:59:02 1045 1

原创 tini启动进程的原理

tini是一个小型的守护进程初始化系统,主要用于容器环境下作为 PID 为 1 的init进程。在 Linux 系统中,PID(进程标识符)为 1 的进程具有特殊的意义,它是系统的第一个进程,也称为 init 进程,负责创建、管理和终止其他所有进程,并且能够正确地处理和转发信号给其子进程。在 Docker 容器中,由于容器通常会直接运行用户指定的应用程序而非一个完整的 init 系统(如 Systemd 或 Upstart),因此有时候会出现信号处理不当或者僵尸进程的问题。

2024-03-19 00:21:51 534 1

原创 Spring事务扩展点-TransactionSynchronization

Spring 提供TransactionSynchronization是一个非常重要的扩展点,它允许开发者参与到 Spring 管理的事务生命周期中的特定阶段,从而能够在事务开始前、事务结束(提交或回滚)前后执行自定义的操作。这个接口主要用来实现事务相关的同步行为,帮助开发者实现在事务边界上进行资源清理、刷新缓存、发送通知等操作。

2024-03-19 00:03:50 1033 3

原创 在事务里发送普通消息引起的线上问题

实习生小A在做一个需求时,需要从订单系统中生产业务消息,仓储系统中的消息订阅者进行消费。在这个过程中,订单、仓储系统都需要查询并且更新order表获取字段updateTime的值,但是系统上线后发现updateTime值更新异常,仓储系统查询到了订单update前的数据。部分MQ产品提供事务消息特性,允许生产者先发送半事务消息,在本地事务完成后提交事务,此时消息队列才会真正投递消息给消费者。对于上述场景,建议调整为事务提交后发送消息,并根据实际情况选择适合的分布式事务解决方案。对于事务中发送消息的情况。

2024-03-18 23:51:47 1153 1

原创 如何设计电商系统中的数据埋点?

设计埋点时:前端埋点请求量大时,后端可通过异步处理(如消息队列)、批量处理、水平扩展(负载均衡与数据库优化)、缓存机制、API Gateway服务进行流量控制和治理,并结合代码与数据库的性能优化、云服务弹性伸缩、数据压缩以及合理采样策略,有效应对高并发场景,确保系统稳定性和处理效率。

2024-03-14 23:26:28 937 1

原创 日常开发有用到临时表吗?

如果临时表的数据量过大,或者创建、维护临时表所需的时间超过了直接执行原查询的时间,那么临时表可能会导致性能下降。例如,在内存有限的情况下,较大的临时表可能会被存储到磁盘上,这可能比直接在内存中操作慢得多。临时表是会话级别的,不同的会话之间互不干扰,这允许数据库引擎在同一数据库的不同会话中独立地管理和优化临时数据的处理,从而降低锁争用和资源冲突。对于分布式系统或客户端/服务器架构,通过将中间结果暂存在临时表,可以减少数据在网络中的来回传输,尤其是对于大数据量查询而言,显著提高了性能。

2024-03-14 22:47:30 918 3

原创 白话-MVCC如何工作

通过这种方式,两个事务可以在不互相等待对方释放锁的情况下,独立地进行读写操作。当事务提交后,系统会清理不再需要的旧版本记录,以保证空间的有效利用。在多个事务共同操作相同数据行时,MVCC(多版本并发控制)机制能够确保事务间的并发访问不会相互阻塞,同时保持事务的隔离性。总的来说,在MVCC中,每个事务都像是在操作自己特定版本的数据集,从而避免了传统锁定机制带来的潜在阻塞问题,提高了数据库系统的并发性能。假设我们有两个事务A和B,它们都在操作同一行数据。

2024-03-10 13:53:58 599 3

原创 在并发场景如何正确的使用锁机制呢?

在日常并发场景中,正确使用锁机制是非常重要的,因为不恰当的锁使用会导致死锁、饥饿等问题,影响程序的性能和可靠性。在日常并发场景中,我们需要根据具体情况选择合适的锁机制,并注意锁的粒度、死锁的预防、饿汉式锁、可重入锁等方面的问题。在选择锁的粒度时,需要考虑到锁的开销和锁的竞争情况。如果锁的粒度过小,会导致锁的开销过大,增加程序的复杂度。如果多个线程需要获取多个锁,就应该按照相同的顺序获取锁,这样可以避免死锁的发生。在获取锁的时候,可以设置一个超时时间,如果在规定时间内没有获取到锁,就放弃获取锁。

2024-03-10 13:29:14 516 1

原创 探讨MySql RR事务隔离级别

RR解决了什么?RR解决了脏读的问题(保证了在同一个事务下,多次读取同样的数据的结果是一致的),最大功臣就是MVCC机制。但是这也导致RR级别出现的幻读问题,在特定情况下,还是无法彻底解决,本文指在探讨幻读产生的原因,方便之后在开发过程中,避免可能导致幻读情况发生的操作。其他事务隔离级别暂不探究,探究使用较多的RR。

2023-10-14 10:03:52 317 2

原创 动态代理与Spring Aop

简单阐述AOP,IOC的部分内容,帮助理解spring容器,aop与动态代理的关系,有助于初学者解决部分疑惑。

2023-06-25 10:16:36 1112 4

原创 ChatGPT4 VS ChatGPT3.5:揭秘人工智能语言模型的技术革新

详细介绍ChatGPT4与ChatGPT3.5之间的关键技术差异,解析为何ChatGPT4在诸多方面超越了ChatGPT3.5,以及这一领域的未来发展趋势

2023-04-07 16:00:35 1884 1

原创 AI绘画能取代绘画师吗?

技术的局限性:目前的AI绘图工具虽然可以完成一些简单的图像制作,但是在处理复杂的设计任务和艺术创作方面仍然存在局限。设计师可以通过自己的专业知识和创意来解决这些问题,而AI绘图工具则需要更多的技术研究和进步才能够实现。设计师可以通过不断学习和提升自己的专业能力,与AI绘图工具共同发挥各自的优势,为用户创造更好的设计作品。人性化的设计:设计师可以更好地理解人类的需求和心理,创作出符合人性化的设计作品。而AI绘图工具则缺乏这种人性化的思考和理解,难以产生具备情感和人性化的设计作品。

2023-04-07 14:47:45 284

原创 闲来无事,写个脚本爬一下快递信息

一个简单的爬虫示例,实际的爬虫任务可能更加复杂。在实际的爬虫开发中,需要根据具体的场景和需求来选择使用哪些技术和工具来完成爬虫任务。验证码识别:当出现验证码时,通过下载验证码图片,使用pytesseract库进行验证码识别,自动输入验证码。数据存储:通过连接MongoDB数据库,并定义数据结构,将爬取的快递信息保存到MongoDB中。自动识别快递公司:通过定义快递公司列表和快递公司匹配的正则表达式来实现自动识别快递公司。

2023-04-06 00:35:00 1224

原创 打破无障碍壁垒,让数字世界更包容

微软辅助技术:微软公司提供了许多辅助技术,如屏幕放大器、语音识别、语音合成等,以便视力、听力、运动能力等方面的残障人士使用Windows操作系统。无障碍开发旨在使数字产品及服务可被各种身体残障人士使用,包括视力、听力、运动能力等方面的残障。谷歌无障碍服务:谷歌公司推出的无障碍服务包括TalkBack屏幕阅读器、放大镜等,有助于视力残障人士使用Android设备。确保可访问性测试:在设计数字产品时,应该对产品进行可访问性测试,以确保残障人士能够顺利地使用产品。

2023-04-06 00:11:35 134

原创 平凡的应届生四年学习之路

从C语言到JAVA的技术路程中,慢慢发现更多编程语言的魅力和相同之处。无论是过程中遇到的技术栈选择,还是工作方向的选择,都是值得回味和记录的。

2022-09-02 23:49:15 2308 4

原创 AOP和动态代理-自定义注解切入使用-01

JDK动态代理与SpringAop;1. JDK 动态代理 使用JAVA反射包中的类和接口实现动态代理的功能,JAVA.lang.reflect包;主要是三个类:InvocationHandler,Method,Proxy;2. CGLIB动态代理,第三方工具类库,创建代理对象,cglib的原理是继承,通过继承目标类,创建它的子类,在子类中重写父类中同名的方法,实现功能的修改...............

2022-06-04 17:35:34 3502 4

原创 2022 编程学习建议

前几天公司的一位领导把他的儿子带来我们部门玩,一番了解下来,他年纪轻轻就对编程很有兴趣;自学的Python,了解网络协议;真是从小就开始内卷了,哈哈哈哈哈;并不是所有人从小就到接触编程,大多数人可能像我一样,是从填志愿开始的;笔者选择的是软件工程专业,2022年的应届生,到现在已经是一个"CV工程师"了;俩年来在CSDN写的文章:HelloWorld#include <stdio.h> int main() { printf("Hell

2022-01-21 10:50:00 2614 5

原创 多数据源下Seata分布式事务出现的问题和解决方法

推荐使用AT模式整体机制两阶段提交协议的演变:一阶段:业务数据和回滚日志记录在同一个本地事务中提交(本地数据库先保存,并向undo_log表写入日志),释放本地锁和连接资源。二阶段:提交异步化,非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿(回滚时-读取undo_log表回滚回初始状态)...

2021-10-24 09:14:57 10571 6

原创 ReentranLock锁解析

用于实现依赖先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量、事件等) 此类支持默认独占模式和共享模式中的一种或两种。 当以独占模式获取时,其他线程尝试获取不会成功。 多个线程获取的共享模式可能(但不一定)成功。 这个类不“理解”这些差异,除了机械意义上的区别,当共享模式获取成功时,下一个等待线程(如果存在)也必须确定它是否也可以获取。 在不同模式下等待的线程共享同一个 FIFO 队列

2021-08-14 23:35:37 6692 4

原创 MySql索引以及优化-日常充电

MySql索引以及优化,索引是帮助MySql高效获取数据的排好序的数据结构;索引的数据结构二叉树,红黑树,Hash表,B-Tree等

2021-07-30 11:02:19 5010 4

原创 六月,你留有遗憾吗?

毕业后也选择了自己喜欢的专业,成为了一个码农,搬砖的日常,时刻回想起在校的时光,总是让人向往,篮球场上,课室里。。。。

2021-06-28 17:43:24 5089 9

原创 我的HarmonyOS实战-国产系统的崛起之战

全新的 HarmonyOS 桌面简洁有序,上滑 App 生成万能卡片,在桌面即可呈现更丰富的信息。卡片内容实时更新,只需一瞥即可获取所需信息,省去了打开 App 的时间。卡片可大可小、可藏可显,还能够个性化定制,让每个桌面独一无二。同时,卡片也是原子化服务的载体,在服务中心可以轻松获取、随时分享,无需下载、安装,一步到位获取各种服务。

2021-06-23 23:44:44 33752 27

原创 广州市二手房源数据采集和可视化分析(链家二手房)Python

二手房源数据采集和可视化分析(链家二手房)KMeans Jupyter pandas Pyecharts图形实现数据可视化和聚合分析

2021-06-13 19:40:34 6809 12

原创 《看看程序员都在用的浏览器插件》

完全免费,去除CSDN站内广告提供常用的程序员网站随心定义浏览器壁纸可自定义页面插件同时还有其他开发者提供的脚本插件供安装使用可以自定义布局设置许多技术文档手册拿来即用的在线工具可选搜索栏感受一下没有广告的CSDN总结:轻便,无广告,提供工具较全面,可自定义插件等PS:如何在浏览器安装,如谷歌浏览器,打开开发者模式,将下载的插件拖进扩展程序页面官方插件下载地址...

2021-05-31 19:23:21 2346 5

原创 Apache DolphinScheduler征稿-DolphinScheduler的入门级教程及案例

Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

2021-05-29 00:45:39 10109 16

原创 我的Serverless实战-第一次亲密接触

本文正在参与:100%有奖 | 我的Serverless 实战征稿活动Serverless初识什么是ServerlessServerless Framework 是业界非常受欢迎的无服务器应用框架,开发者无需关心底层资源,即可部署完整的 Serverless 应用架构。Serverless Framework 具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期,帮助开发者通过联动云资源,迅速构建 Serverless 应用。Serverless的发展历程Ser

2021-05-28 12:30:46 5579 14

原创 从Bean的装配理解Spring框架

Bean装配 BeanFactory接口:Spring的IOC容器核心接口,它的职责包括,实例化,有很多的实现类;如`ApplicationContext`接口:用于访问应用程序组件的Bean工厂方法,以通用方式加载文件资源的能力等Spring的上下文,我简单理解就是spring的当前运行的环境,也可以理解是spring可以利用的资源。ApplicationContext有两个主要的实现类:ClassPathXmlApplic

2021-05-27 23:36:29 4662 9

原创 备战大三实习篇之 Zookeeper

Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节点都可以设置 关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。Zookeeper 为了保证高吞吐和低延 迟,在内存中维护了这个树状的目录结构,这种特性使得 Zookeeper 不能用于存放大量的数据,每个节点的存 放数据上限为 1M。

2021-05-27 22:58:43 6013 11

原创 JVM基础和调优

CMS和G1回收器,G1的并发标记周期,为什么要JVM调优? 减少GC,特别是FullGC对象优先在堆的 Eden 区分配大对象直接进入老年代长期存活的对象将直接进入老年代. 当 Eden 区没有足够的空间进行分配时,

2021-04-13 18:37:29 28942 18

原创 从源码分析面试中经常出现的集合类问题

Collection接口,ArrayList(动态数组)扩容和add,set等方法, LinkedList(双向链表),Vector和ArrayList扩容数组的区别,HashMap(链表加数组)

2021-03-21 17:14:37 10266 15

原创 Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection do

报错:可能引起原因:mapper配置文件没有加载到;解决:两种加载xml映射文件的方式都试一遍!查看编译后文件(如果没有xml文件说明mybatis或者maven没有加载到)解决:告诉maven打包带上xml文件可能是maven目录结构问题,检查目录是否合乎maven规范可能是sql的xml文件的 id属性绑定的值与方法的ID不相同...

2021-03-20 09:36:57 10743

原创 Spring菜鸟教你看源码冲面试

Spring源码解析,BeanFactory:主要方法为getBean(String beanName),该方法根据Bean名称从容器返回对应的Bean,Spring 通过 AbstractAutoProxyCreator 来创建 AOP 代理,AbstractAutoProxyCreator 是一个抽象类,它实现了 `BeanPostProcessor` 接口,用于在 bean 初始化完成之后创建它的代理(从上面IOC容器创建Bean过程中有点体现);

2021-03-14 14:10:04 13909 20

原创 CAS和AQS一文搞懂

JAVA多线程,面试官喜欢问的东西一些概念的东西原子性就是指该操作是不可再分的。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。比如 a = 1;非原子性:也就是整个过程中会出现线程调度器中断操作的现象类似"a ++"这样的操作不具有原子性,因为它可能要经过以下两个步骤:(1)取出 a 的值(2)计算 a+1如果有两个线程t1,t2在进行这样的操作。t1在第一步做完之后还没来得及加1操作就被

2021-03-12 14:39:17 2676 1

原创 Docker进阶篇

Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,Docker Swarm搭建docker集群至少4台服务器其中一台机器是管理员(称为manager1),其中三台机器是工人(worker1和worker2, worker3)

2021-03-03 20:54:27 5445 8

原创 Nginx 配置文件nginx.conf中文详解

Nginx 配置文件nginx.conf中文详解

2021-03-03 20:42:24 1142 2

原创 看菜鸟如何用一篇文章学Docker(超详细)

用一篇文章学完Docker镜像加载原理Docker常用的命令docker容器文件移动复制commit镜像安装可视化工具Portainer和Rancher容器数据卷具名和匿名挂载如何判断是具名挂载还是指定路径挂载Dockerfile文件说明使Dockerfile 定制镜像

2021-02-28 16:48:05 22673 12

原创 Docker安装(阿里云服务器)和在虚拟机安装遇到的坑

Docker安装(阿里云服务器)Docker官方centos安装教程卸载旧版本$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \

2021-02-18 16:01:23 3681 6

原创 使用Elasticsearch7.10.2新版本,新手需要注意的那些事

Elasticsearch全文搜索,精确查询,高亮查询,整合springboot进行操作等

2021-02-16 13:58:55 6001 6

原创 情人节!原来程序员也可以那么浪漫!

程序员的情人节,演示烟花,树叶飘落特效首页代码片段特点介绍源码地址情人节没有对象的点个赞吧!!!!2月14日,是西方的传统节日之一。男女在这一天互送巧克力、贺卡和花,用以表达爱意或友好,现已成为欧美各国青年人喜爱的节日。大概这世上有多少情人就有多少关于情人节来历的诠释吧。和中国人现在用近乎狂热的热情过起了圣诞节一样,情人节也已经悄悄渗透到了无数年轻人的心目当中,成为中国传统节日之外的又一个重要节日。2021情人节到了,赶紧给心爱的女朋友表达自己的爱吧

2021-02-06 19:25:18 13701 11

情人节源码,烟花特效.zip

程序员情人节代码烟花特效,和雪花

2021-02-08

发卡网(全解无后门).zip

发卡网(全解无后门) 源码直接用,已经修改。个人自动发卡系统源码供应平台,程序集成免签约即时到账支付接口,资金不中转直接入收款账户更加安全。持续更新不断完善用户体验...

2020-10-27

Sublime Text 3 中文优化版.zip

Sublime Text是一个代码编辑器,也是HTML和散文先进的文本编辑器。Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

2020-10-27

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

TA关注的人

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