摘要:
前言 网站经常有这样的需求:统计日活用户数,有哪些实现方式呢? 使用 1、用redis的set集合 用户登录以后,把用户id添加到redis的set中,set会自动进行去重,类似于这样: 127.0.0.1:6379> sadd users_2019_06_17 user1 (integer) 1 阅读全文
摘要:
前言 项目中经常会出现重复提交的问题,而接口幂等性也一直以来是做任何项目都要关注的疑难点,网上可以查到非常多的方案,我归纳了几点如下: 1)、数据库层面,对责任字段设置唯一索引,这是最直接有效的方式,不好的地方就是一旦触发就会在服务端抛数据库相关异常; 2)、代码层面,增加业务逻辑判断,先查询一遍若 阅读全文
摘要:
前言 年前放假的几个月内,公司项目发生了两次事故,虽然与我无关,但事故发生后整个团队都受到影响,主管需要给客户写事故报告,客户甚至打电话给公司领导严肃批评,我想经历过这种事的朋友不在少数,但很多刚入行的朋友可能不太清楚其中利害,这里我分享出来希望对大家有所帮助。 事故经过 三个月内一共发生两次生产环 阅读全文
摘要:
前言 Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用方式也很简单,可本人在工作中除此以外还用到第三种更方便灵活的分页方式,在这里一同分享给大家。 使用 主要 阅读全文
摘要:
前言 Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量。但实际上,生产环境的项目中业务状态的定义大部分是由枚举类来完成的,因为更加清晰明确,还能自定义不同的方法来获取对应的业务状态值,十分方便。 以下代码 阅读全文
摘要:
前言 1)、有人一定会问,为什么不用FastDFS?众所周知,FastDFS的原生安装非常复杂,有过安装经验的人大体都明白,虽然可以利用别人做好的docker直接安装,但真正使用过程中也可能出现许多莫名其妙的问题; 2)、还有人会问,为什么不用oss或其他现有云产品?道理很简单,你不能保证自己所在的 阅读全文
摘要:
前言 SpringBoot使用异步线程池: 1、编写线程池配置类,自定义一个线程池; 2、定义一个异步服务; 3、使用@Async注解指向定义的线程池; 这里以我工作中使用过的一个案例来做描述,我所在公司是医疗行业,敏感数据需要上报到某监管平台,所以有一个定时任务在流量较小时(一般是凌晨后)执行上报 阅读全文
摘要:
前言 通过代码片段分别介绍服务端渲染、客户端渲染、对象缓存三种方式的写法。 代码片段仅供参考,具体实现需要根据业务场景自行适配,但思想都是一样。 一、服务端渲染方式 1、接口返回html页面的设置 2、先从缓存中取,有就返回。 3、缓存中没有,就手动渲染。 springboot1.5.x的写法: s 阅读全文
摘要:
前言 首先,要明确一点,高并发场景下系统的瓶颈出现在哪里,其实主要就是数据库,那么就要想办法为数据库做层层防护,减轻数据库的压力。 一、简单图示 我用一个比较简单直观的图来表达大概的处理思路 二、生产环境中秒杀抢购的解决方案 1、前端 1)、动静分离,将静态资源放到第三方云服务中进行CDN加速,减轻 阅读全文
摘要:
前言 本来想把《疯狂工作流讲义 activiti6.0》这本书里面的实例拿过来,但是这本书我看完后,认为里面编写的activiti6的核心API代码片段不是很清晰,有不少需要雕琢的地方才好形成一篇博客。 所以我就把以前看过的黑马activiti5的案例拿过来放到activiti6.0依赖中运行测试, 阅读全文