自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 资源 (1)
  • 收藏
  • 关注

原创 一、springboot 集成 spring-boot-starter-data-redis

文章目录前言一、 springboot 版本二、引入 redis 依赖三、增加配置文件四、增加配置类1、 RedissonConfig2、RedisConfig五、增加操作类,主要操作 string总结前言一、 springboot 版本 <spring-boot.version>2.3.5.RELEASE</spring-boot.version> <dependencyManagement> <dependencies&g

2024-03-19 15:15:29 446

原创 三、实现fastdfs文件上传与记录文件日志

希望实现 FastDFS文件上传的同时并记录文件日志提示:以下是本篇文章正文内容,下面案例可供参考。

2024-03-18 20:27:07 335

原创 二、实现fastdfs文件上传与延迟删除功能的Spring Boot项目

如何在Spring Boot项目中集成FastDFS实现文件上传功能,并添加支持延迟删除功能的实现。

2024-03-18 20:00:51 281

原创 一、Spring Boot 中集成 fastdfs文件上传

Spring Boot 中集成 fastdfs 使用

2024-03-18 19:41:05 230

原创 装发送短信设计:实现灵活可扩展的短信发送功能

通过以上设计, 实现了一个灵活可扩展的短信发送功能,可以根据不同需求发送不同类型的短信通知,并根据短信类型动态获取对应的短信发送器。这样的设计使得代码结构清晰,易于维护和扩展,同时提高了代码的复用性和可读性。在实际项目中, 可以根据具体需求进一步定制和扩展短信发送功能,满足不同业务场景的需求。

2024-03-14 16:54:41 379

原创 数据库乐观锁

如果有冲突,则回滚事务。如果写操作非常频繁,乐观锁可能会导致大量的重试和性能下降。在这种情况下,可能需要考虑使用其他并发控制策略,如悲观锁或分布式锁。如果更新操作没有影响到任何行(即返回的行数为0),则表示有其他事务修改了数据,此时应根据业务需求进行处理,例如重试、记录日志或返回错误给调用者。在应用程序中,你需要按照上述步骤执行查询和更新操作,并处理可能出现的并发冲突。具体的实现方式取决于你使用的编程语言和框架。综上所述,实现乐观锁时需要注意以上常见错误,并结合具体的业务场景和需求进行合理的设计和实现。

2024-03-12 10:20:11 593

原创 限流还分单机限流和集群限流两种模式

单机限流即每台实例维护自己的计数器,而集群限流则是共用一个中央模式的计数器;

2024-03-01 13:40:44 241

原创 定时任务探测发送邮件方法卡主超时不响应

业务服务调用一次,先写入数据库,然后定时任务 3s 查看 5 条,轮询发送 ,没发送 1 条,sleep 500ms,防止邮件服务器压力过大。1、cs 服务,发送业务服务定时任务,每 3s 一次,先写入当前时间都 reids 中,24h 过期。事故原因是,发邮件服务器不知为什么阻塞了,定时任务一直结果不了,卡住了,导致 邮件发送积压。2、增加一个定时任务,每 min 查看这个 key ,是否 5min 没更新,发送超时邮件。业务服务,调用基础服务 发邮件 一直没发出去,原因是 基础服务 发邮件逻辑是。

2024-02-26 17:36:51 420

原创 2、swagger 使用配置技巧

swagger 使用配置技巧

2024-02-26 15:11:27 333

原创 1、swagger knife4j 3.0.3 集成 springboot

增加一个配置,springboot 可以扫描到。

2024-02-26 15:09:08 439

原创 2、分布式调用之 quartz Java 编程

Quartz Java 编程

2024-01-28 14:16:42 542

原创 1、分布式调用之 quartz 基本原理

1、分布式调用之 quartz 基本原理

2024-01-28 11:44:35 1404

原创 分布式服务-雪崩之熔断、限流 、降级、扩容

分布式服务-雪崩之熔断、限流 、降级、扩容

2024-01-25 20:29:03 192

原创 2、上线过程复盘

