保存成功
订阅成功
保存失败,请重试
提交成功
清然

清然

高级工程师
从事java开发工作大约有7年多的时间,对设计模式、多线程高并发、分布式系统设计、JVM调优和sql调优有着丰富的实战经验和深刻的理解,对从事软件行业的每一个人和技术都怀有一颗敬畏的心,我希望把我的实战经验和对软件设计的个人见解分享给大家,我相信只有共同探讨才能进步。...更多
创作文章6

使用 Redis 实现延时任务解决分布式系统的数据一致性问题(两种实现方式)

在我们现有的系统中,往往会调用第三方的服务,比如我们会调用支付宝和微信的服务,可是因为网络的不可靠性或者我们的服务器在某一时刻的不稳定,而有可能导致两方系统数据的不一致,增加了我们和运营、产品和三方公司的沟通成本,并且自己还要苦哈哈的去扒线上的日志,能找到问题自然比较好,但是找不到呢,好办,接着找,直到我们加班加到吐为止,那么,要怎么避免这种问题的发生呢?答案就是——使用延时任务,只要有了这位”兄弟“的加入,以上的问题就能得到很好的解决,并且此方案是通用的,因为虽然我们系统的不一样而出现问题的场景大多却是相似的,所以本场 Chat 您值得拥有。 在本场 Chat 中,会讲到如下内容: - 为什么要用延时任务,用定时器扫描不可以吗?(面试经常会被问到) - 在分布式系统中什么场景下适合用延时任务,会列举两种案例来说明。 - 为什么采用 Redis 实现,用 JDK 自带的不可以吗? - 用主动拉取的方式怎么实现延时任务,并结合多线程,使用生产消费模式进行开启与暂停。 - 采用被动监听的方式如何实现延时任务。 - 用一个互联网金融实战案例检验两种延时任务的实现,并分析他们的优缺点。 温馨提示:需要小伙伴们安装 Redis 服务,Windows 或 Linux 版本都可以,同时使用 Spring Boot 集成我们的开发环境。 适合人群:对分布式系统感兴趣、数据一致性要求很高的 Java 技术人员。
Redis
157 订阅

阿里巴巴 Java 岗位面试与笔试题的总结(本人真实经历)

首先向大家声明,这是本人在疫情期间真实的面试经历,绝不是从某网站上面复制、粘贴的,如有做假,大家可以在 GitChat 平台上面举报我哦。 大厂人人都想进,可是他们的面试、笔试题却把很多同学挡在了外面,门槛高了很多,在这里我想把我面试阿里的经历给大家做一个总结,希望大家有所收获,更希望大家有一天也能进入一线互联网公司。 在本场 Chat 中,会讲到如下内容: - 电话面试的内容总结。 - 视频面试笔试题答案公布与分析,总共两个题,一道算法题、一道多线程。 - 该多线程题目的两种写法,并介绍第三种,选择在面试中最好的是哪一种。 - 视频面试的内容总结。 温馨提示:本人在自如网面试的时候,也遇到了多线程那道笔试题了,所以希望大家掌握哦,因为很重要。 适合人群:正在找工作、打算跳槽、想去大厂或需要面试大厂经验的 Java 技术人员。
79 订阅

多种高并发设计让你的业务耗时飞起来

在实际的开发过程中,我们有很多耗时的业务去处理,比如我们方法内部不但执行了本地的很多业务代码并且还要去远程调用别的服务,导致整个方法响应太慢;又比如数据处理,需要往数据库中插入大量的数据,怎么使用 Java 程序快速批量执行呢?比如我们的 Excel 导出,因数据量太大并且多 Sheet 而出现了网络超时,这种问题该怎么去解决?又比如列表查询太慢了, SQL 调优已经是极限,用程序怎么去加快响应?等等问题都是实际开发中经常遇到的,说到这里,大家应该能想到,没错——那就是用多线程,对于优秀的 Java 技术人员来说,我们要掌握它,只有掌握了它,以上问题的才能迎刃而解,本场 Chat 就是帮大家使用多线程去解决以上的这些问题,同时在不同场景中选择最合适的并发设计,然后举一反三,类似的问题那还会是问题吗?本场 Chat 您值得拥有。 在本场 Chat 中,会讲到如下内容: - 当远程调用服务时,怎么使用多线程技术提升方法的响应速度,文章内容将会用三种程序设计来分别讲解,并分析他们的优缺点。 - 大量的数据怎么使用任务切分批量插入数据库中。 - Excel 导出怎么使用多线程技术提升响应,文章内容将会用两种程序设计分别讲解,并分析他们的优缺点。 - 使用模板设计模式实现并行分页,加快查询列表的响应速度。 - 再次使用模板设计模式编写模拟异步发送消息的实例。 - 操作系统之纤程,在操作系统层面分析纤程与线程的区别,使你在面试过程之中出类拔萃。 - 做最后的总结。 - 温馨提示:以上实例程序都是在 SpringBoot 环境下运行的。 适合人群: 对多线程高并发感兴趣、系统响应上要求提升更快的 Java 技术人员
严选高并发
221 订阅

