自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JWT基础概念

JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力。

2022-10-23 20:58:44 740 1

原创 docker搭建ElasticSearch集群

docker搭建ElasticSearch集群创建挂载目录进入config文件里面创建es配置文件查询防火墙状态 关闭防火墙 (只执行这个,重启后不行,还必须执行在 目录下创建 es1.yml,es2.yml,es3.yml编辑es1.yml执行 命令 可以查看自己的宿主ip,找到例如 :es2.ymles3.yml3.调高JVM线程数限制数量在centos窗口中,修改配置加入如下内容:启用配置:三、启动ElasticSearch集.........

2022-06-07 23:16:37 2335 2

原创 kaptcha 谷歌验证码工具

kaptcha简介Kaptcha 是一个可高度配置的实用验证码生成工具,可自由配置的选项如:验证码的字体验证码字体的大小验证码字体的字体颜色验证码内容的范围(数字,字母,中文汉字!)验证码图片的大小,边框,边框粗细,边框颜色验证码的干扰线验证码的样式(鱼眼样式、3D、普通模糊、…)1. 引入kaptcha依赖 <!-- 验证码--> <dependency> <groupId>com.github.ax

2021-11-01 17:43:20 456

原创 Springboot微服务打包Docker镜像

Springboot微服务打包Docker镜像1.将我们的SpringBOOT微服务项目打包成一个jar包2.编写一个Dockerfile文件,在idea 或者 linux里面编写都可以FROM java:8COPY *.jar /app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]3.上传到我们的linux服务器中4.构建docker镜像 docker buil

2021-10-24 14:36:05 172

原创 Dockerfile详解

1. Dockerfile介绍Dockerfile是用来构建Docker镜像的文本文件,也可以说是命令参数脚本。docker build命令用于从Dockerfile构建镜像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。Docker镜像发布的步骤:1、编写一个dockerfile文件2、docker build 构建成为一个镜像3、docker run 镜像4、docker push 镜像(发布镜像到DockerHub、阿里云镜像仓库)镜像操作

2021-10-19 10:57:15 3590 1

原创 Docker容器数据卷详解

Docker容器数据卷详解1. docker的理念回顾docker的理念将运行的环境打包形成容器运行,运行可以伴随容器,但是我们对数据的要求是希望持久化,容器之间可以共享数据,Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为容器的一部分保存下来,那么当容器被删除之后,数据也就没了,为了能够保存数据,在docker容器中使用卷。卷就是目录或者文件,存在于一个或者多个容器中,但是不属于联合文件系统,因此能够绕过Union File System提供一些用于持久化数

2021-10-18 15:55:20 424

原创 Docker可视化面板的安装

Docker可视化面板的安装Portaniner是Docker的图形化管理工具,类似的管理工具有DockerUI、Shipyard、Rancher、Portainer等Portainer介绍Portainer主要功能:提供状态显示面板:显示主机或者swarm集群上有多少镜像,容器、网络、数据卷等;应用模板快速部署:可以使用预存的模板或者自己定制的模板快速部署;镜像网络数据卷管理:通过页面进行管理和操作,例如构建镜像,增删数据卷等;事件日志显示:对任何操作有记录,并且有页面可以显示审计日志;

2021-10-18 13:33:22 1806

原创 Docker常用命令

