自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 API接口防止参数篡改和重放攻击

 API重放攻击(Replay Attacks)又称为重播攻击、回放攻击。它的原理就是把之前窃听到的数据原封不动的重新发送给接收方。HTTPS并不能防止这种攻击,虽然传输的数据都是经过加密的,窃听者无法得到数据的准确定义,但是可以从请求的接收方地址分析这些数据的作用。比如用户登录请求时攻击者虽然无法窃听密码,但是却可以截获加密后的口令然后将其重放,从而利用这种方式进行有效的攻击。所谓重放攻击就是攻击者发送一个目的主机已经接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,重放攻击是计算机世界黑客常用

2021-01-15 16:25:42 1423

原创 线程池技术分享

本篇文章将从三个部分来给大家介绍线程以及线程池;线程线程与进程区别&由来线程状态如何使用HOW线程池what & why& how何谓池化?JAVA中的线程池介绍线程池 优雅重启和优雅关闭1.1.1 区别进程是资源分配的最小单位,线程是cpu执行的最小单位,线程是进程的一个实体,包含在进程之中;1.1.2 进程的由来从操作系统的发展了解进程:1:计算发明之前:计算机发明早起主要是为了解决大量的数学计算问题,程序员将对应于程序和数据的已穿孔的纸带(或

2020-12-16 10:24:57 208

转载 优雅地处理重复请求(并发请求)——附Java实现

对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是:黑客拦截了请求,重放前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。网关重发….本文讨论的是如果在服务端优雅地统一处理这种情况,如何禁止用户重复点击等客户端操作不在本文的讨论范畴。利用唯一请求编号去重你可能会想到的是,只要请求有唯一的请求编号,那么就能借用Redis

2020-11-25 09:12:26 1184 1

转载 kafka 丢消息的处理

转载ref:https://blog.dogchao.cn/?p=305 Kafka丢消息的处理 一个示意图Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量刷盘的做法。即,按照一定的消息量,和时间间隔进行刷盘。这种机制也是由于linux操...

2020-11-17 14:09:01 475

转载 Redis 分布式锁的正确实现方式(Java版)

前言转载文章:https://xiaozhuanlan.com/topic/4672859130分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如...

2020-03-17 17:11:44 108

转载 Spring boot 优势

一、什么是SpringBoot在使用传统的Spring去做Java EE(Java Enterprise Edition)开发中,大量的 XML 文件存在于项目之中,导致JavaEE项目变得...

2020-03-17 15:58:26 611

原创 阿里云服务器开放指定端口

https://yq.aliyun.com/articles/701181?spm=a2c4e.11153940.0.0.465214c3lZ4GTP&type=2

2019-11-13 13:30:43 421

转载 mysql 死锁分析

原创 【mysql】show engine innodb status 解读 ...

2019-10-24 13:49:41 507

原创 设计模式——Builder模式

package com.example.pro.test;import lombok.Data;/** * @Author: liutengyuan * @Date: 2019/8/23 13:06 * @Copyright 本内容仅限于杭州嘿豆科技有限公司内部传阅,禁止外泄以及用于其他的商业目的 */@Datapublic class Person { private...

2019-08-23 13:31:50 125

原创 接口幂等性设计与解决方案

参考文章:泥瓦匠:https://mp.weixin.qq.com/s/yeYqeQMzI6hpkNPh9TWJWQJava基基:https://mp.weixin.qq.com/s/TwHsL6yt-Qd8J0_JKAmBwwhttps://mp.weixin.qq.com/s/XU3mBqGOaqFy_XmGSO2eQghttps://blog.csdn.net/u011635492/...

2019-07-22 11:58:55 869

原创 自定义类加载器

关于ClassLoader的javaDoc 文档描述:/*** A class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class,* a class loader sh...

2019-05-18 06:36:41 110

原创 redis 主从模式的配置

redis单例提供了一种数据缓存方式和丰富的数据操作api,但是将数据完全存储在单个redis中主要存在两个问题:数据备份和数据体量较大造成的性能降低。这里redis的主从模式为这两个问题提供了一个较好的解决方案。主从模式指的是使用一个redis实例作为主机,其余的实例作为备份机。主机和从机的数据完全一致,主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取,也就是说,客户端...

2019-03-30 12:57:23 1656 1

原创 CAS算法实现机制参考文章

CPU指令级别:https://www.jianshu.com/p/21be831e851e借鉴:https://blog.csdn.net/v123411739/article/details/79561458

2019-03-18 17:44:57 126

原创 SQL 求出用户任务数,通过率

用户表:任务表:用户任务表:SQL:SELECT user_id,count(task_id),sum(if(status= ‘Y’,1,0))from user_task GROUP BY user_id;

2019-03-14 21:28:13 553

原创 linux curl 是什么

百度百科:cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开...

2019-01-29 16:32:46 1240

转载 Linux Centos7 下防火墙的常用命令

1、firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld开机禁用 : systemctl disable firewalld开机启用 : systemctl enable firewalld2.systemctl是CentOS7的...

2019-01-29 16:29:32 131

原创 微服务下的Docker介绍和使用场景

简介:Docker介绍和使用场景 1、什么是Dokcer 百科:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口; 使用go语言编写,在LCX(linux容器)基础上进行的封装 简单来说: 1)就是可以快速部署启动应用 2)实现虚...

2019-01-29 16:25:59 202

原创 使用Docker部署Nginx服务器

一:步骤 1、获取镜像 docker run (首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动) docker search nignx 2、列举 docker images 3、拉取 docker pull nignx (没指定tag,默认拉取最新的) 3、启动 docker run -d --name "xdclass_nginx" -...

2019-01-29 16:00:35 171

原创 利用Spring中自带的观察者模式,监听去做一些类似消息推送,短信通知等功能

情景:利用jpush推送给客户端订单确认收货时的通知:一:创建要被监听的事件对象/** * @describe: 订单确认收货事件 * author: liutengyuan * @date: Created in 2019/1/18 18:23 **/public class OrderConfirmReceieveEvent extends ApplicationEvent {...

2019-01-21 14:18:22 1839 2

原创 IOC设计原则和核心思想

浏览了很多描述IOC的文章,然而真正IOC解决了什么痛点,大家知道?面试官经常会问道IOC是什么?可能大家一想到的就是英文全拼(Spring 中的IOC英文意思是 Invoke Of Convert (控制反转))而脱口答道 --控制反转,面试官接着问道 控制反转是什么,可能大家会说IOC是一个容器,但是真正的IOC是用来干什么的,以及这种设计思想的出现是在什么场景下演化来的,我想很少人能说的出来...

2019-01-04 17:17:42 1725

原创 mariadb 安装之后的授权问题

mariadb 版本:查看Mysql 版本的方法:http://www.cnblogs.com/duanxz/p/5244634.html正确授权的方式:create database test;grant all privileges on test.* to liutengyuan@"%" identified by ‘123456’;flush privileges;//@"%"...

2019-01-04 14:47:22 1107

原创 Linux centos 7 下载安装mysq

文章目录1,安装。2,启动。3,初始化数据库这里以centos 7为基准。1,安装。yum -y install mariadb mariadb-server2,启动。systemctl enable mariadbsystemctl restart mariadb3,初始化数据库mysql_secure_installation[root@localhost ~]$mys...

2018-12-20 14:52:27 239

原创 JVM总结二_类的主动使用

package com.ald.ups;/** * @describe: JVM learning * author: liutengyuan * @date: Created in 2017/12/4 14:22 **/public class MyTest7 { /** * JVM 规范当设计到类的主动使用时,才去初始化类,由于各个虚拟机的厂商不同,JVM规范...

2018-12-04 14:39:32 116

原创 JVM总结一:类加载,连接,初始化过程

一:加载类加载是指将编译好的.class二进制文件加载到JVM内存中;此处的类是指Class,Interface,Enum等;当然类加载的方式又分为:1:从硬盘disk去加载.class文件二进制数据;2:从网络下载.class文件;3:从ZIP,jar等归档文件中去加载.class文件,如我们的maven依赖第三方的jar,里面都是编译好的.class文件;4:将java源文件动态编译...

2018-11-28 17:54:21 156

原创 Linux服务器 线程数和系统线程数

1.查看服务器系统允许的最大线程数ulimit -a2. 修改配置文件vi /etc/security/limits.d/90-nproc.conf可以修改允许最大的线程数3.查看当前系统比较好资源的线程top -H4.ps -ef|grep tomcat (查看tomcat进程)如tomcat pid进程号为 5750ps -Lf |wc -l -f 为全格式形式 wc...

2018-11-07 10:02:00 7982

原创 ThreadPoolExecutor线程池

ThreadPoolExecutor线程池可以通过Executors静态工厂构建线程池,但一般不建议这样使用。作者之所以这么说,是因为这种创建线程池的方式有很大的隐患,稍有不慎就有可能导致线上故障。本文我们就来围绕这个问题来分析一下为什么JDK自身提供的构建线程池的方式并不建议使用?至于传统的Executors创建线程池虽然方便,但是我们却不能按需去创建和管理线程池中的线程,甚至是不能去控...

2018-11-05 15:53:58 291

原创 电商品牌列表的业务实现

品牌列表按照首字母排序: 实现方法一:可以在建品牌表时新建字段index ,(addida, index=A)等; 当然对于已经存在大量业务数据的表,可以采如下方案二:DROP TABLE IF EXISTS af_coslers; CREATE TABLE af_coslers ( id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主...

2018-08-03 14:32:33 204

原创 Callable,Future 和Runnable的使用

Future类概述: {@code Future} represents the result of an asynchronous computation. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the res...

2018-08-03 14:31:26 1631

原创 CountDownLatch的原理

CountDownLatch的原理: 这篇文章介绍的还不错,推荐给大家:http://www.importnew.com/15731.html 1:CountDownLatch 的一个小demopublic class CountDownDemo { private static CountDownLatch latch = null; private static f...

2018-05-02 17:27:28 101

原创 Oracle 与 Mysql的主要区别

一、并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。 mysql: mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。 虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。oracle:...

2018-04-26 17:43:38 145

转载 Lucene全文搜索原理与使用

本文中主要是对于Lucene全文搜索的基础原理进行简单的分析,以及Lucene实现全文搜索的流程,之后就是Lucene在Java中的最简单使用:创建索引,查询索引库; 本文中使用的Lucene主要是4.10.3和6.0.0,两个版本的原理相同,但是API的使用并不相同; 1、结构化数据与非结构化数据 2、非结构化数据搜索 3、全文搜索 4、搜索如何实现 5、Lucene实现全文搜索流程

2018-01-12 22:55:29 144

原创 Tomcat常见内存溢出的解决方案

Tomcat内存设置详解Java内存溢出详解一、常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVMHeap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn -Xm

2018-01-04 16:14:24 7616

原创 ERP管理系统的权限控制实现--shiro

1 Shiro基本原理分析Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;Session Manager:会话管理,即用户登录后就是一次会话,在没有

2018-01-02 18:52:26 5787

空空如也

空空如也

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

TA关注的人

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