今年质量管理部联合研发部门一起做质量共建,为保证产品上线质量,为减少出现线上问题或事故;复盘过程中产品、测试、开发三方针对上线版本中存在的问题进行客观的分析及总结,不强制追究责任,更注重总结上线问题,意在减少上线过程中出现重复、基础的问题,减少简单错误出现次数,提高上线效率和质量。1)因为没有/有某个权限或指定角色 导致的问题或冲突;2)三方系统异常导致本项目上线受影响;3)线上/测试环境配置不一致导致问题;5)文件格式/大小/数量无限制;2)历史数据导致异常;4)字段长度未限制;1)刷数据导致异常;

2024-01-25 20:01:28 227

原创 java 业务 上线前准备

产品、开发、测试三方联合针对本次上线进行上线前checklist,互相提醒,避免因工作遗漏或沟通不及时导致上线时间过长或不能正常上线,意在为上线提效。4、上下游系统是否具体支持条件,如OA表单配置是否完成,测试流程是否配置等;上线当天早晨,全部项目组一起参与,明确各自的职责,时间尽量控制在半小时内;确认是普通上线或紧急上线,是否需要催相关领导审批;4)测试是否需要提前准备或开发、产品确认相关事项;5)产品是否需要提前准备相关事项,如权限配置等;5、相关定时任务、相关配置的开关是否启动等;

2024-01-25 19:59:38 325

原创 钉钉互动卡片对接-普通互动卡片接入流程

钉钉互动卡片对接-普通互动卡片接入流程

2024-01-23 19:34:58 701

原创 配置中心原理和选型

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。整体上,Nacos部署简便,整合了注册中心和配置中心,方便管理和监控;这些问题当单体服务,或者公司服务少了,不需要考虑,随着人员的增多,服务的增多,就需要统筹考虑了。eureka,就很好,100% 可以,虽然配置可能不一致,但是修改频率很低,最终是一致就可以。是 cp 的,配置中心要求服务必须是高可用的,网络出现分区也要可以使用。

2024-01-20 14:55:21 839

原创 互联网大厂职场各职级P6/P7和核心能力

晋升要求参考

2024-01-12 10:04:49 687 1

原创 springboot2.3.0.升级 2.6.7

参考:https://blog.csdn.net/m290345792/article/details/123126937。spring 2.6.4 去除了对 ribbon 的支持,需要全部移除 ribbon 组件,使用。该组件,里面引用了 boot1.5.4 ,引用了 ribbon ,需要去除。坑 1: 进入页面 没有发现 注解内容,多方排查 ,需要增加。swager 升级为 3.0 版以上问题。增加 用户名和密码配置。

2024-01-09 17:55:14 416

原创 redis 主从同步和故障切换的几个坑

当我们从节点读取一个数据时,和主节点读取的数据不一致,这是因为主从同步的命令是异步进行的,一般情况下是主从同步延迟导致的,为什么会延迟,主要二个原因1、网络状态不好2、网络没问题,从节点执行耗时命令,之前的命令在排队,没有执行到对于 1,我们要检查网络状态,在硬件网络尽量把主从机器部署在一起,对于 2 ,可以开发一个监控主从复制进度的程序,及时的把主从复制进度大于一定差值的客户端移除,当复制进度赶上时,再增加进去数据不一致是不可避免的,我们尽量缩小不一致的时间,或者重要数据直接读主库我们使用主从集群

2024-01-09 16:43:14 1052

原创 redis原子命令和 lua 脚本解决并发问题

并发操作、原子命令 incr、setex、lua 脚本

2024-01-08 10:51:45 627

原创 idea统一代码格式,插件 Eclipse Code Formatter 和Save Actions

2、配置Eclipse Code Formatter:File → Settings → Other Settings → Eclipse Code Formatter。链接: https://pan.baidu.com/s/1yRpuYKf38flGGi-jwNID2Q?3、配置Save Actions:File → Settings → Other Settings → Save Actions。1、安装idea插件:File → Settings → plugins → 搜索插件并安装重启。

2024-01-03 15:41:12 487

原创 redis 面试问题 (更新中 ing)

redis 面试相关问题

2024-01-03 13:59:15 670

原创 我是如何学习 redis 的

任何知识的学习都有路可循 ,比如 redis。

2023-12-28 15:27:15 774

原创 redis缓存与数据库同步策略

