- 博客(67)
- 资源 (10)
- 收藏
- 关注
原创 SpringBoot与quartz框架实现分布式定时任务
目录前言一、介绍1.Quartz 核心概念2.原理图二、使用步骤1.引入依赖2.在项目中添加quartz.properties文件(不添加该文件该框架会加载自带的properties文件)3.在数据库中创建quartz相关的表(建议与业务隔离库)4.项目结构5.代码配置1)多数据源配置 - DataSourceConfig:2) 配置文件 - application.yml:3) Quartz配置 - QuartzConfig:4) 多数据源 Mybatis配置(其一) - DemoMybatisConfi
2020-10-30 13:53:42
2640
原创 jdk-jmap命令
jmap命令详解jmap是JVM自带的堆内存转储(heap dump)生成工具,可以用来分析某JVM进程的堆内存占用,以及所有对象的概况。其用法说明如下所示。-heap:打印堆配置信息和使用概况在Heap Configuration一节,会输出与堆相关的JVM参数。在Heap Usage一节,会输出新生代(Eden区、Survivor From/To区)和老生代的容量、用量和空闲量。除此之外,还会输出采用的垃圾收集器,以及字符串常量池中驻留的字符串数量、大小等。-histo:生成类的实例统计直方
2020-09-09 16:52:36
552
原创 jdk-jstack命令
jstack 命令详解jstack命令用来生成JVM中的线程快照(thread dump),其中包含有每个线程的方法调用栈以及其状态、锁信息等。其用法说明如下所示。说明一下三个参数的含义:-F:如果正常执行jstack命令没有响应(比如进程hung住了),可以加上此参数强制执行thread dump。-m:除了打印Java的方法调用栈之外,还会输出native方法的栈帧。-l:打印与锁有关的附加信息。使用此参数会导致JVM停止时间变长,在生产环境需慎用。jstack是在线程级别定位JVM问题的
2020-09-09 16:39:29
718
原创 jdk-jps命令
查看Java进程:jps用法介绍篇:jps命令:显示所有进程号和短的类名称Jps –q 命令:只显示进程号Jps –l 用于传输主函数的完整路径Jps –v 显示传递给Java虚拟机的参数(感觉这个命令才是完美,把虚拟机的一些参数全都打印出来)...
2020-09-09 16:16:07
565
原创 jdk-jstat命令查看jvm的GC情况 (以Linux为例)
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意!!!:使用的jdk版本是jdk8.类加载统计:Loaded:加载class的数量Bytes:所占用空间大小Unloaded:未加载数量Bytes:未加载占用空间Time:时间编译统计Compiled:编译数量。Failed:失败数量Invalid:不可用数量Time:时间FailedType:失败类型Failed
2020-09-09 15:03:20
590
原创 Codis与RedisCluster的原理详解
把Redis分为三个部分,分别是客户端、主节点以及从节点,如果从节点要同步主节点的数据,它首先会发Sync指令给主节点,主节点收到指令之后会执行BGSAVE命令生成RDB文件,这个RDB文件指的是快照文件,它是Redis两种备份方式的其中一种,另一种叫AOF,它的原理是将所有的写入指令存入文件,mysql的binlog原理是一样的。如果主节点在生成RDB的过程当中,客户端发来了写入指令,这个时候主节点会把指令全部写入缓冲区,等RDB生成完了,会把RDB文件发送给从节点,最后再把缓冲区的指令发送给从节点。.
2020-09-01 13:34:35
549
原创 Sentry教程
Sentry介绍无论测试如何完善的程序,bug总是免不了会存在的,有些bug不是每次都会出现,测试时运行好好的代码可能在某个用户使用时就歇菜了,可是当程序在用户面前崩溃时,你是看不到错误的,当然你会说:”Hey, 我有记日志呢”。 但是说实话,程序每天每时都在产生大量的日志,而且分布在各个服务器上,并且如果你有多个服务在维护的话,日志的数量之多你是看不过来的吧。等到某天某个用户实在受不了了,打电...
2020-01-10 16:46:35
2274
2
原创 JAVA核心面试知识-数据库(十四)
14.1.1. 存储引擎14.1.1.1. 概念数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同 的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Mem...
2019-12-20 10:54:35
380
原创 JAVA核心面试知识-RabbitMQ(十三)
13.1.1. 概念RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可...
2019-12-20 10:10:55
437
原创 JAVA核心面试知识-Kafka(十二)
12.1.1. Kafka 概念Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是Apache 的开源项目。broker:Kafka 服务器,负责消息存储和转发topic:消息类别,Kafka 按照topic 来分类消息partition:topic 的分区,一个 topic 可以包含多个 partitio...
2019-12-20 10:03:05
392
原创 JAVA核心面试知识-Zookeeper(十一)
Zookeeper 概念Zookeeper 是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。Zookeeper 提供了一个类似于 Linux 文件系统的树形结构(可认为是轻量级的内存文件系统,但只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与通知机制。11.1.1. Zookeeper 角色Zookeeper 集群是一个基于主...
2019-12-20 09:57:36
447
原创 JAVA核心面试知识-日志(十)
10.1.1. Slf4jslf4j 的全称是 Simple Loging Facade For Java,即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如 JDBC 一样,只是一种规则而已。所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger,jdk 自带的 ja...
2019-12-20 09:50:27
423
原创 JAVA核心面试知识-计算机网络(九)
9.1.1. 网络 7 层架构7 层模型主要包括:物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的...
2019-12-19 17:11:49
585
原创 JAVA核心面试知识-Netty 与 RPC(八)
8.1.1. Netty 原理Netty 是一个高性能、异步事件驱动的NIO 框架,基于 JAVA NIO 提供的 API 实现。它提供了对TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果。8.1.2. Netty 高性能在 I...
2019-12-19 16:34:35
706
原创 JAVA核心面试知识-微服务(七)
7.1.1. 服务注册发现服务注册就是维护一个登记簿,它管理系统内所有的服务地址。当新的服务启动后,它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要Service Provider 地址就行了。当下用于服务注册的工具非常多 ZooKeeper,Consul,Etcd, 还有 Netflix 家的 eureka 等。服务注册有两种形式:客户端注册和第三方注册。7.1.1.1. 客户端注...
2019-12-17 17:15:45
789
原创 JAVA核心面试知识-Spring 原理(六)
它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。6.1.1. Spring 特点6.1.1.1. 轻量级6.1.1.2. 控制反转6.1.1.3. 面向切面6.1.1.4. 容器6.1.1.5. 框架集合6.1.2. Spring 核心组件6.1.3. Spring 常用模块6.1.4. Sprin...
2019-12-17 15:55:57
415
原创 JAVA核心面试知识-JAVA 基础(五)
5.1.1. JAVA 异常分类及处理5.1.1.1. 概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。5.1.1.2. 异常分类Throwable 是 Java 语言中所有错误或异常的超类。下...
2019-12-16 10:52:50
311
原创 JAVA核心面试知识-JAVA 多线程并发(四)
4.1.10. 线程基本方法线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等。4.1.10.1. 线程等待(wait)调用该方法的线程进入 WAITING 状态,只有等待另外线程的通知或被中断才会返回,需要注意的是调用 wait()方法后,会释放对象的锁。因此,wait 方法一般用在同步方法或同步代码块中。4.1.10.2. 线程睡眠...
2019-12-11 15:37:22
1153
原创 spring boot集成Springfox-Swagger2
1.添加maven依赖<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagg...
2019-12-02 13:51:09
1324
原创 excel自定义表头导入
我用的maven是:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version></dependency><depen...
2019-12-02 13:33:23
415
原创 学习与使用 JAVA 1.8 中的 OPTIONAL类
从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 ...
2019-11-27 22:26:38
264
原创 JAVA核心面试知识-JAVA 多线程并发(三)
JAVA 多线程并发4.1.1. JAVA 并发知识库4.1.2. JAVA 线程实现/创建方式4.1.2.1. 继承Thread 类Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行 run()方法。pub...
2019-11-20 11:28:04
456
原创 JAVA核心面试知识-JAVA集合(二)
JAVA集合3.1. 接口继承关系和实现集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口3.2. ListJava 的 Li...
2019-11-04 16:44:39
212
原创 JAVA核心面试知识-JVM(一)
JVM(一)基本概念JVM是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。(二)运行过程:我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器...
2019-10-29 13:26:55
297
原创 Dockerfile参考demo(三)
微服务的Dockerfile文件FROM 127.0.0.1:8080/demo:baseWORKDIR /app/message-pushADD . /app/message-pushRUN mvn clean && \ mvn package spring-boot:repackage -Dmaven.test.skip=true &&...
2019-10-11 16:51:40
859
原创 Dockerfile部署vue项目参考demo(二)
国内源demoFROM 192.168.24.5:5000/ein-ent/web-ui:baseCMD "Hello docker!"COPY . /lain/app/WORKDIR /lain/app/#RUN ( yarn --prefer-offline ) && ( yarn build ) && ( rm -rf node_modu...
2019-10-11 16:48:23
1569
原创 Dockerfile参考demo(二)
基础镜像:搭建java环境和maven环境并设置时区等,注意构建的时候把文件名字更改成Dockerfile才能构建(没有后缀)FROM openjdk:8-jdk-alpineADD settings.xml /usr/local/WORKDIR /usr/local/RUN wget http://apache-mirror.rbc.ru/pub/apache/maven/ma...
2019-10-11 16:33:53
852
原创 Spring Boot 使用WebSocket、SockJS、STOMP实现消息功能(三)
一、介绍这里主要基于上一篇介绍一下基于SocketJS+Stomp来实现的的长连接。我借鉴了其他的一些博客,只是把我用的知识总结在了一起方便我自己以后回顾。二、WebSocket概念概述:WebSocket协议提供了通过一个套接字实现全双工通信的功能。除了其他的功能之外,它能够实现Web浏览器和服务器之间的异步通信。全双工意味着服务器可以发送消息给浏览器,浏览器也可以发送消息给服务器...
2019-10-11 16:23:09
4465
3
转载 curl常用用法
-v显示请求详细信息curl www.baidu.com -v1-X 指定请求方式GET请求curl -X GET http://localhost:8080/search?data=123 # -X GET是可选的1POST请求curl -X POST -d"data=123&key=456" http://localhost:8080/search -v1由于-...
2019-09-24 16:06:21
259
原创 Spring Boot 使用WebSocket、SockJS、STOMP实现消息功能(二)
一、介绍在我学习websocket期间,有两种实现手段。第一种是用原生的代码来实现websocket消息推送,第二种就是基于SocketJS+Stomp来实现的。这里主要讲一下第一种的实现:(一)WebSocket简介 WebSocket是一种通讯协议,通过单个TCP连接提供完全多工通讯管道。大白话就是:WebSocket协议相对于Http协议来说,它能在一段时间内一直保持连接,而Ht...
2019-09-24 15:51:35
960
转载 Vue项目在Docker的自动化部署
操作系统:CentOS部署环境:DockerCI/CD工具:Jenkins1.环境配置安装Jenkins:Centos安装Jenkins安装Docker:Centos安装Git、DotNet、Docker2.Github创建仓库https://github.com/longtaosu/Vue2DockerDemo3.本地初始化Vue项目初始化过...
2019-09-23 15:20:55
2668
转载 Dockerfile部署vue项目参考demo(一)
1.先将vue项目通过npm run build打包2.将整个dist文件拷贝到 /usr/share/路径下3.并且在/usr/share/路径下创建Dockerfile # 设置基础镜像 FROM nginx # 定义作者 MAINTAINER longdb # 将dist文件中的内容复制到 /usr/share/ngin...
2019-09-21 14:44:52
1029
原创 Spring Boot 使用WebSocket、SockJS、STOMP实现消息功能(一)
1 前言本文主要剖析了 WebSocket 的原理,为后续代码实战做一个说明吧。2 WebSocket 与 HTTPWebSocket 协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。HTTP 有 1.1 和 1.0 之说,也就是所谓...
2019-09-18 16:25:30
823
转载 制作镜像并PUSH
Pull如果是Public的(docker官方仓库和加速器)直接docker pull ubuntu:16.04 即可若是私有的首先登陆docker login 仓库Host之后docker pull ubuntu:16.04 制作镜像通过操作-commit通过Dockerfile1->写Dockerfile 2->docker b...
2019-09-05 16:33:35
171
原创 JAVA核心面试知识-分布式缓存(十五)
15.1 前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。15.2 缓存穿透缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询)。这样请求就绕过缓存直接查数据库,这也是经常提的缓存命中率问题。15.2.1 解决方案有很多种方...
2019-08-08 09:17:31
185
原创 SpringBoot使用Docker快速部署项目
1.简介建议阅读本文最好对Docker有一些了解首先我们先了解一下Docker是什么Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用...
2019-08-08 09:07:30
255
原创 OAuth2 token个人笔记
1.spring security oauth2简易的分为三个步骤 配置资源服务器 配置认证服务器 配置spring security 2.oauth2根据使用场景不同,分成了4种模式 授权码模式(authorization code) 简化模式(implicit) 密码模式(resource owner password credentia...
2019-07-29 16:38:09
1081
原创 Dockerfile参考demo(一)
FROM java:8 EXPOSE 8080 VOLUME /slm ADD boot-docker-0.0.1-SNAPSHOT.jar boot-docker.jar RUN sh -c 'touch /boot-docker.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.secur...
2019-07-12 09:21:29
706
转载 从零开始的Spring Security Oauth2(三)
上一篇文章中我们介绍了获取token的流程,这一篇重点分析一下,携带token访问受限资源时,内部的工作流程。@EnableResourceServer与@EnableAuthorizationServer还记得我们在第一节中就介绍过了OAuth2的两个核心概念,资源服务器与身份认证服务器。我们对两个注解进行配置的同时,到底触发了内部的什么相关配置呢?上一篇文章重点介绍的其实是与身份认...
2019-07-09 20:33:33
524
1
转载 从零开始的Spring Security Oauth2(二)
本文开始从源码的层面,讲解一些springSecurity Oauth2的认证流程。本文较长,适合在空余时间段观看。且涉及了较多的源码,非关键性代码以…代替。获取token上一篇博客中我们尝试使用了password模式和client模式,有一个比较关键的endpoint:/oauth/token。从这个入口开始分析,spring security oauth2内部是如何生成token的。...
2019-07-09 20:31:47
854
mysql客户端Linux RPM包
2024-06-04
oauth2的sql脚本.rar
2020-11-16
国密加解密算法SM4
2020-07-29
demoexcel.zip
2019-07-01
spring-boot-tutorials-master.zip
2019-06-19
Mybatis-Generator.rar
2019-06-19
kibana-6.2.4-x86_64.rpm
2019-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人