- 博客(98)
- 资源 (27)
- 收藏
- 关注
原创 RabbitMQ如何保证消息不丢失
业务分析 RabbitMQ消息通常情况很少丢失,但若存在网络波动、服务宕机、程序异常等情况,也会导致消息丢失的情况发生,为了保证我们的系统高可用,必须作出更完善的措施,来保证系统的稳定性。解决方案1.消息持久化 RabbitMQ 的消息默认是存放在内存上面的,如果不进行设置,消息不会持久化到硬盘上面,如果服务重启或者宕机,消息就会丢失。 所以首先要对消息进行持久化,持久化须满足以下三个条件: Exchange 设置持久化 ...
2021-02-08 16:41:28 2953
原创 Mycat实现读写分离
原理Mycat是什么?是一个开源的数据库中间件,在阿里Cobar基础上进行二次开发的,介于数据库与应用之间,进行数据处理与交互的中间件服务,可以简单的理解成数据库代理。 如上为Mycat的高可用架构图,通过keepalived搭建多个Mycat集群,其中writeHost表示主节点,readHost表示从节点,Mycat内部定期对一个dataHost里所有的writeHost与readHost节点发起心跳检测,正常情况下,Mycat会将第一个writeHost作为写节点,所有的DML SQL会发送
2021-01-02 12:27:56 364
原创 Mysql实现主从同步
master主服务器的配置1.在mysql的my.ini文件中添加以下配置:# 主服务器server-id=1 #[必须]服务器唯一IDlog-bin=mysql-bin #[必须]启用二进制日志# 同步的数据库,除此之外别的不同步(和下面binlog-ignore-db二选一)#binlog_do_db=test#不同步数据库,除此之外都同步#binlog-ignore-db = information_schema #binlog-ignore-db = mysql2.创建复
2020-12-06 23:12:11 328
原创 实现商品秒杀总结
业务场景 秒杀业务的特点就是开售瞬间大量用户的涌入,例如双十一抢购,短时间内会有大量用户涌入系统,例如一种只有500件的商品会有几百万用户在同时抢购,而最终抢购成功的用户只有500人,大多数用户都是抢购失败。业务分析 短时间内大量用户的高并发请求常常会压垮系统,而瓶颈就在于数据库,数据库每秒仅能支持几万的并发量,而对于抢购每秒百万千万的并发量根本不足以应对,所以...
2020-01-22 09:29:47 3522 3
原创 实现商品秒杀之——Redis+RabbitMQ消息队列
RabbitMQ消息队列 RabbitMQ是一套开源的消息队列服务软件,实现了高级消息队列协议(AMQP),服务器采用Erlang语言开发,支持多种客户端,如:Python、Ruby、Java、JMS、C#、PHP、JavaScript等。其特点包含:异步处理:通过把消息发送给消息中间件,消息中间件并不立即处理它,而是后续再慢慢处理 应用解耦:单个系统出现故障,消息队列也...
2020-01-21 11:14:24 2760
原创 实现商品秒杀之——Redis Lua脚本
Lua脚本 lua是一个小巧的脚本语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能,lua由标准c编写而成,几乎在所有操作系统和平台上都可以编译、运行,reids2.6版本后内嵌了对lua环境的支持,解决了长久以来不能高效地处理cas(check-and-set)命令的缺点,并且可以通过组合使用多个命令,轻松实现以前很难实现或者不能高效实现的模式。...
2020-01-17 15:28:58 2287 1
原创 实现商品秒杀之——Redis Watch机制
Watch命令 watch命令可以监控一个或多个键,一旦其中有一个键被修改或删除,之后的事务就不会执行。监控一直持续到exec命令,事务中的命令是在exec之后才执行的,所以在multi命令后可以修改watch监控的键值。假设我们通过watch命令在事务执行之前监控了多个Key,这时在watch之后有任何Key的值发生了变化,exec命令执行的事务都将被放弃。在业务中的应用...
2020-01-16 18:28:30 2449
原创 实现商品秒杀之——Redis分布式锁
分布式锁 分布式锁是用来控制分布式系统对共享资源进行有序的操作,在分布式系统中,如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 实现原理包含:互斥性:保证同一时间只有一个客户端可以拿到锁,也就是可以对共享资源进行操作 安全性:只有加锁的服务才能有解锁权限 避...
2020-01-09 11:11:56 723
原创 源码分析Shiro框架的密码加密及校验
前言 我们知道Shiro框架有提供凭证匹配器类HashedCredentialsMatcher来实现密码校验的,在该类中可以自定义加密方式、加密次数、编码规则等//权限管理@Beanpublic SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new...
2019-11-28 11:33:22 1286
原创 SpringBoot通过Jedis整合Redis
1.pom.xml添加Jedis依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId></dependency>2.application.properties添加Redis配置# Redis...
2019-11-27 10:44:47 332
原创 SpringBoot整合RabbitMQ消息队列
1.RabbitMQ简介 RabbitMQ是一套开源的消息队列服务软件,实现了高级消息队列协议(AMQP),服务器采用Erlang语言开发,支持多种客户端,如:Python、Ruby、Java、JMS、C#、PHP、JavaScript等。2.Erlang安装 (1)安装RabbitMQ需要先安装Erlang语言开发包,官网下载地址:https://www.erlang.org...
2019-11-26 11:24:30 655
原创 通过PDF.js实现PDF文件在线预览
1.官网下载PDF.js 我的资源地址:https://download.csdn.net/download/rexueqingchun/119741192.下载解压后放到项目资源文件目录中 如上图所示,Springboot项目可直接放在static目录下3.预览PDF文件 由于PDF插件的模版文件为viewer.html,所以预览请求的固定地址为http://...
2019-11-13 11:07:20 2303
原创 SpringBoot配置MongoDB实现文件存储
1.官网下载MongoDB,下载完运行mongod服务 我的资源地址:https://download.csdn.net/download/rexueqingchun/117044182.application.properties配置MongoDB连接#mongodbspring.data.mongodb.uri=mongodb://localhost:27017/dhyjt...
2019-09-09 17:45:58 3083 2
原创 SpringBoot配置多数据源
1.application.properties添加两个数据源连接参数#数据源1spring.datasource.db1.driver-class-name=oracle.jdbc.driver.OracleDriverspring.datasource.db1.jdbc-url=jdbc:oracle:thin:@192.168.100.1:1521:orclspring.data...
2019-09-04 11:30:25 281 1
原创 Java读取FTP上TXT文件内容
1.pom.xml添加连接FTP依赖包<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.1</version></dependency>2....
2019-08-28 16:51:53 4383
原创 摇一摇抽奖
情景分析: 商家时常会搞一些抽奖活动,这类活动有个特点就是抽奖用户会在抽奖时间突然大量的涌入系统,这时DB瞬间承受压力倍增,随时可能出现宕机的情况,从而影响整个业务。需求分析: 这类活动通常有以下几个需求:同一用户最多只能抽到一个奖品; 若有多轮抽奖,上轮中奖的用户不能再次中奖;优化思路:既然瓶颈很大一部分是DB导致的,那我们就想办法把请求拦截在上游...
2019-08-13 18:09:38 488
原创 通过JS判断请求来源为移动端还是电脑端
情景分析: 我们时常有需求当访问项目首页时,需要根据请求来源不同显示不同的页面,这时我们就可以首先返回一个公共页面,然后在页面通过JS判断请求来源,再根据来源不同进行请求转发。<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org" ><head><meta charset...
2019-08-09 11:05:34 630
原创 SpringBoot整合Redis缓存
1.pom.xml添加redis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.appli...
2019-07-30 17:31:06 206
原创 SpringBoot整合WebSocket实现群聊和私聊
1.pom.xml添加websocket依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency>2.创建...
2019-07-29 14:27:11 1957 6
原创 SpringBoot整合Ehcache缓存
1.pom.xml配置依赖包<!-- ehcache依赖 --><dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.8.3</version>...
2019-06-24 11:22:45 928
原创 SpringBoot整合Redis实现Shiro分布式Session共享
前言:我们知道shiro有一套自身的session管理机制,默认的session是存储在运行jvm内存中的,在单应用服务器中可共享session,但系统若为分布式架构,则不同应用服务器之间无法共享session,要实现不同应用服务器之间共享session,则需要重写SessionManager中的SessionDao,把session存储在缓存中,这里我们采用redis来存储,引用shiro-...
2019-06-17 18:02:58 11811 28
原创 EasyExcel实现导入excel
1.pom.xml配置依赖包<!-- xls格式excel依赖包 --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version>...
2019-06-13 16:23:57 32437 4
原创 Java通过FreeMarker生成Word文件
1.pom.xml配置freemarker依赖包<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version></depen...
2019-04-26 18:12:25 421
原创 Java实现excel大数据量导出
1.pom.xml配置依赖包<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version></dependency><depend...
2019-04-25 10:25:57 20423 13
原创 SpringBoot整合CXF发布WebService
1.pom.xml配置cxf依赖包<!-- cxf框架依赖 --><dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.12&...
2019-04-23 17:14:21 742
原创 Oracle删除重复数据的几种方式
包含空字段的数据去重:DELETE FROM TABLE_NAME WHERE ROWID NOT IN(SELECT MIN(ROWID) FROM TABLE_NAME GROUP BY COLUMN1,COLUMN2)不包含空字段的数据去重:DELETE FROM TABLE_NAME TWHERE (T.COLUMN1,T.COLUMN2) IN ( SELECT ...
2019-04-23 10:29:14 15204
原创 通过正则表达式提取字符串信息
import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegExtract { //匹配电话号码 private static final String regEx_phone = "(...
2019-04-22 18:18:37 5631
原创 Java实现excel大数据量导入
情景分析:通常我们通过poi读取excel文件时,若在用户模式下,由于数据量较大、Sheet较多,很容易出现内存溢出的情况 用户模式读取excel的典型代码如下: FileInputStream file = newFileInputStream("c:\\test.xlsx"); Workbook wb=new XSSFWorkbook(fil...
2019-04-15 11:26:10 9241 4
原创 Java实现通过证书访问Https请求
创建证书管理器类import java.io.FileInputStream;import java.security.KeyStore;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.TrustManager;...
2019-01-29 11:07:39 33153 13
原创 Java实现免证书访问Https请求
创建证书管理器类import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.X509TrustManager;/** * 证书信任管理器(用于https请求) * */public class MyX509Tr...
2019-01-29 10:51:16 4446
原创 Java实现RSA算法加解密
RSA加解密工具类import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.P...
2019-01-24 10:04:32 925
原创 Java实现AES-128-CBC算法加解密
AES加解密工具类import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List...
2019-01-23 10:56:35 16373 1
原创 JSON及XML字符串与Map、List的互相转换
import java.util.List;import java.util.Map;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;public class JsonUtil { public static...
2019-01-23 10:12:32 18140
原创 通过命令打包java项目war包
1.控制台进入项目webapp文件夹下,执行命令jar -cvf center_new.war ./* 2.执行完毕,在该文件夹下生成center_new.war包
2019-01-18 10:40:27 11894
原创 Windows7安装使用Docker发布Spring boot项目详细
1.官网下载Docker的Windows版本安装包 由于官网默认的Docker是支持Windows10系统的,要支持Windows7系统需要下载Docker Toolbox 下载地址:https://docs.docker.com/toolbox/toolbox_install_windows/ 打开下载地址,点击Get Docker Toolbox for Windows...
2019-01-16 18:16:20 881
原创 Mybatis通过拦截器打印并保存执行SQL
Web项目1.创建拦截器类import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Locale;import java.util.Map;...
2019-01-11 17:29:44 1444 2
原创 Oracle创建计划任务定时删除30天之前数据
1.创建计划任务需要执行的存储过程CREATE OR REPLACE PROCEDURE "PRO_INTERVAL_DELETE_LOG" ASBEGIN DELETE FROM T_SYS_LOG WHERE CZSJ < SYSDATE-30;END; 备注:SQL为删除30天之前数据,可根据自身业务编写。2.创建计划任务DECLARE DELET...
2019-01-11 16:30:56 4436 12
原创 Oracle通过执行计划查看查询语句是否使用索引
1.生成执行计划explain plan forselect * from t_call_records where t_bjhm='123456' 备注:explain plan for后面为要生成执行计划的查询语句2.查看执行计划结果select * from table(dbms_xplan.display) 如上图所示,TABLE ACCESS FUL...
2018-11-27 12:46:44 30993
原创 List集合快速排序及分页
1.List<Map<String,Object>>集合排序 /** * List<Map<String,Object>>集合排序 */ public List<Map<String, Object>> sortList(List<Map<String, Object>>
2018-11-20 10:34:25 1788
原创 配置Tomcat支持https协议
1.通过JDK自带的keytool生成证书keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/tomcat.keystore -validity 36500 备注:在命令提示符直接输入keytool命令生成证书,需提前配置JDK环境变量,validity为证书有效期,单位天2.把生成的tomcat.keystore文件...
2018-10-30 11:07:51 1291
Mycat-server-1.6.7.1-release-20200209222254-win.tar.gz
2021-01-02
windows-nginx-rtmp.zip
2020-04-16
springboot+redis+rebbitmq实现商品秒杀.zip
2020-01-07
MongoDB.rar
2019-09-09
cropper依赖js、css
2018-08-09
bootstrap-table
2018-07-11
Java通过生成bat文件执行命令提示行
2018-01-03
java生成properties工具类
2017-12-12
java生成properties文件工具类
2017-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人