Docker常用命令官方文档都给常用的命令给出了详细的解释 官方文档1. docker images 查看本地主机的所有镜像[root@node01 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql latest 9da615fced53 40 hours ago 514MBhello-world latest feb5d9fea6a5

2021-10-14 16:45:09 161

原创 Docker的安装与下载

Docker的安装与下载我们直接进入docker官网,根据官方文档给出的详细步骤,一步一步安装。看图:首页划到最底部再点击导航栏(Manuals-说明书)再依次点击 Docker Engine——>Install——>CentOS(我们是在linux-CentOS下安装)前面教大家如何在官网找到安装页面,下面正式开始安装前面跟着我的步骤进入官网,下面我就不附上命令了,图片清晰可见,命令官网复制安装之前先使用命令:uname -r 查看系统的内核再使用命令cat

2021-10-14 15:13:15 1893

原创 Rabbitmq高可用集群搭建

使用集群的原因最开始我们介绍了如何安装及运行 RabbitMQ 服务,不过这些是单机版的,无法满足目前真实应用的要求。如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况,该怎么办?单台 RabbitMQ服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞RabbitMQ集群分为普通集群和镜像集群,普通集群下存在单点故障,服务整体不可用。搭建步骤1.修改三台主机名称命令:vim /etc/hostname .

2021-10-11 15:16:33 172

原创 RabbitMq之发布确认高级部分

RabbitMq之发布确认高级部分1. 为什么会需要发布确认高级部分?在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢?2 处理方法1通过实现RabbitTemplate.ConfirmCallback 接口来完成交换机异常之后得回调,但是在仅开

2021-10-10 19:01:18 243

原创 RabbitMq之延迟队列

延迟队列1. 延迟队列概念延迟队列,队列内部是有序的,最重要的特性就体现在它的延迟属性上,延迟队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延迟队列就是用来存放需要在指定时间被处理的元素的队列。2. 延迟队列使用场景1.用户下单以后超出支付时间则自动取消2.淘宝七天自动确认收货3.用户退款,7天类商家没有处理,自动退款3. 延迟队列实现方式1.为队列设置延迟时间 通过设置属性 " x-message-ttl " ,但是使用设置队列属性的方式的话,那么每增加一个新的时间需求就

2021-10-10 00:00:02 445

原创 RabbitMq之死信队列

死信队列1. 死信的概念死信,顾名思义就是死掉的信息(无法被消费的信息),一般来说,就是生产者将消息发送给broker(exchange+queue),但由于特定的原因导致queue中的某些消息无法被消费,这样的消息如果没有被处理,就形成了死信,有死信自然就有死信队列,来存放死信。2. 死信的来源1.消息TTL时间过期2.队列达到最大长度(无法再接收消息)3.消息被拒绝 (比如 : basic.reject 或 basic.nack)并且 requeue=false3. 应用场景为了保证订单

2021-10-09 18:03:00 482

原创 查看所有日志命令 journalctl

重启rabbitmq报错 :Job for rabbitmq-server.service failed because the control process exited with error code. See “systemctl status rabbitmq-server.service” and “journalctl -xe” for details.教你们一个独立自主找错误的方法:使用命令 journalctl -xe,定位到详细的报错日志信息;我这里的错误是:错误:主机sa:

2021-10-09 14:58:34 618

原创 RabbitMQ——Java环境

1. 依赖 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration&gt

2021-09-26 23:41:45 630

原创 RabbitMQ介绍(详细)

1. RabbitMQ 的相关概念2007 年发布,是一个在 AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。.RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue 高级消息队列协议 )的开源实现,由于erlang 语言的高并发特性,性能较好,本质是个队列,FIFO 先入先出,里面存放的内容是message.RabbitMQ 是一个消息中间件:它接收消息并且转发,就类似于一个快递站,卖家把快递通过快递站,送

2021-09-26 23:05:09 50446 1

原创 RabbitMq安装Web界面插件报错

RabbitMq安装Web界面插件报错最近在安装rabbitmq-plugins的时候报了以下的错误,一直不知道什么原因,上网百度了很多,自己尝试了很多,总结下来就是这几步,希望可以给大家帮助:错误:[root@sa software]# rabbitmq-plugins enable rabbitmq_managementEnabling plugins on node rabbit@sa:rabbitmq_managementError:{:query, :rabbit@sa, {:bad

2021-09-24 15:14:46 2033

原创 排序算法——归并排序

排序算法——归并排序1. 介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修 补"在一起,即分而治之)。2.基本思想3. 归并排序思想示意图 2-合并相邻有序子序列:例子:package com.blog.blog_vlog.aspect;import java.util.Arrays;

2021-09-14 18:27:47 67

原创 排序算法——快速排序

排序算法——快速排序1. 介绍快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两 部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 序,整个排序过程可以递归进行,以此达到整个数据变成有序序列2. 快速排序法示意图...

2021-09-13 16:23:22 210

原创 排序算法——希尔排序

排序算法——希尔排序为什么需要希尔排序?简单插入排序存在的问题当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响.而希尔排序的出现就是为了解决插入排序的这种局限性,它通过交换不相邻的元素,每次可以将逆序数量减少大于 1。介绍希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入 排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔排序法基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排

2021-09-12 22:39:28 234

原创 排序算法——插入排序

