自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王绍桦

不积跬步无以至千里!不积小流无以成江海!

  • 博客(98)
  • 资源 (27)
  • 收藏
  • 关注

原创 RabbitMQ如何保证消息不丢失

业务分析 RabbitMQ消息通常情况很少丢失,但若存在网络波动、服务宕机、程序异常等情况,也会导致消息丢失的情况发生,为了保证我们的系统高可用,必须作出更完善的措施,来保证系统的稳定性。解决方案1.消息持久化 RabbitMQ 的消息默认是存放在内存上面的,如果不进行设置,消息不会持久化到硬盘上面,如果服务重启或者宕机,消息就会丢失。 所以首先要对消息进行持久化,持久化须满足以下三个条件: Exchange 设置持久化 ...

2021-02-08 16:41:28 2977

原创 Mycat实现读写分离

原理Mycat是什么?是一个开源的数据库中间件,在阿里Cobar基础上进行二次开发的,介于数据库与应用之间,进行数据处理与交互的中间件服务,可以简单的理解成数据库代理。 如上为Mycat的高可用架构图,通过keepalived搭建多个Mycat集群,其中writeHost表示主节点,readHost表示从节点,Mycat内部定期对一个dataHost里所有的writeHost与readHost节点发起心跳检测,正常情况下,Mycat会将第一个writeHost作为写节点,所有的DML SQL会发送

2021-01-02 12:27:56 376

原创 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 343

原创 实现商品秒杀总结

业务场景 秒杀业务的特点就是开售瞬间大量用户的涌入,例如双十一抢购,短时间内会有大量用户涌入系统,例如一种只有500件的商品会有几百万用户在同时抢购,而最终抢购成功的用户只有500人,大多数用户都是抢购失败。业务分析 短时间内大量用户的高并发请求常常会压垮系统,而瓶颈就在于数据库,数据库每秒仅能支持几万的并发量,而对于抢购每秒百万千万的并发量根本不足以应对,所以...

2020-01-22 09:29:47 3545 3

原创 实现商品秒杀之——Redis+RabbitMQ消息队列

RabbitMQ消息队列 RabbitMQ是一套开源的消息队列服务软件,实现了高级消息队列协议(AMQP),服务器采用Erlang语言开发,支持多种客户端,如:Python、Ruby、Java、JMS、C#、PHP、JavaScript等。其特点包含:异步处理:通过把消息发送给消息中间件,消息中间件并不立即处理它,而是后续再慢慢处理 应用解耦:单个系统出现故障,消息队列也...

2020-01-21 11:14:24 2794

原创 实现商品秒杀之——Redis Lua脚本

Lua脚本 lua是一个小巧的脚本语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能,lua由标准c编写而成,几乎在所有操作系统和平台上都可以编译、运行,reids2.6版本后内嵌了对lua环境的支持,解决了长久以来不能高效地处理cas(check-and-set)命令的缺点,并且可以通过组合使用多个命令,轻松实现以前很难实现或者不能高效实现的模式。...

2020-01-17 15:28:58 2296 1

原创 实现商品秒杀之——Redis Watch机制

Watch命令 watch命令可以监控一个或多个键,一旦其中有一个键被修改或删除,之后的事务就不会执行。监控一直持续到exec命令,事务中的命令是在exec之后才执行的,所以在multi命令后可以修改watch监控的键值。假设我们通过watch命令在事务执行之前监控了多个Key,这时在watch之后有任何Key的值发生了变化,exec命令执行的事务都将被放弃。在业务中的应用...

2020-01-16 18:28:30 2462

原创 实现商品秒杀之——Redis分布式锁

分布式锁 分布式锁是用来控制分布式系统对共享资源进行有序的操作,在分布式系统中,如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 实现原理包含:互斥性:保证同一时间只有一个客户端可以拿到锁,也就是可以对共享资源进行操作 安全性:只有加锁的服务才能有解锁权限 避...

2020-01-09 11:11:56 726

原创 源码分析Shiro框架的密码加密及校验

前言 我们知道Shiro框架有提供凭证匹配器类HashedCredentialsMatcher来实现密码校验的,在该类中可以自定义加密方式、加密次数、编码规则等//权限管理@Beanpublic SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new...

2019-11-28 11:33:22 1300

原创 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 338

原创 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 670

原创 通过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 2321

原创 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 3096 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 290 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 4402