设计模式思维拓展与实战:观察者模式

“设计模式都是虚的,实现功能才是硬道理,可是这代码看起也太 TM 垃圾了”;“我最害怕读开源代码了,因为我不懂设计模式,所以看不懂谁调的谁”;“我们业务上用不上设计模式,难道真的要学吗”。如果您有类似的想法,那么这篇文章将很适合您阅读,设计模式是前辈们总结出来的设计思想,招式千奇百怪同时也很容易被时代给淘汰,但是思想确能延绵很长时间,作为一位优秀的软件开发人员,还等什么呢,设计模式您值得拥有,本场 Chat 我们将来探讨观察者模式,让大家举一反三理解它背后的原理并熟练运用它,如果有疑问,欢迎请大家留言哦。 在本场 Chat 中,会讲到如下内容: - 观察者模式的使用场景 - 从零开始写一个观察者模式的代码实例 - 当业务增加与减少的时候怎么控制我们的观察者 适合人群: 对架构设计感兴趣的 Java 技术人
免费程序员
97 订阅

使用 Redis 实现代码零侵入、高性能和安全的分布式锁

针对高并发程序的设计而言,分布式锁是不可或缺的功能,特别是用户大量的操作、流量涌进来以后,看似运行稳定的程序却因为没有分布锁而导致物品超卖或一人多个订单的情况发生,而有的同学在系统中可能也使用了分布锁,但是每隔一段时间就会导致死锁或者出现根本拦不住的情况,视分布式锁如无物,关键是问题还偶然性的发生,花了大量的时间看日志、测试,但都一无所获,本场 Chat 将解密分布锁以上发生问题的原因和解决办法,同时又能在设计层让我们的代码实现零侵入使用它,让我们的程序更加的干净、整洁,避免了大量的复制与粘贴,本场 Chat 你值得拥有。 在本场 Chat 中,会讲到如下内容: - 为什么使用分布锁,用 JDK 自带的 Synchronize 与 Lock 方式不行吗 - 发生死锁的原因和解决办法 - 释放锁的最佳实现,避免了释放锁时的“串台” - 代码零侵入实现分布锁的设计,让你的程序更加的干净、整洁 适合人群: 对高并发感兴趣、代码设计上追求极致的 Java 技术人员
Redis
119 订阅

设计模式思维拓展与实战:策略模式集成(Spring 和 SPI)

“我明明学了那么多的设计模式,怎么转头就忘?”;“设计模式那么多,我该用哪一种?”;“设计模式太难了,我还是继续堆积我的代码吧,虽然扩展起来比较麻烦,复制、粘贴嘛”。如果您有类似的困惑,那么这篇文章将很适合您阅读,学会了概念不代表真正的掌握了它,只有实战才能真正的加深我们对设计模式的理解,从而让我们的程序更加的健壮、优美和富有生命力,远离复制、粘贴吧,因为您是一位优秀的软件开发人员,本场 Chat 我们就从策略模式开始,在此过程中,结合本人的实战经验,将会让大家多维度的思考策略模式该如何的运用。 在本场 Chat 中,会讲到如下内容: - 如何在真实的业务场景中使用策略模式 - 在 Spring 现有的框架中将如何集成策略模式 - 如何利用自定义注解和枚举并利用 Gateway 的思想达到代码几乎 0 侵入的业务扩展 - 如何与别的设计方案整合在一起,让你的设计与众不同
设计模式
92 订阅
微信扫描登录