介绍插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序法思想插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排 序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表插入排序思路图例子:有一群小牛, 考试成绩分别是 101, 34, 11

2021-09-12 20:03:07 152

原创 排序算法之——选择排序

选择排序思想选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值, 与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2] 交换,…,第 i 次从 arr[i-1]~arr[n-1]中选取最小值,与 arr[i-1]交换,…, 第 n-1 次从 arr[n-2]~arr[n-1]中选取最小值, 与 arr[n-2]

2021-09-07 13:03:25 173

原创 排序算法之——冒泡排序

冒泡排序1.基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排 序写好后,在进行)演示冒泡过程的例子小结上面的图解

2021-09-05 16:57:30 240

原创 算法——排序算法

排序算法1 排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。2 排序的分类:内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。 3) 常见的排序算法分类(见右图)时间频度度量一个程序(算法)执行时间的两种方法:事后统计的方法 这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序

2021-09-04 21:00:34 436

原创 redis分布式缓存

redis分布式缓存1、什么是缓存缓存就数据交换的缓冲区(又叫做Cache),当某一个用户huancun要读取数据的时候,首先会从缓存中取(前提是有缓存),缓存中没有则从内存中取。缓存的运行速度比内存的更快2、缓存的作用存储临时数据需缓解数据压力的地方(对于某些需要频繁读取的数据建议使用缓存)数据从低速系统(硬盘,数据库)进入高速系统(内存,cpu)时使用3、缓存解决的问题缓解实提高了网站的响应速度缓存减少了访问数据的次数,减少了数据库的压力4、springboot项目中如

2021-08-29 17:00:56 185

原创 Shiro 整合SpringBoot

Shiro 整合SpringBoot1、 简介Apache Shiro 是 Java 的一个安全(权限)框架,Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以为开发人员提供一个全面的:认证、授权、加密、会话管理、与Web 集成、缓存等解决方案。2、基本功能Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个

2021-08-22 18:59:32 153

原创 .JedisDataException: DENIED Redis is running in protected mode because........

报错原文:DENIED Redis is running in protected mode because protected mode isenabled, no bind address was specified, no authentication password isrequested to clients. In this mode connections are only accepted fromthe loopback interface. If you want to co

2021-06-23 00:00:12 474

原创 Exception in thread “main“ redis.clients.jedis.exceptions.JedisConnectionException: Failed connectin

Exception in thread “main” redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to 192.168.112.164:63791、注释掉bind,protected-mode为no2、输入以下代码命令//打开防火墙6379端口号[root@localhost admin]# firewall-cmd --staterunning[root@localhost admin]

2021-06-22 23:24:51 365

原创 IDEA导入MAVEN项目,pom.xml文件显示黄色失效,

最近练习redis的时候,在网上找了个maven项目,导入的时候源文件失效,pom.xml也失效,网上说是,导入多module项目时,idea默认只编译了最外层(项目project)的pom.xm文件,子模块就没有编译到如下图所示:解决办法:**1、**点击右上角的project structure,在把当前的项目下的模块去掉重新添加2、点击module3、4、5、6、7、已经全部解决**一起努力 加油**...

2021-06-22 21:01:10 3099 2

原创 ## Caused by: java.sql.SQLException: Incorrect integer value: ‘‘ for column ‘clientId‘ at row 41