原创 摇一摇抽奖

情景分析: 商家时常会搞一些抽奖活动,这类活动有个特点就是抽奖用户会在抽奖时间突然大量的涌入系统,这时DB瞬间承受压力倍增,随时可能出现宕机的情况,从而影响整个业务。需求分析: 这类活动通常有以下几个需求:同一用户最多只能抽到一个奖品; 若有多轮抽奖,上轮中奖的用户不能再次中奖;优化思路:既然瓶颈很大一部分是DB导致的,那我们就想办法把请求拦截在上游...

2019-08-13 18:09:38 492

原创 通过JS判断请求来源为移动端还是电脑端

情景分析: 我们时常有需求当访问项目首页时,需要根据请求来源不同显示不同的页面,这时我们就可以首先返回一个公共页面,然后在页面通过JS判断请求来源,再根据来源不同进行请求转发。<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org" ><head><meta charset...

2019-08-09 11:05:34 639

原创 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 209

原创 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 1968 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 953

原创 SpringBoot整合Redis实现Shiro分布式Session共享

前言:我们知道shiro有一套自身的session管理机制,默认的session是存储在运行jvm内存中的,在单应用服务器中可共享session,但系统若为分布式架构,则不同应用服务器之间无法共享session,要实现不同应用服务器之间共享session,则需要重写SessionManager中的SessionDao,把session存储在缓存中,这里我们采用redis来存储,引用shiro-...

2019-06-17 18:02:58 11835 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 32480 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 425

原创 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 20478 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 743

原创 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 15260

原创 通过正则表达式提取字符串信息

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 5643

原创 Java实现excel大数据量导入

