- 博客(29)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 定时任务调度及优化
一、场景描述:XXLJOB每隔三小时定时处理一批数据,这批数据可达到几千万以上,这是kafka监听消息的截图。这种设计存在很大的一个问题,定时任务触发的时候,都是一个很大的峰值,这个时候对服务器资源消耗最大,而且存在很多空闲的时间是没有任务处理的状态。争对这个问题,进行了分析和思考。方案1:使用延时队列,每个处理的请求都放到延时队列里面,时间到了在做消费,这种情况不需要使用定时任务,就可以合理的分摊系统资源,提升调度能力,但是kafka天生不支持延时队列的场景,不像其他MQ中间件可以配置..
2021-11-24 20:02:24 2553
原创 ES集群部署
一、环境准备1.jdk1.82.centos7.43.ES6.54.ES-head插件es包相关下载https://pan.baidu.com/s/1mz8eKMvgBig9JwnOi21-tAiq3q二、开始部署1.将es压缩包上传到centos服务器上,这里我用虚拟机启动了两台服务器2.mkdir /itcast/es-cluster,解压后的文件如图所示3.先用useradd创建用户,因为root用户不能启动es服务。进入bin目录,./elasti
2020-07-19 15:29:01 5727
原创 商城系统开发从0到1(集成SpringSecurity,实现自己的权限控制)
商城系统开发从0到1(集成SpringSecurity,实现自己的权限控制)敬请期待
2020-04-30 23:17:02 736
原创 AutoJs--新手入门篇,安装开发好的活动脚本和使用
想要获取脚本的话可以加入群进行获取。安装淘宝活动脚本后,请先打开无障碍者模式打开软件看到软件首页该版本会随着淘宝的更新而更新,欢迎有兴趣的小伙伴入群交流。目前支持抢购入口:购物车 和收藏夹(部分商品无法添加购物车)合理设置提前刷新时间,设置抢购时间,软件会定时进行抢购,输入支付密码,在支付的时候会自动输入密码(将指纹支付关闭),仅用于自动支付,请大家放心使用。整个...
2020-03-08 20:58:35 2734 1
原创 AutoJs--新手入门篇,打包插件生成APK
下载对应版本的AutoJs的插件,版本不对应部分手机可能无法成功安装,群里面有最新插件可以下载安装将电脑端开发好的JS文件发送到手机的微信端。打开AutoJs,点击右下角的+,选择导入在导入文件中找到 ‘tencent’的文件夹,在里面找到名称为‘MicroMsg’文件夹,找到名称为‘Download’的文件夹,你传到手机的文件就是在保存在这里。然后点击Js文件右边的三个点按钮...
2020-03-08 20:47:15 33570
原创 AutoJs--新手入门篇,安装软件并运行软件
AutoJs是一个基于JavaScript的脚本语言,相对的学习成本比较低,只要有Js基础的话,入门是很快的。详细教程可查看官方Api教程。和按键精灵等相比,AutoJs无需Root权限,只需要将手机设置里面的无障碍模式开启,便可以畅快的开发了!首先需要安装AutoJs4.1.1和打包插件。可以加入Q群进行下载资源文件电脑端安装VSCode,Q群有资源可以下载。并安装图中...
2020-03-07 23:01:22 6850
原创 商城系统开发从0到1(集成Lucene搜索商品信息)
首先说明为什么现在还要用Lucene,用ES他不香吗!因为没有服务器资源,所以无法单独部署ES服务,只能先使用Lucene顶着先,因为ES是基于Lucene的,且是分布式的,后期有服务器后还是要换为ES,现在就让我们先用案例集成Lucene吧。Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个...
2019-10-28 11:07:30 373
原创 数据库隔离级别
一、隔离级别的种类与分别可以解决的问题:事务的隔离级别分为4个,即 读未提交(read uncommitted)、读已提交(read committed)、可重复读(Repeatable read)、可串行化(Serializable)oracle默认的隔离级别为 读已提交。mysql的默认隔离级别为 可重复读。简单来说:脏读即为session A读取到了sessi...
2019-10-15 14:11:53 344
转载 Java 13 来袭,最新最全新特性解读
2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布。目前,JDK官网上已经可以看到JDK 13的进展,最新版的JDK 13将于2019年9月17日发布。目前,JDK13处于Release-Candidate Phase(发布候选阶段),将于9月17日正式发布。目前该版本包含的特性已经全部固定,主要包含以下五个:...
2019-09-30 10:53:08 119
原创 商城系统开发从0到1(JetCache缓存商品信息)
JetCacheJetCache是由阿里巴巴开源的通用缓存访问框架,如果你对Spring Cache很熟悉的话,请一定花一点时间了解一下JetCache,它更好用。JetCache提供的核心能力包括:提供统一的,类似jsr-107风格的API访问Cache,并可通过注解创建并配置Cache实例通过注解实现声明式的方法缓存,支持TTL和两级缓存分布式缓存自动刷新,分布式锁 (2.2+...
2019-09-16 16:11:47 415
原创 为什么要重写equals和hashcode
package com.macro.mall.component;import java.util.*;/** * 参与equals函数的字段,也必须都参与hashCode 的计算。 */public class Test { private int num; private String data; public Test(i...
2019-09-01 21:03:14 139
转载 乐观锁和悲观锁
一、乐观锁总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,在读取数据的同时也会读取vers...
2019-09-01 20:49:01 156
原创 商城系统开发从0到1(Rabbitmq延迟队列)
Rabbitmq实时队列很多人都用过,本文就讲解下延时队列。延时队列的使用场景有很多,一般用来做延时的消息推送,比如订单取消前的通知,还有消息通知。首先定义消息通知队列枚举类型@Getterpublic enum QueueEnum { /** * 消息推送队列 */ QUEUE_PUSH_MESSGAE("mall.pushMessgae...
2019-08-13 18:04:30 320
原创 商城系统开发从0到1(Redis实现拦截重复请求)
private boolean limitRequest(String id) { boolean result = false; String key = String.format("id:%s", id); BoundZSetOperations<String, String> zSetOperations = stringRe...
2019-08-13 18:03:45 317
原创 商城系统开发从0到1(MapStruct属性复制)
说到Java的属性复制,大家很快就想到了 BeanUtils.copyProperties();,其中Apache下的属性复制,其性能很慢,用到了反射的机制,还记录到了很多日志,Spring下的属性复制比Apache快很多,但是毕竟使用了反射,性能还是比较慢,这里推荐大家使用MapStruct属性复制。 <dependency> <gr...
2019-08-13 17:36:57 204
原创 商城系统开发从0到1(解决事务和锁引起的问题)
开发商城系统的过程中遇到了个问题,在这里记录一下。说到商品,那就有库存的问题,那么如何解决在分布式系统下商品的库存问题呢,那肯定要考虑到分布式锁了,一开始想自己实现Redis分布式锁,后面看到网上有开源的klock 码云地址:https://gitee.com/kekingcn/spring-boot-klock-starter,上手非常的简单。在这里就不多做介绍了,那接下来问题来了,附...
2019-08-13 16:34:56 353
原创 商城系统开发从0到1(架构初期设计)
架构初期设计如上所示,也是参考了Githup上某商场系统的架构,不过本系统会在此架构基础上进行修改,已满足本系统的业务需求。目前已使用到的框架技术。基础框架:Springboot缓存:redis队列:Rabbitmq安全框架:SpringSecurity搜索引擎:ElasticsearchToken :Jwt注册中心:Eureka...
2019-06-26 11:59:26 559
原创 商城系统开发从0到1(介绍篇)
首先做下自我介绍,本人目前工作经验一年,从事Java开发,很高兴公司给了一次机会可以从0到1开始开发一套完整的电商系统,但是以我目前的经验来说,肯定会遇到一系列的问题。本博客会连载,持续更新,直到项目开发完成,目前已规划到2021年。本博客不会涉及到公司相关隐私,只会把自己开发过程中遇到的难题,和如何解决的,和一个整体的架构设计和构想会在博客中记录下来,希望大家关注下。20190626-2...
2019-06-26 11:48:13 731
原创 Java线程池实操,带你直接上手使用
现在讲解Java线程池的博客很多,本文不再细说理论,直接教大家使用,jdk环境1.8首先直接在想使用多线程池的类中实例以下方法,无需添加任何依赖private final static ExecutorService executors = new ThreadPoolExecutor(4, 40, 300L, TimeUnit.SECONDS, n...
2019-06-18 14:57:21 331
原创 Java通过反射给通用方法赋值
User user =new User();//方法调用getObj(user ,date,user,userId);//通用对象赋值方法private <T> T getObj(T t,Date date,String user) throws Exception { Class clazz = t.getClass(); clazz.ge...
2019-06-18 14:47:42 1293
原创 CompletableFuture实操,提升并发处理能力
在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合 CompletableFuture 的方法。 它可能代表一个明确完成的Future,也有可能代表一个完成阶段( CompletionStage ),它支持在计算完成以后触发一些函数或执行某些动作...
2019-06-18 14:39:22 3476 1
原创 Springboot文件上传--资源映射
关于Java的文件上传有很多种方式,可以直接上传本地,或者上传七牛云,或者搭个HDFS文件系统,但是后者相对麻烦。本文采用的方式是使用springboot进行文件上传,并进行资源映射,可直接通过本地服务访问存储本地的图片。application.yml文件中,配置统一的存储文件路径。包括本地路径和返回给前端的路径ueditor: config: config.json un...
2019-06-18 12:00:59 850
原创 Js将多个数组中重复的元素提取出来
Js将多个数组中重复的元素提取出来let dataArr = [ [ { id:0, name:'A' }, { id:1, name:'S' }, { id:2, name:'D' } ], [ { id:12, name:'A...
2019-01-21 15:16:12 4827
原创 前端传大量数据到后台进行导出
各位小伙伴有没有遇到过这种需求,前端有大量的数据需要传到后台,在将这些数据导出成excel。常用的导出都是前端通过超链接的请求方式,但因为超链接是get请求,无法传大量的数据。如果你想到了用ajax,那么很抱歉,因为ajax不支持流形式的导出,所以是无法导出excel的。下面写出我的解决方案,通过form表单的形式进行导出。HTML代码:通过提交表单,将数据传到后台,注意要使用ifra...
2019-01-21 15:06:41 3688
投票活动系统web端和微信端
2018-04-06
Struts2 怎么把json显示到前台?有奖问答!
2017-04-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人