如何保证缓存(Redis)与数据库(MySQL)的一致性?对于热点数据(经常被查询,但不经常被修改的数据),我们一般会将其放入 Redis 缓存中,以增加查询效率,但需要保证从 Redis 中读取的数据与数据库中存储的数据 终是一致的,这就是经典的缓存与数据库同步问题。那么,如何保证缓存(Redis)与数据库(MySQL)的一致性呢?根据缓存是删除还是更新,以及操作顺序大概是可以分为下面四种情况:1.先更新数据库,再更新缓存2.先更新缓存,再更新数据库3.先删除缓存,再更新数据库。

2023-12-27 11:05:50 878

原创 删除数据后, redis 内存占用还是很高怎么办?

active-defrag-cycle-max 75: 表示自动清理过程所用 CPU 时间的比例不高于 75%,一旦超过,就停止清理,从而避免在清理时,大量的内存拷贝阻塞 Redis,导致响应延迟升高。active-defrag-threshold-lower 10: 表示内存碎片空间占操作系统分配给 Redis 的总空间比例达到 10% 时,开始清理.1、最简单粗暴 :重启 redis 实例 ,缺点是导致一部分数据丢失、如果数据量大,aof 日志恢复,时间长,恢复期间无法提供服务。

2023-12-27 10:26:36 514

原创 Java获取客户端IP

X-Real-IP 获取不到,就依次获取Proxy-Client-IP 、WL-Proxy-Client-IP 、HTTP_CLIENT_IP 、 HTTP_X_FORWARDED_FOR。10.100.123.87 这个地址不是我想要的,和运维沟通后,是ha 的地址, 深入沟通后,这个是配置问题,nginx增加了这个配置,ok 了,目前是 cs 服务增加,后续需要单独申请。如果 X-Forwarded-For 获取不到,就去获取X-Real-IP ,X-Real-IP 就是记录请求的客户端真实IP。

2023-12-19 10:43:19 1361

原创 mysql 备份 导入 导出

导出文件小 ,但是导入速度慢。

2023-05-25 16:30:30 1506

原创 jvm 垃圾回收器

然而,对于特定的应用程序和场景,性能表现仍需进行实际测试和评估。需要注意的是,CMS垃圾收集器的并发标记和并发清理阶段与应用程序并发执行,以减少对应用程序暂停时间的影响。需要注意的是,Young GC和Full GC的行为取决于所使用的垃圾收集器类型和其配置参数。在没有显式设置初始堆大小的情况下,JVM可能会根据可用的物理内存来设置一个较大的初始堆大小,以充分利用系统资源。综上所述,合理配置初始堆大小(使用**-Xms**参数)可以避免不必要的资源浪费和性能问题,确保JVM在启动时具有适当的初始堆大小。

2023-05-16 16:36:31 807

原创 gitlab&代码迁移内网

因为项目需要,去江苏银行负责一个项目,需要再工作云平台开发,纯内网环境,整体需要迁移到内网开发。

2023-05-04 14:54:59 706

原创 通过yum获取rpm离线安装包

通过yum获取rpm离线安装包离线安装不可避免需要下载对应安装包,此时可以通过yum命令只下载不安装的rpm安装包。此时就将 nfs-utils 所需的安装下载到当前目录。如果服务器已经安装,出现当前服务器已安装导致不能下载安装包的情况。

2023-03-29 19:06:34 894

原创 JVM(一)——浅析JVM类加载机制及双亲委派机制

将java文件打成jar包或者war包之后,由某个主类的main函数进行启动,需要通过类加载器把主类加载到JVM,jar包里的类不是一次性加载,是在使用到的时候才会加载。由C++实现,嵌入在JVM内部,负责加载JRE的lib目录下的核心类库,比如rt,jar、charsets.jar等由Java代码实现,在JVM启动器实例(sun.misc.Lanucher)初始化时创建,是负责加载JRE的lib目录下ext的jar包由Java代码实现,在JVM启动器实例(sun.misc.Lanucher)初始化时创建,

2023-03-28 19:38:43 380

原创 SpringCloud之注册中心nacos安装

这里的 IP 应该使用你本机分配到的内网 IP 地址。如果你使用的是 mac 或者 linux 系统,可以在命令行使用 ifconfig | grep “inet” 命令来获取本机 IP 地址,下图中红框标出的这行 inet 地址 192.168.1.100 就是本机的 IP 地址。所以现在我们要在 Nacos Server 的 conf 目录下创建 cluster.conf 文件,并将 nacos-cluster1 和 nacos-cluster2 这两台服务器的 IP 地址 + 端口号添加到文件中。