情景分析:通常我们通过poi读取excel文件时,若在用户模式下,由于数据量较大、Sheet较多,很容易出现内存溢出的情况 用户模式读取excel的典型代码如下: FileInputStream file = newFileInputStream("c:\\test.xlsx"); Workbook wb=new XSSFWorkbook(fil...

2019-04-15 11:26:10 9300 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 33259 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 4484

原创 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 932

原创 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 16483 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 18156

原创 通过命令打包java项目war包

1.控制台进入项目webapp文件夹下,执行命令jar -cvf center_new.war ./*   2.执行完毕,在该文件夹下生成center_new.war包   

2019-01-18 10:40:27 11971

原创 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 890

原创 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 1458 2

原创 Oracle创建计划任务定时删除30天之前数据

1.创建计划任务需要执行的存储过程CREATE OR REPLACE PROCEDURE "PRO_INTERVAL_DELETE_LOG" ASBEGIN DELETE FROM T_SYS_LOG WHERE CZSJ &lt; SYSDATE-30;END;  备注:SQL为删除30天之前数据,可根据自身业务编写。2.创建计划任务DECLARE DELET...

2019-01-11 16:30:56 4484 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 31223

原创 List集合快速排序及分页

1.List&lt;Map&lt;String,Object&gt;&gt;集合排序 /** * List&lt;Map&lt;String,Object&gt;&gt;集合排序 */ public List&lt;Map&lt;String, Object&gt;&gt; sortList(List&lt;Map&lt;String, Object&gt;&gt;

2018-11-20 10:34:25 1804

原创 配置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 1309

Navicat Premium免安装版

Navicat Premium免安装版

2021-06-11

Mycat-server-1.6.7.1-release-20200209222254-win.tar.gz

该资源为mycat 1.6.7.1 的windows版,可实现数据库的读写分离、以及分库分表等操作

2021-01-02

windows-nginx-rtmp.zip

该资源为Windows系统下的nginx版本,并在nginx.conf中配置rtmp模块,可实现视频的点播与直播功能,通过该工具可在Windows下搭建基于nginx的视频直播和点播系统

2020-04-16

springboot+redis+rebbitmq实现商品秒杀.zip

springboot+redis+rebbitmq实现商品秒杀demo,通过redid缓存减少数据库访问,rebbitmq消息队列异步下单,极大提高了系统的吞吐量,其中也包含redis分布式锁、redis+watch事务、redis+lua等方式实现的适用于小并发量的秒杀解决方案

2020-01-07

pdfjs2.2.228插件

该资源为pdfjs插件,可帮忙开发人员方便的实现pdf在线预览功能,本资源版本号为pdfjs_2.2.228版本

2019-11-13

MongoDB.rar

该资源为MongoDB数据库压缩包,解压到D盘根目录,运行MyStartUp.bat文件启动。(由于我MyStartUp.bat文件中配置的启动路径为D盘根目录,所以需解压到D盘跟目录,若要解压到其他目录,可自行修改MyStartUp.bat配置的路径)

2019-09-09

cropper依赖js、css

cropper裁剪图片所依赖的cropper.css、cropper.js、bootstrap.min.css、bootstrap.bundle.min.js

2018-08-09

jquery-easyui-1.5.5

该资源为jquery-easyui-1.5.5版本,包含easyui插件所依赖的js和css

2018-07-17

bootstrap-3.3.7-dist

该资源为bootstrap-3.3.7版本,内含bootstrap表格等控件所依赖的css和js

2018-07-16

bootstrap-table

bootstrap-table所依赖的bootstrap-table.min.css、bootstrap-table.min.js、bootstrap-table-zh-CN.min.js等文件

2018-07-11

eclipse git插件

该资源为eclipse的git插件,git版本为4.6,适用eclipse版本4.4及以上

2018-04-25

apache-maven-3.5.0

该资源为apache-maven-3.5.0版本,通过创建maven工程统一对jar包进行管理。

2018-04-08

cxf-2.7.18. jar及其依赖包

cxf-2.7.18. jar及其依赖包,可解决客户端调用提示source 1.5已过时问题。

2018-04-04

jedis-2.1.0

Jedis是redis的java版本的客户端实现,通过Jedis的JedisPool整合redis,使用起来比spring-data-redis更加方便

2018-04-03

redis3.2.100_windows

该资源为redis3.2.100版,支持windows 64位操作系统。

2018-04-03

Java通过生成bat文件执行命令提示行

由于 Runtime.getRuntime().exec&#40;cmd /k start ipconfig&#41; 的方式执行完一条命令会直接闪退窗口,无法处理同一窗口执行多条命令等复杂业务,所以采用生成bat文件的方式,再通过运行bat文件执行cmd命令

2018-01-03

Java通过python命令执行DataX任务

Java调用控制台python命令(含传递参数)执行DataX的job任务,mysql向odps同步数据。

2017-12-19

Java获取系统CPU、内存、硬盘等系统信息

通过Java程序获取Windows/Linux系统的CPU信息、内存信息、硬盘信息、网络信息、操作系统信息等。

2017-12-13

java生成properties工具类

1.OutputOrderProperties p = new OutputOrderProperties(); 2.FileInputStream fs = new FileInputStream("文件路径"); 3.p.load(new InputStreamReader(fs, "utf-8")); 4.p.put("jdbc.name", dbConfig.getJdbcName(),"jdbc名称"); 5.p.orderStore(new OutputStreamWriter(os1, "utf-8"), null);

2017-12-12

java生成properties文件工具类

通过程序生成properties文件的工具类,并可根据添加顺序生成,可添加注释,调用步骤如下: 1.OutputOrderProperties p = new OutputOrderProperties(); 2.FileInputStream fs = new FileInputStream("文件路径"); 3.p.load(new InputStreamReader(fs, "utf-8")); 4.p.put("jdbc.name", dbConfig.getJdbcName(),"jdbc名称"); 5.p.orderStore(new OutputStreamWriter(os1, "utf-8"), null);

2017-12-12

达梦数据库驱动jar包(适用所有版本)

达梦数据库驱动程序jar包(适用所有版本),驱动名称:dm.jdbc.driver.DmDriver

2017-12-12

Eclipse properties中文插件

Eclipse properties中文插件,可解决Eclipse/My Eclipse中properties文件的中文乱码问题。

2017-12-12

达梦数据库驱动JAR包

国产达梦数据库驱动程序JAR包下载,备注:driverClassName=“dm.jdbc.driver.DmDriver”

2017-11-02

apache-cxf-2.7.18

通过cxf方式创建的webservice接口所需要的apache-cxf-2.7.18包及其依赖包

2017-10-04

CXF创建Webservice接口与Spring整合实例

通过CXF方式创建带用户认证的Webservice接口(含调用程序)与SSH框架完美整合。

2017-10-04

SSH框架调用多个数据库

SpringMVC+Hibernate+Spring框架搭建的同一项目调用多个数据库。

2017-10-03

axis-1_4.rar

java程序调用webservice接口所需要的axis.jar包及其依赖包

2017-10-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除