自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 基于JWT(JSON WEB TOKEN) 生成token及refreshToken实现用户认证及过期处理

基于JWT(JSON WEB TOKEN) 生成token及refreshToken实现用户认证及过期处理【1】 【问题背景】:想实现Session共享方法以及单点登录方案【2】【原理结构解析】:JWT三个部分:Header(头部)、Payload(负载)、Signature(签名) 解析JWT工具网址:https://jwt.io/【参考文献】:(1):JSON WEB ...

2019-08-20 17:45:12 2932 1

原创 采用 Spring Integration Kafka实现高吞吐量的分布式发布订阅消息

采用 Spring Integration Kafka实现高吞吐量的分布式发布订阅消息【服务端配置】:Apache官网下最新的二进制版本:kafka_2.11-2.3.0(内含有zookeeper)(1)修改config/server.properties 里面的值:listeners=PLAINTEXT://HOST_NAME(IP):9092advertised.liste...

2019-07-04 13:09:51 67

原创 Pulsar搭建本地单机环境及测试消息发送与接收

Pulsar搭建本地单机环境及测试消息发送与接收(1)集群环境搭建单机部署官方说明文档:http://pulsar.apache.org/docs/en/standalone/Pulsar-集群环境搭建与安装部署教程:参考:https://www.jianshu.com/p/728d07918f49(本地单机不建议,没耐心做完)(2)docker部署pulsar需要环境(无需...

2019-07-01 18:03:40 1864

原创 请求接口超时前的预警机制

请求接口超时前的预警机制【方案一】:调用接口处理时间过长,前端访问超时解决方案,改造为轮询查询程序执行结果。参考案例:调用接口处理时间过长,前端访问超时解决方案1.后台接口改造为多线程执行,分两步:(1)创建线程执行接口内容;(2)提供接口查询功能改造方法:自动排课功能所在的service类实现Runnable接口,将自动排课的实现逻辑写在run方法中。 编写方法①创建并执...

2019-04-09 15:28:40 595

原创 MySql下大数据量级别(1000万+)优化查询和操作方法

MySql下大数据量级别(1000万+)优化查询和操作方法一、【原则一】:insert into tb (...) values(...),(...)...; 要比insert into tb (...) values (...);insert into tb (...) values (...);...方式批量插入效率高 【原因】:这里第二种SQL执行效率高的主要原因是合并后日志...

2019-03-27 19:41:55 6315 2

原创 分布式架构系统生成全局唯一序列号(研究)

分布式架构系统生成全局唯一序列号(研究)【背景】:分布式架构下,唯一序列号生成是我们在设计一个系统,尤其是数据库使用分库分表的时候常常会遇见的问题。当分成若干个sharding表后,如何能够快速拿到一个唯一序列号,是经常遇到的问题。【特性需求】:1. 全局唯一;2. 支持高并发;3. 能够体现一定属性;4. 高可靠,容错单点故障;5. 高性能【业内解决方案】:(1)利用...

2019-03-08 11:06:46 354

原创 JMS结合ActiveMQ实现消息传递

JMS结合ActiveMQ实现消息传递【定义概念】: 参考文献:java消息服务使用总结(JMS:通过ActiveMQ实现)【JDBC-持久化方式】 (一种ActiveMQ消息持久化机制):修改/conf/activemq.xml配置文件,首先定义一个mysql-ds的MySQL数据源,然后在persistenceAdapter节点中配置jdbcPersistenceAdapter...

2019-01-11 17:30:43 113

原创 监听mq消息(用于监听DTO获取请求参数,结合spring配置)

监听mq消息(用于监听DTO获取请求参数,结合spring配置)【spring-rabbitmq.xml配置】: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/...

2019-01-07 19:46:26 357

原创 Redis分布式锁机制

Redis分布式锁机制【基本机制】:基于redis实现的Java分布式锁主要依赖redis的SETNX()命令和DEL()命令,SETNX相当于上锁(lock),DEL相当于释放锁(unlock)。我们只要实现Lock接口重写lock()和unlock()即可。但是这还不够,安全可靠的分布式锁应该满足满足下面三个条件: l 互斥,不管任何时候,只有一个客户端能持有同一个锁。 ...

2019-01-02 17:09:24 230

