- 博客(87)
- 资源 (2)
- 收藏
- 关注
原创 多线程实现与JUC同步工具详解
多线程学习概念简述如下:并发:指一个CPU可以异步的处理多个进程并行:则是一个CPU同时处理多个进程进程:程序运行的执行过程,是一个程序的实例。每个进程都有自己的虚拟地址空间和控制线程线程:是进程的一个执行单元,是操作系统调度器(Schduler)分配处理器时间的基础单元。一句话总结:线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多...
2019-04-25 15:55:49
880
原创 Vue入门级语法
Vue入门级语法使用方式新手学习,只需要以引入<script>的方式即可。在.html 中的head中加上<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>即可学编程怎么能少了hello world<html> <head> ...
2019-04-25 15:35:17
544
原创 JWT概述与代码实现
一、什么是JSON Web Token?JSON Web Token(JWT)是一个开放标准(RFC7519),它定义了一种紧凑且独立的方式,用于在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。二、JWT的使用场景主要包括:认证授权这是比较常见的使用场景,只要用户登录过...
2019-04-16 18:35:51
5198
原创 API 接口防刷
API 接口防刷顾名思义,想让某个接口某个人在某段时间内只能请求N次。在项目中比较常见的问题也有,那就是连点按钮导致请求多次,以前在web端有表单重复提交,可以通过token 来解决。除了上面的方法外,前后端配合的方法。现在全部由后端来控制。原理在你请求的时候,服务器通过redis 记录下你请求的次数,如果次数超过限制就不给访问。在redis 保存的key 是有时效性的,过期就会删除。...
2019-04-16 10:22:11
2838
1
原创 SpringBoot Mybatis 乐观锁重试机制代码实现
乐观锁重试机制代码实现有乐观锁,那当然也是有悲观锁的悲观锁和乐观锁的原理和应用场景悲观锁(Pessimistic Lock)顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimis...
2019-03-25 17:20:19
9640
24
原创 SpringCloud (三)、Feign使用示例
FeignFeign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。它具备可插拔的注解支持,包括Feign注解和JAX-RS注解。Feign也支持可插拔的编码器和解码器。Spring Cloud为Feign增加了对Spring MVC注解的支持,还整合了Ribbon和Eureka来提...
2019-02-28 15:43:26
1080
原创 Git小笔记-删除远程分支无用文件
Git 删除远程idea 工具的文件1、查看远程分支$ git branch -a 2、查看本地分支$ git branch3、切换分支$ git checkout master4、删除缓存区.idea(保留工作区.idea)$ git rm --cached -r .idea$ git rm --cached -r *.iml# 将.idea从源代码仓库中删除(-m ...
2019-01-05 09:54:26
457
转载 Java8中的LocalDateTime工具类基本使用
package com.kingboy.common.utils.date;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit;import java.time.temporal.TemporalUnit;import java.util.Da...
2018-07-12 16:24:09
1629
原创 SpringCloud (二)、Ribbon客户端负载均衡
Ribbon学过Nginx的都知道它是一个服务端负载均衡器,而Ribbon 也是一个负载均衡器,只不过它是基于基于HTTP和TCP的客户端负载均衡器。代码实现准备工作1、启动一个eureka服务 2、一个生产者集群,有两个节点(端口7900、端口7901) 3、一个ribbon 客户端 生产者我们用上次的代码即可,下面是ribbon客户端的代码实现。一、使用默认...
2018-06-27 13:25:16
258
原创 SpringCloud (一)、服务注册与发现
微服务架构“微服务架构” 在之前几年久很火爆了,以至于现在关于微服务的文章很多,资料也是海量,社区同样也是很活跃。 微服务架构 的两大主流 应该就是SpringCloud 与 dubbo 了。 说了那么多,微服务是什么呢? 简单的说,微服务架构就是将一个完整的应用垂直拆分成多个不同的服务,每个服务都是一个个体,可以独立部署、独立维护、独立扩展、服务与服务之间 ...
2018-06-27 13:14:17
489
原创 ElasticSearch 报错记录
ES 报错一、QueryPhaseExecutionException详情nested: QueryPhaseExecutionException[Result window is too large, from + size must be less than or equal to: [10000] but was [10010]. See the scroll api for ...
2018-06-27 13:07:32
355
原创 ElasticSearch 中文分词插件ik 的使用
Elasticsearch安装中文分词插件ik为了做搜索弄了一个星期,还是没有搜索到自己想要的内容。虽说各种查询都懂一点,但是就是查不到自己想要的。那是以为我用的是默认的标准分词器。对中文来说不是很好,它把中文拆成一个一个的。然后我就各种论坛,各种博客,各种学习网站。然后发现有这么一个ik中文分词的东西。然后我就试着使用了一下,发现确实一些基本的查询都搞定了。一个星期的问题,其...
2018-06-27 13:02:04
3015
原创 Elasticsearch 数据导入导出 Java 实现工具类
Elasticsearch 数据导入导出 Java 实现最近学了elasticsearch 对它也不是非常的熟悉,它好像没有像 mongodb 有mongodump 这样的工具方便。虽然也有一些别人做的插件工具。但嫌麻烦,所以整理了网上一些大神写代码。工具类如下。如果发现有不对的地方,欢迎指正。或者可以优化的地方,欢迎指点。package top.lrshuai.b...
2018-06-27 12:55:30
5629
2
原创 Elasticsearch 的语法
Elasticsearch 的语法elasticsearch 增删改查一、添加1、创建索引索引名称为:testPUT http://192.168.12.137:9200/test/{ "setting":{ "number_of_shards":5, "number_of_replicas":1 }, "map...
2018-06-27 12:51:49
1323
原创 ElasticSearch 与 Mongodb 同步数据之mongo-connector
ElasticSearch 与 Mongodb 同步数据之mongo-connector一、安装ElasticSearch 并配置 集群可参看我的文章ElasticSearch 的安装、ElasticSearch 集群二、安装MongodbMongodb 安装并配置副本集可参看我的相关文章 配置副本集,我这里是只有一个mongo所以,栗子如下use ...
2018-06-27 12:49:41
649
原创 ElasticSearch 集群
ElasticSearch 集群这个也是超级简单的配置一、Master 配置修改 /usr/local/elasticsearch/config/elasticsearch.yml 文件 ## 跨域问题http.cors.enabled: truehttp.cors.allow-origin: "*"# 集群名称cluster.name: lrshuai.t...
2018-06-27 12:46:47
272
原创 Linux 安装redis 并配置服务
ElasticSearch 的安装这个安装超级简单,下载解压就可以了。前提是你已经安装了 JDK ,关于jdk的安装可参看我的文章:安装jdk一、下载安装包1、打开官网下载页:https://www.elastic.co/downloads/elasticsearchwget https://artifacts.elastic.co/downloads/elastics...
2018-06-27 12:44:36
244
原创 Linux 安装redis 并配置服务
Centos 安装redis 并配置服务1.下载源码包wget http://download.redis.io/releases/redis-3.2.1.tar.gztar -zxvf redis-3.2.1.tar.gz -C /opt/cd /opt/redis-3.2.1/make PREFIX=/usr/local/redis-3.2.1 install ...
2018-06-27 12:40:02
1829
原创 Redis 笔记小结
很早之前就使用redis 了,但都没有好好总结过,来一次吧一、Redis 事务1、redis 与mysql事务的对比 mysql redis 开启 start transaction 语句 普通的sql语句 失败 rollback 回滚 成功 commit注意一: rollback与discard 的区...
2018-06-26 16:54:48
204
原创 RocketMQ 配置双master
RocketMQ 配置多master一、准备工作1、虚拟机安装两台 Centos72、jdk83、maven 3.5.04、git二、下载并编译git clone -b develop https://github.com/apache/incubator-rocketmq.gitcd incubator-rocketmqmvn -Pre...
2018-06-26 16:48:28
595
转载 Docker(五)、启动mysql时自动执行脚本
docker 启动mysql时自动执行脚本上次已经运行了一个 tomcat 我们还需要一个数据库,docker 运行一个mysql 是很简单的比如docker run -d --name testmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=admin mysqlMYSQL_ROOT_PASS...
2018-06-26 16:43:10
4883
1
原创 Docker(四)、制作自己的Docker 镜像
制作自己的Docker 镜像Docker 可以通过 Dockerfile 的内容来自动构建镜像。Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据 Dockerfile 的内容构建镜像目标:在 tomcat中 运行一个.war 文件一、创建一个Dockerfile 文件# 先创建一个文件夹为docker-admin...
2018-06-26 16:38:56
25282
原创 Docker(三)、运行Nginx
Docker 运行nginx运行了hello world 还不是我们的目标,这章我们要来学习运行一个静态的页面一、获取Nginx获取镜像docker pull nginx二、启动镜像方法一:指定端口映射本机80端口 映射 容器的80端口,-d 是后台运行的意思,# --name 是给它指定一个名字,我们这里给它指定的名字叫mynginx...
2018-06-26 16:33:10
562
原创 Docker(二)、运行一个 Hello World
Docker 初体验前面看了那么多文字,可能还是不知道docker 怎么用。学编程少不了hello world,所以,我们就来试一个helloworld一、简单命令 命令 详解 docker search 搜索images docker pull 获取images docker run 运行images docker p...
2018-06-26 16:30:05
890
原创 Docker(一)、快速安装
Docker的安装$ uname -r 检查内核版本,返回的值大于3.10即可。一、在Ubuntu中安装Docker官网文档地址:https://docs.docker.com/install/linux/docker-ce/ubuntu/#prerequisites1、安装Ubuntu维护的版本$sudo apt-get install dock...
2018-06-26 16:26:17
505
转载 Nginx 搭建https
nginx 搭建https一、创建SSL证书mkdir -p /etc/nginx/sslopenssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt创建了有效期100年,加密强度为RSA2048的SS...
2018-06-26 16:22:55
232
原创 Nginx 的配置详解
Nginx 配置参数详解默认配置文件在 nginx 目录下的 conf/nginx.conf 内容大概如下:所有我就把它分为 全局配置、events 、http 吧一、全局区配置# 运行用户与用户组,用户组可忽略user nobody;# worker进程的个数,通常应该略少于或等于CPU物理核心数,也可以使用auto自动获取worker_processe...
2018-06-26 16:20:46
387
原创 安装Nginx
安装Nginx一、下载源码包下载地址:http://nginx.org/en/download.htmlNginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版本Legacy versions:遗留的老版本的...
2018-06-26 16:12:50
140
原创 MongoDB (六):高级命令操作与实操
MongoDB 高级命令语法 修改器名称 语法 案例 说明 lt|lt|lt:value db.persons.find({age:{$lt:27}) 查询age 小于 27的数据 lte|lte|lte:value db.persons.find({age:{$lte:27}) 查询age 小于等于 27的数据 gt|gt|gt:value
2017-10-26 12:26:32
907
原创 MongoDB (五):安全浅析
MongoDB 安全浅析MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息当Mongod启用auth选项时,用户需要创建数据库帐号,访问时根据帐号信息来鉴权,而数据库帐号信息就存储在admin数据库下一、角色1、数据库用户角色(a)、read提供对所有读取数据的权限(b)、readWrit
2017-10-26 12:25:46
503
原创 MongoDB (四):索引
MongoDB 的索引MongoDB 的索引种类1、_id 索引2、单键索引3、复合索引4、多键索引5、过期索引6、全文索引7、地理位置索引查看索引的信息db.test.getIndexes()一、_id 索引这个索引绝大多数集合默认建立的索引,一个唯一的索引二、单键索引单键索引最普通的索引1、创建索引,给 name 这个列添加索引# 这个应该是V3.0 之前的方法了db.test.ensure
2017-10-23 18:08:13
375
原创 MongoDB (三):基本命令操作
MongoDB 的基本操作数据库的一些常用命令1、显示所有数据库show dbs2、使用数据库,当没有这个数据库时,mongodb 会在需要的时候帮你创建use demo3、删除数据库db.dropDatabase()一、插入数据1、往集合test插入单条数据db.test.insert({url:"http://www.lrshuai.top"})2、往集合test插入多条数据,可通过for 循环
2017-10-23 18:06:48
353
原创 MongoDB (二):搭建MongoDB 服务
上次已经讲了安装,且启动了默认的配置现在我们就来手动的配置下一、创建服务器所在目录mkdir -p /data/mongodb二、创建数据所在目录# 数据存放目录mkdir -p /data/mongodb/data# 生成log目录mkdir -p /data/mongodb/log# 配置文件目录mkdir -p /data/mongodb/conf三、创建配置文件vim /data/
2017-10-23 18:05:55
351
原创 MongoDB (一):安装MongoDB
Linux 简单搭建mongodb 我以 centos 为例一、下载源码包去官网下载源码包:https://www.mongodb.com/download-center#community# 下载对应你版本号的包,我这个是红帽的wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.9.tgz二、解压我直接
2017-10-23 18:04:58
299
原创 分享一个Java生成二维码工具类
分享一个Java生成二维码工具类直接上代码:1、CodeUtil.classpackage top.lrshuai.blog.util;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedI
2017-10-19 16:27:26
1726
1
原创 Crontab 命令详解
Crontab 概念crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中(是“cron table”的简写),以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。
2017-10-19 16:26:04
60400
原创 点赞动画,鼠标点击动画
点赞+1 动画、鼠标点击动画原理很简单通过绝对定位 和 样式动画就可以实现了。不多说了,看下面demo<html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1" /><script src="http://libs.baidu.com/jquery
2017-10-19 16:24:31
1397
转载 关于HTML 代码注入,XSS攻击问题解决
大部分的网站一般都有评论功能或留言功能,或类似可以让用户写东西的地方。如果后台不经过处理,又把数据返回前端,这就会出问题了。网页解析器会把用户的信息也当成html代码给解析了。如果用户写的是一些恶意的 js 脚本这是很危险的。专业术语叫:XSS 攻击一、举个例子:假设后台和前台都没有对用户的信息,进行处理。我们输入如下的代码:<script> var body= document.body;
2017-10-19 16:23:05
34629
19
原创 SVN 代码迁移
SVN 将服务器上的版本库代码迁移到另一台服务器上我们可能因为服务器到期了,要把代码迁移到新的服务器,废话不多说,流程如下:1、把服务器的代码 备份。2、在新的服务器安装svn3、在新的服务器创建一个仓库4、把备份文件加载到刚创建的仓库1、备份 # /usr/local/svnRepo 是你的仓库地址 # blog 是你要备份的项目 # blog.dump 是要生成的配置文件 svnadmin
2017-10-18 13:54:36
2206
原创 虚拟机安装系统无缝全过程
虚拟机安装系统无间隙全过程突然发现有好多朋友,都不怎么会用虚拟机安装系统,所以就有了这个教程。一、准备工作:1、你已经安装了虚拟机2、准备一个镜像(iso,或者img 格式的,我这里演示img 格式的,因为有些朋友说不会安装img 格式的。但其实原理都一样)题外话:下载windows 系统,推荐网址 MSDN,我告诉你 windows 的所有版本它几乎都有:https://msdn.itellyou
2017-10-18 13:33:20
1609
1
Springboot2-Quartz 后台可动态配置的定时任务
2019-02-28
一个炫酷的 springboot 后台模板,有菜单,权限,用户 管理的基本功能
2017-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人