- 博客(208)
- 资源 (54)
- 收藏
- 关注

原创 linux系统常用的简单操作命令
简介1.linux系统是程序猿经常会接触的系统,特别是实施、运维工程师等职位,都需要对linux操作要求比较高,但也有很多新入门的工程师并不懂得如何操作一些常用的简单的linux命令,这是非常尴尬的一件事;2.本篇博客的重点放在:介绍在日常的工作中会接触较多的常用的linux基本命令:实例1.linux项目部署、查看、启动、关闭等操作常用命令 cd /home/t...
2019-05-11 15:19:31
2934
转载 关于HTTPS的原理及证书、验证和数据加密、解密过程解析
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
2022-08-17 16:47:27
3489
转载 spring-security个性化认证流程,自定义登录页面
1. 定义自己的登录页面我们需要根据自己的业务系统构建自己的登录页面以及登录成功、失败处理在spring security提供给我的登录页面中,只有用户名、密码框,而自带的登录成功页面是空白页面(可以重定向之前请求的路径中),而登录失败时也只是提示用户被锁定、过期等信息。在实际的开发中,则需要更精细力度的登录控制,记录错误的日志(错误的次数等)2. 自定义登录页面 配置登录页面的路径 在BrowserSecurityConfig类中配置登录页面的...
2021-11-10 14:43:51
848
转载 mybatis-plus中wrapper的用法(详细)
用到了wrapper,整理资料记录一下,以备后续复习。目录------------(可点击相应目录直接跳转)目录一、条件构造器关系介绍条件构造器关系介绍 :wapper介绍 :二、项目实例1、根据主键或者简单的查询条件进行查询2、MyBatis-Plus还提供了Wrapper条件构造器,具体使用看如下代码:三、具体使用操作1、ge、gt、le、lt、isNull、isNotNull2、eq、ne3、between、notBetween4、allEq..
2021-11-05 14:53:07
13835
1
转载 Spring Cloud Stream微服务消息框架
简介随着近些年微服务在国内的盛行,消息驱动被提到的越来越多。主要原因是系统被拆分成多个模块后,一个业务往往需要在多个服务间相互调用,不管是采用HTTP还是RPC都是同步的,不可避免快等慢的情况发生,系统性能上很容易遇到瓶颈。在这样的背景下,将业务中实时性要求不是特别高且非主干的部分放到消息队列中是很好的选择,达到了异步解耦的效果。目前消息队列有很多优秀的中间件,目前使用较多的主要有 RabbitMQ,Kafka,RocketMQ 等,这些中间件各有优势,有的对 A...
2021-11-03 18:07:49
613
转载 线程池-四种拒绝策略总结
一、线程池的拒绝策略线程池中,有三个重要的参数,决定影响了拒绝策略: corePoolSize - 核心线程数,也即最小的线程数。 workQueue - 阻塞队列 。 maximumPoolSize - 最大线程数当提交任务数大于 corePoolSize 的时候,会优先将任务放到 workQueue 阻塞队列中。当阻塞队列饱和后,会扩充线程池中线程数,直到达到 maximumPoolSize 最大线程数配置。此时,再多余的任务,则会触发线程池的拒绝策略了...
2021-10-27 16:20:25
39448
3
转载 线程池概念:ThreadPoolTaskExecutor
解释1.corePoolSize:核心线程数(同时处理的能力)2.queueCapacity:队列容量3.maxPoolSize:最大线程数;决定了当corePoolSize 以及queueCapacity 满了以后,会在线程中额外创建线程的假如corePoolSize和queueCapacity均为5,而maxPoolSize等于12.那么当线程大于12的时候(也就是corePoolSize,queueCapacity都满且额外创建了7个线程,依旧有线程过来),那么大于12的线程会走拒绝策略
2021-10-27 11:28:36
817
转载 Websocket协议,实时通讯原理
一、websocket与httpWebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这样一张图理解...
2021-10-18 11:20:58
1054
1
转载 Spring Security Oauth2认证源码解析
本文开始从源码的层面,讲解一些Spring Security Oauth2的认证流程。本文较长,适合在空余时间段观看。且涉及了较多的源码,非关键性代码以…代替。准备工作首先开启debug信息:logging: level: org.springframework: DEBUG可以完整的看到内部的运转流程。client模式稍微简单一些,使用client模式获取tokenhttp://localhost:808...
2021-08-17 13:44:51
2703
转载 图文漫画,简单易懂:二叉树、红黑树、B树、B+树
转发自头条号:Java全栈技术作者:channingbreeze 互联网侦察小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。话说两个多月前,小史通过了A厂的一面,两个多月后的今天,小史终于等到了A厂的二面。简单的自我介绍后,面试官看了看小史的简历,开始发问了。【面试现场】小史:没问题,这个项目前端用的react+webpack,后端.
2021-07-26 18:05:55
506
转载 JAVA堆内存管理
JAVA堆内存管理是影响性能主要因素之一。堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的。先看下JAVA堆内存是如何划分的,如图:JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Generation),非堆内存就一个永久代(Permanent Generation)。 年轻代又分为Eden和Survivor区。Survivor区由FromSpace和ToSpace组成。Eden区占大容量
2021-07-20 16:33:01
412
转载 Idea快捷键大全(Windows)
Ctrl 快捷键 介绍 Ctrl + F 在当前文件进行文本查找(必备) Ctrl + R 在当前文件进行文本替换(必备) Ctrl + Z 撤销(必备) Ctrl + Y 删除光标所在行或删除选中的行(必备) Ctrl + X 剪切光标所在行或剪切选择内容
2021-04-30 10:57:39
474
原创 java流操作:Stream操作与详解
目录Stream集合流操作Stream 和 parallelStream注意事项操作元素说明实践测试实体类:TestStream集合流操作Java 8 API添加了一个新的抽象称为流 Stream ,可以让你以一种声明的方式处理数据; Stream 是一个来自 数据源 的元素队列并支持 聚合 操作,可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码;Stream 和 parallelStreamStream:串行流,单线程,线程.
2020-11-26 16:03:34
4436
转载 eclipse不同项目配置不同的git账户,多个git账户不干扰
概述eclipse 4.9.0 使用git提交文件/代码时,会附带上当前操作者信息。 在git中查看历史时,会通过操作者信息来确定谁修改了哪些文件/代码。 因此,在eclipse中,每次提交代码时,均需要填写author和commiter。eclipse中author和commiter的取值逻辑在eclipse中,author和commiter默认的内容为:user.name<user.email> user.email和user.email为git config中定义的K-V
2020-11-13 18:38:56
954
转载 linux中RabbitMQ安装教程
linux中RabbitMQ安装教程在做一个微服务项目时候用到消息队列,于是深入了解了消息队列知识,并在linux上安装了Rabbitmq,本博客介绍Rabbitmq的安装教程,想要深入了解消息队列相关知识,请参考博客:1. 更新基本系统安装任何软件包之前,建议使用以下命令更新软件包和存储库yum -y update2. 安装Erlang由于RabbitMQ是基于Erlang(面向高并发的语言)语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。在本教程中我们将安装
2020-10-23 11:34:42
532
1
转载 gitLab的使用 和 git 、 github、gitlab的区别
一、git 、 github、gitlab的区别 (百度相关内容得到的理解)二、git最基本作用:版本控制三、有集成了git的GIT安装包 github和gitlab都使用git该版本控制系统,来实现对代码的管理。 所以,原先怎么用git操作github的,那么用git操作gitlab是一样的。https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A...
2020-10-14 14:12:04
924
原创 navicate创建mysql存储过程,遍历list查询集合,执行业务逻辑
简介navicate创建mysql存储过程,同时需要对存储过程中的查询list结果集进行遍历,获取相应的结果参数执行其他的业务逻辑; 存储过程可定义事件定时器,定时执行函数,具体操作可见另一篇博文:navicate创建mysql存储过程,定时器事件定时调用,更新状态;实践-- 存储过程,遍历结果集BEGIN #Routine body goes here...、 #SHOW VARIABLES LIKE "%event_scheduler%"; -- 查看定时器开启状态
2020-07-21 16:08:34
4073
转载 Jenkins+svn+tomcat自动打包并部署到远程服务器
本文主要介绍了使用Jenkins自动打包到远程服务器。一、Jenkins简介Jenkins是一个开源软件项目,是基于Java开发的广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署,将传统编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址,将代码拉取到jenkins宿主机上,进行编译、打包和发布到web容器中。Jenkins可以支持多种语言(比如:java、c#、php等等),也兼容ant、maven、gradle等多种第
2020-07-14 19:32:33
1593
转载 mysql查询或删除重复记录并且只保留一条
最近在做题库系统,由于在题库中添加了重复的试题,所以需要查询出重复的试题,并且删除掉重复的试题只保留其中1条,以保证考试的时候抽不到重复的题。首先写了一个小的例子:一、单个字段的操作这是数据库中的表:分组介绍:Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1查看是否有重复的数据:GROUP BY <列名序列>HAVING <组条件表达式>查询出:根据dname分组,同时满..
2020-07-08 13:43:53
1364
转载 玩转SpringBoot之定时任务详解
目录序言一、静态:基于注解二、动态:基于接口三、多线程定时任务阅读正文:序言使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:一、基于注解(@Scheduled) 二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。 三、基于注解设定多线程定时任务一、静态:基于注解基于注解@Scheduled默认为单线程,开启多
2020-06-19 15:42:06
404
转载 ApplicationEventPublisher的publishEvent实现异步快速
ApplicationEventPublisher的publishEvent实现异步快速。 首先来一个小demo感受一下spring的自定义异步事件。使用ApplicationEventPublisher的publishEvent来发布事件。如下代码,这里的事件指useridea工具可以识别是事件,我们可以在idea编辑器中看到前面的标示。点一下即可跳转到监听事件中。@Servicepublic class UserEventRegister { @Autowired...
2020-06-18 19:11:57
5751
转载 Netty详解:Springboot整合Netty
小知识:21天效应在行为心理学中,人们把一个人的新习惯或新理念的形成并得以巩固至少需要21天的现象,称之为21天效应。也就是说,一个人的动作或想法,如果重复21天就会变成一个习惯性的动作或想法。步骤1 先写好基本的Netty客户端和Netty服务的代码。参考文章【netty初识】2.搭建好基本的Springboot项目。3.将Netty服务端代码的启动代码和关闭代码分离,服务...
2020-04-09 13:43:57
5218
1
转载 Netty详解:Netty Bootstrap(图解)|秒懂
疯狂创客圈 Java 分布式聊天室【 亿级流量】实战系列之18 【博客园 总入口】目录Netty Bootstrap(图解) 源码工程 写在前面 图解几个重要概念 父子 channel EventLoop 线程与线程组 通道与Reactor线程组 Channel 通道的类型 启动器初步介绍 图解 Bootstrap执行流程 1:设置...
2020-04-09 10:26:07
1299
转载 Netty详解:tomcat区别+高并发原理
什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见https://www.java.net/dukeschoice/2011)。它活跃和成长于用户社区,像大型公司 Face...
2020-04-09 10:06:22
6425
1
转载 Netty详解:是什么?怎么用?优势在哪里?
在开始了解Netty是什么之前,我们先来回顾一下,如果我们需要实现一个客户端与服务端通信的程序,使用传统的IO编程,应该如何来实现?IO编程我们简化下场景:客户端每隔两秒发送一个带有时间戳的"hello world"给服务端,服务端收到之后打印。为了方便演示,下面例子中,服务端和客户端各一个类,把这两个类拷贝到你的IDE中,先后运行 IOServer.java 和IOClient.ja...
2020-04-08 09:49:26
1195
1
转载 ELK生态:ES中的数据关联查询
1、前言对于solr来说是无法做两个collection之间的关联的,es是否可以做到类似于表的join关联那,这就是本篇需要研究的内容,主要参考内容是官方文档。先说下结论,如果不做特殊处理,es是无法完成类似与表Join的关联查询的。2、ES如何做关联官网里面有几种支持关联查询的办法:2.1 应用程序做关联 这个没有什么好说的,其实不算真正的关联,需要先查询...
2020-03-28 11:46:52
8634
转载 Hadoop:入门以及相关概念详解
一. hadoop是什么Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。今年大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明显增加了Hadoop方面的投入。二 . hadoop能干什么hadoop擅长日志分析,facebook...
2020-03-27 11:59:45
249
转载 ELK生态:分布式文档存储往ES中存数据和取数据的原理
分布式文档存储ES分布式特性屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点一个集群拥有相同的cluster.name 配置的节点组成, 它们共同承担数据和负载的压力 主节点负责管理集群的变更例如增加、删除索引,或者增加、删除节点等。 而主节点并...
2020-03-27 11:08:47
1197
1
转载 ELK生态:es数据备份与恢复
数据备份 描述: es引入仓库与快照的概念实现了数据的备份与恢复,在elasticsearch.yml中指定仓库的base目录,创建仓库,将快照创建在指定的仓房中即可实现索引的备份。 解决的问题: 备份指定的索引 备份全部索引 答疑 快照的过程可以后台进行 快照时会将保存该索引的全部数据 同一仓库下的同一快照只能执行一次。 本次快照会基于上次仓库之前的快照进行增...
2020-03-27 10:56:05
610
转载 详解:分布式锁
概述为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。为什么要使用分布式锁成员变量 A 存在 JVM1、JVM2、JVM3 三个 JVM 内存中 成员变量 A 同时都会在 JVM 分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的 不是同时发过来,三个请求分别操作三个不同 ...
2020-03-26 10:40:08
418
原创 java线程或多线程相关概念详解及优化方案
1.何为线程 是程序运行的基本执行单元,是进程中的实际运作单位,是轻量级的子进程; 2.何为线程并发 程序启动多个线程并发执行; 3.何为主线程 当jvm启动之后,加载类文件,发现main方法,就会为main方法创建一个线程,用于方法的执行,这个线程称之为主线程; 4.何为线程安全和不安全 (1)当多个线程同时执行操作共享数据时,就有可能会产...
2020-03-25 17:49:42
1388
转载 RocketMQ之顺序消费:Demo及实现原理分析
场景分析顺序消费:是指消息的产生顺序和消费顺序相同,按照FIFO先进先出的原则严格保持一致。假设有个下单场景,每个阶段需要发邮件通知用户订单状态变化。用户付款完成时系统给用户发送订单已付款邮件,订单已发货时给用户发送订单已发货邮件,订单完成时给用户发送订单已完成邮件。发送邮件的操作为了不阻塞订单主流程,可以通过mq消息来解耦,下游邮件服务器收到mq消息后发送具体邮件,已付款邮件、已发...
2020-03-25 12:26:40
2492
1
转载 Elasticsearch--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)
这篇博客讲到基本概念包括:Index、Type、Document。集群,节点,分片及副本,倒排索引。一、Index、Type、Document1、Indexindex:索引是文档(Document)的容器,是一类文档的集合。索引这个词在 ElasticSearch 会有三种意思:1)、索引(名词)类比传统的关系型数据库领域来说,索引相当于SQL中的一个数据库(Databa...
2020-03-24 17:40:58
1598
1
转载 浅谈JVM及原理
前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。运行流程 我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图: java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操...
2020-03-23 23:52:13
303
转载 应用容器引擎:docker的简介与安装
什么是dockerdocker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。...
2020-02-13 11:39:12
570
原创 java连接ftp上传、下载、删除、查询工具类
简介当前ftp工具类使用java连接,可进行上传、下载、查询、删除(文件或文件夹),需提前在服务器搭建好ftp环境; linux搭建ftp环境站点请查看上一篇文章:Linux实例搭建FTP站点;实例package com.sixmonth.app.platform.util;import java.io.File;import java.io.FileInputStream;...
2019-12-19 14:06:13
880
转载 Linux实例搭建FTP站点
vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。前提条件已注册阿里云账号。如还未注册,请先完成账号注册。 已完成实名认证。如还未认证,请先完成实名认证。 已创建ECS实例并为实例分配了公网IP地址。若尚未创建,请参见创建ECS实例。背景信息FTP(File...
2019-12-16 17:49:50
930
转载 前端WebSocket进行消息实时推送和提示(附代码)
功能举例: 通过特定操作实时推送到页面反馈进行弹窗和播放音乐。先贴源代码地址:点我GO引入pom创建一个基础的Spring Boot工程(没有特定版本),并在pom.xml中引入需要的依赖内容:<dependency> <groupId>org.springframework.boot</groupId> <artif...
2019-12-06 11:34:46
9248
2
转载 windows版本和Linux版本的ffmpeg(4.1.3)下载和使用方法
一:ffmpeg的下载1、访问http://ffmpeg.org/,单击①或者②进入选择操作系统的页面。2、Linux版本的下载:①:首先点击小企鹅图标,出现不同的Linux系统②:根据不同的Linux点击进入不同的Linux系统下载ffmpeg③:注意:若想下载tar.bz2格式的直接点击中间的Download图标,它会自动进行下载。(也可进入http:/...
2019-12-02 15:08:51
4885
转载 RedHat 7.0系统安装mysql 5.7.22
今天给大家介绍一下如何安装mysql5.7,在安装之前,首先要查看的是,你的系统中有没有已经安装过的情况。键入rpm -qa|grep mysql,如果无任何显示,则表示没有安装过相关组件;如果有,则根据显示出来的名字,键入rpm -e --nodeps ************** (星号为你要删除的文件名字)。接着键入rpm -qa|grep mariadb,同样的步骤,把出现的...
2019-11-13 09:39:18
322
mqtt客户端windows测试工具:mqttfx-1.7.1-windows-x64.zip
2020-08-08
QuartzTask定时器项目实例
2018-05-20
2017阿里技术年度精选集(上下篇)
2018-04-18
微信公众号UI:jquery-weui
2018-04-10
chrome-IE-Tab.csr
2018-03-23
mysql数据库驱动:mysql-connector-java-6.0.5.jar
2017-12-26
greenplum/postgresql驱动包:greenplum-1.0.jar
2017-12-26
elasticsearch或kafka的数据抽取工具:logstash-5.6.1
2017-12-02
elasticsearch管理工具:kibana-6.0.0-linux-x86_64.tar.g
2017-12-02
elasticsearch管理工具:kibana-5.6.1
2017-12-02
elasticsearch-analysis-ik-6.0.0.zip和analysis-pinyin-6.0.0.zip
2017-12-02
elasticsearch-analysis-ik-5.6.1和analysis-pinyin-5.6.1
2017-12-02
Jenkins插件:Publish Over SSH
2022-02-15
jna-3.0.9.jar和examples.jar
2020-04-15
java使用url发送post和get请求:HttpConnUtils.jar
2019-12-13
logstash-template模板:logstash.json
2019-06-14
Elasticsearch5.x Java API手册
2019-06-14
kibana-5.6.1-linux-x86_64.tar.gz
2019-05-25
Hadoop+Spark生态详解.zip
2019-05-24
rocketmq-starter,客户端开发启动项目包
2019-01-25
阿里云rocketmq消息队列对接demo
2019-01-24
windows版本jdk1.8:jdk-8u152-windows-x64
2018-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人