原创 lock in share model(共享锁)和 for update(排他锁)事务控制

lock in share model(共享锁)和 for update(排他锁)事务控制【select ... lock in share model(共享锁)】:在符合条件的rows上都加了共享锁,这样的话,其他session可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记录直到你这个加锁的session执行完成(否则直接锁等待超时)。【select ... for ...

2018-11-07 10:04:07 1236

原创 mysql (declare,set,@)解析分析区别

mysql (declare,set,@)解析分析区别1.【局部变量与用户变量的区别】:局部变量:(1):局部变量使用declare语句定义;(2):局部变量只在begin-end语句块之间有效;(3):局部变量中没有“@”符号。用户变量:(1):用户变量是以”@”开头的 ;(2)用户变量使用set语句定义。2.【declare用法】:通过declare定义变量在BEGIN...

2018-11-06 17:33:38 382

原创 String型带小数参数转换为Long型解决方法

String型带小数参数转换为Long型解决方法【目的】: 页面传入金额格式(String型)带小数位,想转换为Long型传入后台处理【解决方案】:避免double型直接强转Long型小数位精度丢失String a = "100.00";Double anew = Double.parseDouble(a);Long b = new Double(anew * 100.0)....

2018-11-06 14:53:25 6201 1

原创 REDIS 批量删除命令说明

REDIS 批量删除命令说明1.访问redis根目录    cd  /usr/local/redis-2.8.192.登录redis:redis-cli -h 127.0.0.1 -p 6379 (其中,127.0.0.1可以写成服务器的IP地址,6379为端口号)3.查看所有key值:keys *4.删除指定索引的值:del key5.清空整个 Redis 服务器的数据:...

2018-11-02 14:05:06 12262

原创 dubbo服务基本搭建部署操作

dubbo服务基本搭建部署操作1. 启动zookeeper:(1)zookeeper下载地址:http://zookeeper.apache.org/;(2)解压并修改配置进入到zookeeper的conf目录,找到zoo_sample.cfg文件将其重命名为zoo.cfg,然后打开该文件,将其中的dataDir和dataLogDir修改如下:dataDir=E:\\t...

2018-10-24 16:03:58 1058

原创 SimpleDateFormat线程安全使用方案

SimpleDateFormat线程安全使用方案 1.问题背景:SimpleDateFormat的隐患:(1)结果值不对:转换的结果值经常会出人意料,和预期不同。(2)内存泄漏: 由于转换的结果值不对,后续的一些操作,如一个循环,累加一天处理一个东西,但是生成的日期如果异常导致很大的话,会让这个循环变成一个类似死循环一样导致系统内存泄漏,频繁触发GC,造成系统不可用。2.产...

2018-10-23 10:03:44 157

原创 前端jsp页面 枚举类 搜索 和 查询结果动态展示 (完全依赖接口 无需任何改动)

前端页面 应对枚举类 搜索  和 查询结果展示 (完全依赖接口 无需任何改动) 【问题现象产生】:后台接口方提供的枚举类型总是变动,导致前端页面如果写死枚举类型,容易展示出问题(搜索和查询展示),具体就是少展示或多展示 【问题应对方案】:采用前端页面直接加载后台接口的枚举类<%@ page import="com....enums.VerifyStatusEnum" %&g...

2018-10-18 13:20:22 621

原创 Spring 循环引用解决方案

Spring 循环引用解决方案一、问题呈现: 上述memberMerchantService 和 memberService 互相引用或者深层注入引用 导致项目启动不了【详细问题描述】:Bean with name ‘xxxService’ has been injected into other beans [xxxService] in its raw versi...

2018-10-08 14:11:48 1569

原创 Spring-Kafka XML配置方法实现生产和消费

Spring-Kafka XML配置方法实现生产和消费1. 生产者配置xmlStep1:producerProperties:设置生产者公产需要的配置;Step2:producerFactory:定义了生产者工厂构造方法;Step3 :kafkaTemplate:定义了使用producerFactory和是否自动刷新,2个参数来构造kafka生产者模板类。xml主要...

2018-09-11 19:16:09 1843 2

原创 Kafka简单入门与Spring结合实践