2023-03-27 14:28:41 385

原创 015行为型-职责链模式

责链模式是一种设计模式,其目的是使多个对象能够处理同一请求,但是并不知道下一个处理请求的对象是谁。它能够解耦请求的发送者和接收者之间的直接耦合关系。举个例子,假设你的公司有一个报销流程,需要依次提交给主管、经理和财务部门审核,如果一个人无法审核,那么就需要向下一个人提交审核请求。在这种情况下,职责链模式非常适用。在职责链模式中,每个处理请求的对象都可以尝试处理请求,如果自己无法处理,则将请求传递给下一个对象,直到有一个对象能够处理请求为止。

2023-03-24 18:56:43 358

原创 011代理模式

其中,@Before和@AfterReturning是比较简单的通知,它们分别在UserService的方法执行前和执行后被调用,而@Around是比较灵活和强大的通知,它可以在方法执行前、执行后和执行前后都被调用,并且还可以控制方法的执行过程。代理类继承了目标类,同时也包含了目标类的所有方法,代理类重写了目标类的方法,在重写的方法中加入了自己的扩展逻辑。JDK 动态代理是基于接口来实现的,它要求被代理的目标类必须实现接口,代理类实现了与目标类相同的接口,代理类的方法里面调用了目标类的方法。

2023-03-24 14:26:28 221

原创 009原型模式

原型模式在java中用到的不多,主要在javascript语言中比较常用。

2023-03-21 09:56:06 116

原创 007工厂模式(简单工厂、工厂方法、抽象工厂)

这里简单说一下,比较抽象工厂我们不常使用,比如在代码实例中,规则配置解析,会根据 josn、xml、yaml等分类,创建不同的工厂,但是如果类有2种划分方式,比如我们 按照配置文件格式分类,也按照解析对象是rule配置还是系统配置分类,就会有8种方式,产生类爆炸。工厂方法 在spring、mybatis等源码中基本上都存在 ,项目中也会使用,也是必须掌握的,抽象工厂相对用的比较少,这里就不多说了,感兴趣的可以自行研究。重点是对象的创建是否复杂, 对应创建型的设计模式,主要是用来创建对象的,

2023-03-17 15:17:03 329

原创 006单例模式

构造方法私有,避免外部访问创建对象的安全问题考虑是否支持延迟加载考虑 getinstance的性能是否合适。

2023-03-16 16:39:47 320

原创 004我们都在基于贫血模型开发项目

ddd更像一个多方面的方法论,涉及团队沟通,需求分析,业务建模,设计,编码,业务根据场景选择性应用,追求极致ddd成本很高,对团队成员的能力要求也很高。那充血模型呢,和ddd(领域驱动设计)有关系,他也是包含三层,不同的是 ,他的service层包含service和domin两部分,domain是基于充血模型开发的,包含数据和业务逻辑,service层反而比较单薄, 轻service 重domian。综上所述,对应中小公司,和大公司中的小团队,最有应用价值的还是基于贫血模型开发的mvc模式。

2023-03-15 16:01:40 245

原创 005接口鉴权

一句话:使用进化算法的思想,提出一个MVP(最小可行性产品),逐步迭代改进。拿到这个需求,假设我们不了解接口鉴权,需求又不明确,我会我自己如下问题:1.什么叫接口鉴权?搞清基本概念2.接口鉴权最佳实践是什么?技术调研3.appid和secret key从哪里来?用户自己申请还是我们授权?用户申请是以什么方式申请(网页还是邮件?申请的网页有人做了么?)追问下去。4.appid secretkey存储在什么地方呢?数据存储5.用户如何使用?需要为用户提供接口鉴权使用手册和文档,及示例代码。

2023-03-15 15:23:22 205

ifc 文件模型

一个完整的ifc模型 一个完整的ifc模型 一个完整的ifc模型一个完整的ifc模型一个完整的ifc模型一个完整的ifc模型一个完整的ifc模型一个完整的ifc模型

2017-10-11

空空如也

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

TA关注的人

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