Caused by: java.sql.SQLException: Incorrect integer value: ‘’ for column ‘clientId’ at row 411、类型不对例子:INSERT INTO t_user(NAME,Dxmoney,Btmoney,Tcmoney) VALUES(#{NAME},#{Dxmoney},#{Btmoney},#{Tcmoney})#{Dxmoney},#{Btmoney},#{Tcmoney})需要的都是integer 类型,但是我们

2021-03-25 23:20:32 992

原创 Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.int

JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecimal BIT boolean BOOLEAN b

2021-03-24 19:48:28 3869

原创 Mybatis入门使用详解

很多人初始Mybatis,总是把Mybatis与JDBC搞混,不清楚sql语句写在哪里,不清楚在哪里创建链接,不知道代码怎么写,看了别人的代码,总想着自己去记,去背代码,这往往都是不可取的,不对的。下面,我将会用最简单的语言,教大家快速上手Mybatis.1、既然学到了Mybatis,那么就一定学过了JDBC,那我们仔细回想一下,我们是如何使用JDBC与Mybatis连接的。1、加载驱动程序,使用Class.forName()方法调用来完成,参数是驱动类的名称.2、打开数据库连接,首先使用Con

2021-03-19 10:08:30 214 1

原创 JDK动态代理

JDK动态代理1、概念JDK动态代理是代理模式的一种实现方式,还有一种实现模式叫作cglib,区别主要是JDK是代理接口,而cglib是代理类。其实如果我们学过spring-aop 就应该大概了解什么是动态代理,因为spring-aop的底层就是用动态代理实现的,没有学过没关系,我们不谈就是,我会用最简单的,清晰的语言告诉你们什么是动态代理;例子:比如,我们有一个蛋糕,我们想在蛋糕的里面存放一些水果,这时候,我们该怎样去做呢?我们可以将蛋糕切开,在每一块的前后面存放不同的水果,能想象到吧

2021-03-12 20:36:16 107 2

原创 redis requires Ruby version >= 2.3

redis requires Ruby version >= 2.3redis官方为redis集群提供了redis-trib.rb工具,但是在使用之前 需要安装ruby,以及redis和ruby连接:1.安装ruby环境yum install rubyyum install rubygems在执行 gem install redis 报错 : redis requires Ruby version >= 2.3,这是因为centos7默认的ruby版本太低(2.0),要卸载重装

2021-03-05 09:21:23 768 1

原创 Redis集群

Redis集群步骤1、集群搭建需要的环境,设置集群配置文件2.1 Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。.2.2 要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。.个人练习没有那么多服务器,也启动不了那么多虚拟机,所在这里搭建的是伪分布式集群,即一台服务器虚拟运行6个redis实例,修改端口号为(6379-6381 6389-6391),当然实际生产环境的R

2021-03-03 15:25:36 263

原创 Redis错误:[ERR] Sorry, can‘t connect to node 192.168.10.3:6379

[ERR] Sorry, can’t connect to node 192.168.10.3:6379对于这种错误,一般都是对于的端口号没有启动 ,启动即可 命令:redis-server redis6379.conf启动成功以后 使用 ps -ef | grep redis 查看 进程;成功解决还没有解决的小伙伴,看下面的操作继续使用 :ps -ef | grep redis 查看 进程;我这里是默认的IP地址 127.0.0.1,然而我要启动的是 IP地址为192.168.1

2021-03-03 08:46:53 3430

原创 Redis-主从同步详解

Redis-主从复制详解尽管Redis服务器性能很好,但是对于一些热门网站(比如淘宝双十一的时候),就会有成千上万的用户进入主页,同时也伴随着大量的读操作到达Redis服务器,触发一系列操作,每当这个时候,单靠一台Redis服务器,显示是满足不了需求的。而我们Redis主从复制就很好的解决了这个问题1、概念主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。数据的复制是单向的,只能由主服务器到从服务器。(个人练

2021-03-01 12:00:59 3116 3

原创 Redis持久化RDB和AOF

RDB 详解1、概念在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。获取 Redis 目录可以使用 CONFIG 命令,如下所示:127.0.0.1:6379> CONFIG GET dir>1) "dir">2) "/myRedis"2、备份如何执行Redis会单独创建(fork)一个子进

2021-02-26 12:29:44 126

原创 Redis—事务(悲观锁、乐观锁)

事务1、定义:Redis事务是一个单独的隔离操作    ①事务中所有的命令都会被序列化、按照顺序执行    ②事务在执行过程中不会被其他客户端发送来的命令请求打断2、作用:串联多个命令防止别的命令插队                 multi:输入开始命令                 exec:执行命令                 discard:放弃组队(删除掉)3、注意事项:1、multi 命令不能嵌套使用,如果已经开启了事务的情况下,再执行 multi 命令

2021-02-25 20:50:32 417

原创 Redis配置文件详解

Redis配置文件详解开头告诉我们这是一个redis配置文件,注意一点的就是——后面需要使用内存大小时,可以指定单位,通常是以 k,gb,m的形式出现,并且单位不区分大小写。include /path/to/local.conf :额外的配置文件,如果想多人进行开发维护可以通过include设置配置文件...

2021-02-25 12:33:11 284 1

空空如也

空空如也

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

TA关注的人

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