Kafka简单入门与Spring结合实践一、【安装部署kafka服务器环境(centos7.0)】: 1.【注意】新版的kafka已经内置了一个zookeeper环境2.【安装与运行】:可以在kafka官网 http://kafka.apache.org/downloads下载到最新的kafka安装包,选择下载二进制版本的tgz文件,本章用的是版本2.11_2.0.0,在cen...

2018-08-28 14:59:10 208

原创 RabbitMQ:RabbitMQ + Spring配置文件rabbit标签

RabbitMQ:RabbitMQ + Spring配置文件rabbit标签1.消费者配置文件和启动类: 【Consumer.xml】:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi...

2018-07-30 16:40:06 179

原创 RabbitMQ:RabbitMQ+Sping整合发送异步消息

RabbitMQ:RabbitMQ+Sping整合发送异步消息(一) XML配置方式: 1.【配置文件】:application-async.xml #============== rabbitmq config ====================rabbit.hosts=127.0.0.1rabbit.username=rabbit.password=rabb...

2018-07-27 16:29:16 1076

原创 RabbitMQ:Spring + RabbitMQ整合发送同步消息

RabbitMQ:Spring + RabbitMQ整合发送同步消息注:RabbitMQ系列代码实例github地址(一):XML配置方式   以下实现使用Exchange类型为DirectExchange【模板默认转发器】. routingkey【模板默认选择键】的名称默认为Queue的名称,运行生产者向队列中发送一条消息,再运行消费者消费消息。注意:事先要在RabbitMQ...

2018-07-27 11:09:50 1755

原创 RabbitMQ的四种转换器模式

