- 博客(9)
- 收藏
- 关注
原创 记一次秒杀项目
最近公司准备做一个秒杀,翻阅了一些资料,通过不断地改进优化,终于设计出了一个比较稳定功能,我们项目中单独开了秒杀的自服务项目,以便于后期扩展,今天跟大家分享一下项目心得:1.基本功能实现最开始做出的1.0版本,话不多说上代码@Overridepublic Object confirm(Integer productId,String accountId) { if (StringUtils.isEmpty(productId)) { return new Ctr...
2021-05-05 20:42:45
167
转载 试试用规则执行器来替代if
业务场景近日在公司领到一个小需求,需要对之前已有的试用用户申请规则进行拓展。我们的场景大概如下所示:if(是否海外用户){returnfalse;}if(刷单用户){returnfalse;}if(未付费用户&&不再服务时段){returnfalse}if(转介绍用户||付费用户||内推用户){returntrue;}按照上述的条件我们可以得出的结论是: 咱们的的主要流程主要是基于 and 或...
2021-05-03 19:14:42
271
转载 如何设计业务系统的可扩展性
对于业务系统本身在架构设计的时候考虑扩展,原来更多的都是谈的 IT 基础技术架构本身的高可用性和高扩展性。而对于业务系统扩展性,简单来说就是如何灵活的应对需求的变化和扩展,如何减少在处理变更或扩展中代码不断产生的坏味道。说到扩展性,一般会谈到数据库扩展性和应用扩展性两个方面的内容,当然很多应用的扩展性最终会反馈到数据库本身的扩展性上面来。而对于应用本身的扩展性本身又包括了数据模型的扩展,接口的扩展,业务规则的扩展,流程的扩展几个方面的内容,下面分别对上面内容进行描述。1.数据库设计的扩展性对于.
2021-01-29 21:44:10
1742
转载 秒杀系统设计思路
秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀。那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出健壮的秒杀系统?本期我们就来探讨一下这个问题:目录一:秒杀系统应该考虑的问题二:秒杀系统的设计和技术方案三:系统架构图四:总结一:秒杀应该考虑哪些问题1.1:超卖问题分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个,但是最终超卖了200,一般来讲秒杀系统的价格都比较低,如果..
2021-01-29 21:13:45
4694
转载 为什么要分库分表
在文章开头先抛几个问题:(1)什么时候才需要分库分表呢?我们的评判标准是什么?(2)一张表存储了多少数据的时候,才需要考虑分库分表?(3)数据增长速度很快,每天产生多少数据,才需要考虑做分库分表?这些问题你都搞清楚了吗?相信看完这篇文章会有答案。为什么要分库分表?首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。数据库出现性能瓶颈,对外表现有几个方面: 大量请求阻塞 在高并发场景下,大量请求都需要操作数据库,导致连接数不够了
2021-01-29 20:39:35
153
转载 缓存与数据库一致性如何解决?先操作数据库,还是缓存?
当我们在做数据库与缓存数据同步时,究竟更新缓存,还是删除缓存,究竟是先操作数据库,还是先操作缓存?本文带大家深度分析数据库与缓存的双写问题,以供大家参考。本篇文章主要内容 数据缓存 为何要使用缓存 哪类数据适合缓存 缓存的利与弊 如何保证缓存和数据库一致性 不更新缓存,而是删除缓存 先操作缓存,还是先操作数据库 非要保证数据库和缓存数据强一致该怎么办 缓存和数据库一致性实战
2021-01-27 23:02:39
564
转载 一次搞懂 Runnable、Callable、Future、FutureTask
一般创建线程只有两种方式,一种是继承Thread,一种是实现Runnable接口。但是这两种创建方式有一个致命的缺点就是没有返回值,没返回值就让人很苦恼了啊。得用共享变量或者其他通信方式才能得到线程处理完的结果,就有点麻烦。还有一般不提倡使用继承Thread来创建线程方式,因为Java只有单继承,不能继承多个。但是Runnable是接口,所以可以让你的实现类同时实现多个接口。而且之后要上线程池,如果之前你是用Runnable来实现的,那就可以直接传入Runnable给线程池进行管理了!在Java1.
2021-01-26 21:42:40
677
转载 CountDownLatch 用法和源码
一文搞懂 CountDownLatch 用法和源码!CountDownLatch是多线程控制的一种工具,它被称为门阀、计数器或者闭锁。这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。下面我们就来一起认识一下 CountDownLatch认识 CountDownLatchCountDownLatch 能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。它相当于是一个计数器,这个计数器的初始值就是线程的数量,每当一个任务完成后,计...
2021-01-25 22:35:46
159
原创 SSL的通讯原理
SSL工作原理简介 SSL(Secure Socket Layer)是一种通信交互协议,由Netscape 公司在1994 年制定,主要目的就是确保在web 服务器和浏览器之间数据传输安全。SSL 协议层是在TCP/IP 层和应用层之间。SSL 协议分成以下几部分:Record Protocal 是SSL 的基础层,SSL 所有的上层操作都是基于这个层次,这层主要负责消息内...
2020-04-22 10:08:50
877
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