RabbitMQ的四种转换器模式总结 【参考文献】:(1)、(2)1. 工作队列:(一)Round-robin 转发机制:一次性全部转发,一个一个的发送信息给下一个消费者(consumer),而不考虑每个任务的时长等等,且是一次性分配,并非一个一个分配。平均的每个消费者将会获得相等数量的消息。【发送方(生产者)】:/** * 第一个参数:queue QUEUE_NAME ...

2018-07-25 20:05:03 2414

原创 ElasticSearch + logstash (logstash-input-jdbc) + mysql 同步数据(三)优化各种聚合查询方法

ElasticSearch + logstash (logstash-input-jdbc) + mysql 同步数据(三)优化各种聚合查询方法 数据都同步来自mysql数据: elasticsearch查询结果显示:这里elasticsearch显示出来的createtime 字段的格式和mysql一致处理方式:jdbc.conf:select t.id,t.s...

2018-07-23 17:43:32 421

原创 ElasticSearch + logstash (logstash-input-jdbc) + mysql 同步数据(二)

ElasticSearch + logstash (logstash-input-jdbc) + mysql 同步数据(二)应对上篇 elasticsearch + logstash + mysql同步数据服务实现,本篇介绍如何应用elasticsearch查询同步 mysql数据应用在springWeb中:1.elasticsearch开启的服务的版本是5.6.3 这里对应的引入包...

2018-07-19 17:56:03 171

原创 应对sharding-jdbc结合mybatis实现分库分表功能 分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选

应对sharding-jdbc结合mybatis实现分库分表功能  分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选 (一)windows平台上ElasticSearch5+logstash的logstash-input-jdbc实现mysql数据同步安装操作指南:(1)、(2)其中windows目录展示如下:版本控制:1. 需要jdk:1.8(1....

2018-07-18 15:24:44 1790

原创 jarslink框架 + springMVC

jarslink框架 + springMVC  1.jarslink框架的原理介绍:https://mp.weixin.qq.com/s/AhNIvlKNba8ls9loM1CZ-w?client=tim&ADUIN=252714046&ADSESSION=1521678260&ADTAG=CLIENT.QQ.5531_.0&ADPUBNO=26745jarslin...

2018-05-10 17:13:57 983

原创 前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后;异步提交到后台处理)

前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后;异步提交到后台处理)1.多条数据采用checkBox 携带 //封装数据的对象 var PayObj = { O_NBR:"", P_NBR:"", O_AMOUNT:"" , P...

2018-04-27 13:14:58 5915 6

原创 mysql 查询去除表中(多个条件确定的一个数据)

mysql  查询去除表中(多个条件确定的一个数据)1.原始数据表内容2.sql语句SELECT order_id, order_name, state, CASE WHEN A.order_id = 1 AND A.order_name = '订单1' AND A.state = 1 THEN 'yes' EL

2017-11-24 16:26:51 7044

原创 <pre>后台返回带有 '\n'的字段 显示到前端 直接保留空格

后台返回带有 ''的字段 显示到前端 直接保留空格1.后台返回字段带有''2.前端页面接受 用html 标签保留 换行 和 回车被包围在 pre 元素中的文本通常会保留空格和换行符

2017-11-17 18:02:40 5438

原创 docker 中部署一个springBoot项目

docker 中部署一个springBoot项目(1)介绍 springBoot项目1.项目结构2.pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http

2017-10-27 16:42:11 28661 5

原创 js 动态根据后台接受的Map<String,String>参数 动态增加参数input框

js 动态根据后台接受的Map参数 动态增加参数input框(1)var_row :对应参数条框的个数hiscount : 记录上次弹出的参数条框的个数showDiv : 参数条框上面div的id删除条框的功能函数:(2)js 代码 修改按钮函数monitoringRule.paramsMap : private Map, String> par

2017-10-25 16:50:54 1664

转载 JAVA WEB 将后台传过来的jsonArray 数据转换为list集合

目的:需要将json文本改成jsonobject对象,然后将jsonobject对象转换成jsonArray数组,最后再把数组转换成list集合的问题第一步:先获取jsonobject对象1.JSONObject obj=JSONObject.parseObject(result);//获取jsonobject对象 第二步:把对象转换成jsonArray数组2.JSONArra

2017-08-29 10:44:08 4845

转载 centos 配置 docker

解决 ping 不通 外网步骤:(1)使用 nmcli 命令,查看当前虚拟机的所有网络基本信息:nmcli connection show具体参数说明如下:参数名称说明NAME连网代号,通常与 DEVICE 一样UUID识别码TYPE网卡的类型;8

2017-08-21 16:26:54 282

原创 验证参数注解校验总结

验证参数注解校验总结【参数校验注解的使用规则方法】:空检查@Null 验证对象是否为null@NotNull 验证对象是否不为null, 无法查检长度为0的字符串@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.@NotEmpty 检查约束元素是否为NULL或者是EMPTY.Booelan检查@Ass...

2019-09-04 09:31:10 608

原创 Protocol Buffers实现Java 序列化和反序列化

Protocol Buffers实现Java 序列化和反序列化【1】背景原理:(1):.Google Protocol Buffer 的使用和原理(2):Protocol Buffer技术详解(Java实例)【2】定义数据结构:(1).proto文件 (2)保存文件PersonMsg.proto(注意文件名和里面的message名不要一样)syntax = "proto2...

2019-08-19 14:10:45 300

原创 SpringBoot整合Elastic-job实现

SpringBoot整合Elastic-job实现【基本整合】:原理参考:Elastic-Job原理(1)引用pom依赖:&lt;dependency&gt; &lt;groupId&gt;com.dangdang&lt;/groupId&gt; &lt;artifactId&gt;elastic-job-lite-core&lt;/artifactId&gt; &lt;...

2019-07-19 16:28:43 1644

原创 前端页面局部(全局)刷新方法

前端页面局部(全局)刷新方法JS / Jquery 刷新方法://div的局部刷新&lt;div class="dl"&gt;&lt;/div&gt;$(".dl").load(location.href+" .dl");//全页面的刷新方法window.location.reload()刷新当前页面.parent.location.reload()刷新父亲对象(用...

2019-07-11 15:42:26 2290

原创 (自定义)BitMap在大数据下实现去重

(自定义)BitMap在大数据下实现去重【BitMap】:bitmap是很有用的结构。所谓的bitmap就是用一个bit位来标记某个元素,而数组下标是该元素。【方式一:用byte[]数组计数实现BitMap】: 参考Java中Bitmap的实现package com.caox.utils;import lombok.extern.slf4j.Slf4j;/** * @...

2019-07-10 15:34:31 310

原创 List<T> list对象去重方法总结

List&lt;T&gt; list对象去重方法总结【去重方法总结】:(java8)package com.caox.utils;import com.caox.model.UserInfo;import java.util.*;import java.util.concurrent.ConcurrentHashMap;import java.util.function...

2019-07-08 14:31:51 4766

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