- 博客(257)
- 资源 (6)
- 收藏
- 关注
原创 【SpringBoot】文件服务公共组件
实现自动配置添加spring.fatoriesorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.demo.file.storage.config.oss.OssAutoConfiguration,\ com.demo.file.storage.config.fastdfs.FastdfsAutoCo...
2020-04-24 09:56:06
665
原创 【JVM】代码的执行
编译当我们写了一个Java Demo程序,使用maven打包成demo.jar之后,实质上我们是把java源文件通过编译器变成了相应的class文件,也就是字节码文件。即:.java文件 ——> 编译器编译 ——> .class文件一些思考:为什么要有编译这个动作?是因为我们写的代码是高级语言,而不是机器所能识别的01机器码,通过编译转换成机器可识别的机器码,然后机器就可...
2020-04-06 18:28:51
513
1
原创 【SpringBoot】限制IP访问频率
引言显示中存在恶意ip频繁请求情况,本文通过自定义注解+拦截器实现限制ip访问的频率 实现1. 添加pom依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifact...
2020-03-23 12:08:13
4743
6
原创 【Java】时区问题
问题描述在新搭建的环境中数据库数据的时间异常,慢了8个小时查询数据库时间 select now();,输出正常程序直接输出时间,时间正常java.util.Date now = new java.util.Date();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateStr = d...
2020-03-17 18:13:23
507
2
原创 【JVM】启动参数
分类Java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 标准参数- client:设置jvm使用client模...
2020-03-16 21:36:57
545
原创 【Grafana】介绍
概念grafana 用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。 安装docker模式# 启动grafana容器docker run -d -p 3000:3000 --name=grafana grafana/grafana解压模式# 下载并解压wget https://dl.grafan...
2020-03-09 17:12:15
1047
原创 【Prometheus】介绍
概念Prometheus 是一套开源的系统监控报警框架。特点:强大的多维度数据模型灵活而强大的查询语句(PromQL):在同一个查询语句,可以对多个 metrics 进行乘法、加法、连接、取分数位等操作易于管理: Prometheus server 是一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储高效:平均每个采样点仅占 3.5 bytes,且一个 Prometheu...
2020-03-09 15:41:25
461
原创 【Springboot】Actuator
概念Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪,Bean加载情况,帮助我们监控和管理Spring Boot应用。 依赖<dependeccies> <dependency> <groupId>org.springframework.boot</groupId&g...
2020-03-09 11:22:26
299
原创 【BlockChain】入门资料
基础知识区块链是什么https://ethfans.org/posts/wtf-is-the-blockchainhttps://ethfans.org/posts/blockchain-for-beginners-what-is-blockchain-just-7-step账户、交易、Gas 和区块 Gas Limithttps://ethfans.org/posts/accounts...
2019-09-05 08:46:33
646
原创 【Mysql】常用操作
Ubuntu 安装安装mysql:sudo apt-get install mysql-client mysql-server参考:https://blog.youkuaiyun.com/yinjianxiang/article/details/76861719 Ubuntu 卸载查看依赖:dpkg --list | grep mysql卸载: sudo apt-get remov...
2019-05-04 16:39:27
393
原创 【BlockChain】以太坊基础知识
一、文件说明genesis.json 文件{ "config": { "chainId": 1000, --- 区块链的ID,在geth命令中的 --networkid 参数需要与chainId的值一致 "homesteadBlock": 0, --- Homestead 硬分叉区块高度,不需要关注 "eip155Block": 0, ---...
2018-12-13 14:38:26
1046
2
原创 【Linux】日常命令
查看磁盘、文件大小df -h : 查看磁盘占用情况du -sm ./* : 查看当前目录下文件大小,单位M查看端口lsof -i:端口号 : 查看某一端口的占用情况netstat -tunlp : 用于显示tcp,udp的端口和进程等相关情况...
2018-12-12 19:20:15
537
1
原创 【Linux】Shell脚本
特殊变量名称说明$0脚本名称$1-9脚本执行时的参数1到参数9$?脚本的返回值$#脚本执行时,输入的参数的个数$@输入的参数的具体内容(将输入的参数作为一个多个对象,即是所有参数的一个列表)$*输入的参数的具体内容(将输入的参数作为一个单词)@与@与@与*的区别:$@与$*都可以使用一个变量来来表示所有的参数内容,但这两个变...
2018-12-12 12:00:35
508
1
原创 【IDE】IDEA配置Go插件
1. IEDA安装go插件下载地址: https://plugins.jetbrains.com/plugin/9568-go安装方式: File -> Setting -> Plugins -> Install plugin from disk -> restart IDEA 2. 系统安装go语言环境下载地址: https://golang.goog...
2018-12-03 15:23:18
1292
1
原创 【Linux】Ubuntu安装使用Navicat
1.下载安装Navicat官网地址:http://www.navicat.com.cn/products2.运行Navicatnohup sh /opt/navicat/navicat121_premium_cs_x64/start_navicat > nohup.out &也有制作图标的办法:https://www.aliyun.com/jiaocheng...
2018-11-19 13:40:31
1412
1
原创 【MySQL】主从复制问题与监控
&nbsp;引言在主从复制初期,出现了各种问题,因为主从数据库不是同时搭建的,所以需要动态同步,与此同时,主数据库的表结构还这个过程中还在做修改,导致了一系列问题&nbsp;主从复制数据不一致同步1.把Master上该数据库备备份出来: mysqldump -uroot -p discuz &gt; /data/20150611.sql 2.在Slave的mysql中执行: m...
2018-11-18 22:46:48
602
1
原创 【Linux】服务器安全使用
背景Root权限泛滥,操作水平不同,员工对各服务器熟悉程度不同,会使服务器存在很大不稳定性,以及操作安全隐患 一、手动管理账号和权限将不同职能员工分为不同的组建立账号账号分为三种级别:初级、高级、经理,对应不同资源的查看、编辑、操作权限专人统一管理账号,账号申请需要审批流程优点:直接可以进行设置缺点:人工进行操作设置,操作维护成本高参考案例:https://blog...
2018-10-21 13:31:31
638
1
原创 【MySQL】主从复制搭建
前言MySQL能够将一个 MySQL Server的 Instance 中的数据完整的复制到另外一个 MySQL Server 的 Instance 中,虽然复制过程并不是实时而是异步进行的,但是延时非常之少原理方面点击:https://blog.youkuaiyun.com/Francis123580/article/details/80809596&nbsp;搭建步骤1. 修改主服务器配置添...
2018-10-21 11:31:44
1046
1
原创 【Linux】多实例安装mysql
前言有时候我们需要在单机安装启动多个mysql,这里个人不建议因为并不好安装,过程中遇到的各种问题会耽误很多时间另外,mysql的不同版本,linux的不同版本也会带来各种问题&amp;amp;amp;nbsp;搭建过程1. 准备工作安装libaio:sudo apt-get install libaio-dev解压tar:sudo tar -xvf mysql-.......tar.gz授权、重命名:...
2018-10-21 11:04:10
601
原创 【Linux】数据备份
前言为了保障服务器上的资料的安全,我们需要定期进行备份本文介绍本地备份和异地备份,通过对服务器进行设置和写脚本来实现&amp;nbsp;备份步骤1. 编写脚本#本机备份WEEKDAY=`date +%w`SOURCE_DIR=&quot;/data&quot;BCK_DIR=&quot;/backup/temp&quot;DATE=`date +%F`#每周一进行备份if [
2018-10-21 09:16:34
1104
原创 【SpringBoot】热部署
spring-boot-devtools 方式pom文件&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-devtools&lt;/artifactId&gt; &
2018-10-03 20:45:04
2384
1
原创 【Jenkins】自动化部署
概念Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。&amp;nbsp;Jenkins 安装网上下载Jenkins.war包;下载地址:https://jenkins.io/download/war包导入到tomcat的webapps目录下启动tomcat,执行bin目录下的s...
2018-10-03 16:35:18
673
原创 【MySQL】索引
&nbsp;索引类型B-Tree 索引概念B-Tree意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同,B-Tree从索引的根节点开始搜索,根节点槽中存放了指向子节点的指针,通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点 B-Tree索引适用于全键值、键值范围或键前缀查找(最左前缀),因为节点有序,可以用于查询中 order by 操作有效...
2018-09-17 21:51:53
222
原创 【Java】线程池
概念线程池好处降低资源消耗:重复利用线程,从而降低创建和销毁造成的消耗提高响应速度:任务到达时,可以不需要等到线程创建就能立即执行提高线程的可管理性:线程会耗尽资源,降低稳定性,线程池可以统一分配、调优、监控线程池组成线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务工作线程(PoolWorker):...
2018-09-15 21:48:53
399
原创 【RabbitMQ】进阶总结
&nbsp;消息传递情况mandatorymandatory=true,如果交换器无法根据自身的类型和路由键找到一个符合条件的队列,RabbitMQ会调用 Basic.Return 命令将消息返回给生产者mandatory=false,上述情形下,RabbitMQ 将消息直接丢弃生产者通过调用 channel.addReturnListener 添加监听器接收返回结果...
2018-09-11 00:06:42
377
原创 【RabbitMQ】开发
连接 RabbitMQConnectionFactory factory = new ConnectionFactory();factory.setUsername(USERNAME);factory.setPassword(PASSWORD);factory.setVirtualHost(virtualHost);facotry.setHost(IP_ADRESS);...
2018-09-10 11:45:10
588
原创 【RabbitMQ】模型架构
&nbsp;MQ 作用解耦:通过基于数据的接口层,让不同的模块各自扩展修改,实现解耦冗余:MQ 可以把数据进行持久化直到它们被完全处理,规避了数据丢失的风险扩展性:通过解耦可以方便增加应用的处理过程,从而提高消息入队和处理的效率,实现扩展削峰:MQ可以支撑关键组件支撑突发访问压力,缓冲上下游流量差,实现削峰可恢复性:部分组件失效时,加入消息队列的消息仍然可以在系统恢复后处理...
2018-09-10 09:21:10
990
1
原创 【Redis】缓存设计
缓存的收益和成本收益加速读写:缓存是全内存的,可以加速读写,优化用户体验降低后端负载:减少后端访问量和复杂计算,降低了负载成本数据不一致:缓存层和存储层的数据存在着一定时间窗口的不一致性,时间窗口和更新策略有关代码维护成本:需要同时处理缓存层和存储层的逻辑运维成本:例如Redis Cluster,增大了运维成本 缓存更新策略LRU / LFU /...
2018-09-09 09:52:56
1044
原创 【Redis】集群
Redis 数据分区Redis Cluster 采用虚拟槽分区,所有键根据哈希函数映射到 0 - 16383 整数槽内,每一个节点负责维护一部分槽以及槽所映射的键值数据特点:解耦数据和节点之间的关系,简化了节点扩容和收缩难度节点自身维护槽的映射关系,不需要客户端或者代理服务维护槽分区元数据支持节点、槽、键之间的映射查询,用于数据路由、在线伸缩等场景&nbsp;集群功...
2018-09-08 23:32:27
274
原创 【Redis】哨兵
Redis Sentinel 高可用背景:主从复制问题主节点出现问题后,需要手动将一个从节点晋升为主节点,修改应用方的主节点地址,命令其它从节点去复制新的主节点主节点的写能力受到单机的限制主节点的存储能力受到单机的限制解决:Redis Sentinel 实现Redis Sentinel 是一个分布式架构,包含若干个 Sentinel 节点和 Redis 数...
2018-09-08 11:09:58
209
原创 【Redis】内存
内存消耗Redis进程内消耗包括:自身内存 + 对象内存 + 缓冲内存 + 内存碎片 其中自身内存消耗非常小,占3M左右,主要是其它3种内存内存消耗划分对象内存是Redis内存占用最大一块缓冲内存包括 客户端缓冲、复制积压缓冲区、AOF缓冲区内存碎片:频繁更新操作、大量过期键删除会造成内存碎片,通过数据对齐和安全重启可以降低碎片子进程内存消耗Redi...
2018-09-07 21:37:36
253
原创 【Redis】阻塞问题
Redis是单线程架构,在高并发的场景下,如果出现阻塞,会有严重后果,以下就是对阻塞问题的分析排查和解决 内在原因API 或 数据结构 使用不合理排查: 发现慢查询:执行 slowlog get {n}发现大对象:执行 redis-cli -h {ip} -p {port} --bigkeys解决:解决慢查询:调整命令为低算法度命令...
2018-09-07 18:39:26
1562
原创 【Redis】Replication
配置复制配置文件添加:slaveof {masterHost} {masterPort},随启动生效redis-server启动命令后:--slaveof {masterHost} {masterPort},生效直接使用命令:slaveof {masterHost} {masterPort},生效 其它命令查看复制状态:info replication断开复制...
2018-09-07 16:50:23
361
原创 【Redis】实用功能
慢查询分析修改配置1.修改配置文件# 超过20ms记录slowlog-slower-than 20000# 存储1000调慢查询记录slowlog-max-len 10002.命令动态修改config set slowlog-slower-than 20000config set slowlog-max-len 1000config rewrite...
2018-09-06 21:15:34
264
原创 【Redis】键管理
单个键管理键重命名(强行):rename key newkey 键重命名(key不存在情况):renamenx key newkey随机返回一个键:randomkey键过期(seconds秒后):expire key seconds 键过期(timestamp后):expire key timestamp查询过期时间(秒级):ttl key 查询过期时间(毫秒...
2018-09-06 11:39:14
239
原创 【JVM】类加载机制
概念类加载机制:JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型类型的加载、连接、初始化都是在程序运行期间完成,增加了性能开销,提高了灵活性每个Class文件代表类或接口在JVM中Class文件是一串二进制的字节流 类加载步骤类从加载到内存到使用完卸载,需要经历 加载 - 连接(...
2018-09-05 21:47:16
266
原创 【JVM】性能调优
调优目标:使用较小的内存占用获得较高的吞吐量或者较低的延迟JVM问题:CPU load过高、请求延迟、tps降低、内存泄漏调优指标:内存占用:程序正常运行需要的内存大小延迟:由于垃圾收集而引起的程序停顿时间吞吐量:用户程序运行时间占用用户程序和垃圾收集占用总时间比值JVM调优参考日志系统运行日志:程序代码打印的日志,描述了代码级别的系统运行轨迹堆栈错误信息:根据堆栈...
2018-09-05 14:57:46
826
原创 【JVM】垃圾收集
垃圾收集 准备引用计数法方法:对象添加一个引用计数器;每增加一个引用,计数器加1;当引用失效时,计数器减一问题:无法解决对象之间相互循环引用问题可达性分析算法方法:从GC Roots节点向下搜索,产生一系列引用链,如果对象到GC Roots没有任何引用链,则证明该对象不可用扩展: JDK1.2后引用分为 强引用、软引用(二次回收)、弱引用(下一次GC前)、虚引用(GC通知...
2018-09-04 17:14:58
279
原创 【JVM】内存区域 & 对象创建定位
运行时数据区域Java虚拟机在执行Java程序中把内存划分为若干个不同的数据区域 不同的区域有各自的用途,创建时间和销毁时间 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码各个线程共享区域别名:非堆、永久代去永久代原因字符串在永久代中,容易出现性能问题和内存溢出类和方法的信息难以确定大小,太小导致永久代溢出,太大导致老年代溢出永久...
2018-09-04 11:35:48
275
SecureCRT-7.3.2-752.ubuntu13-64.x86_64
2019-05-01
Jedis-Util
2018-08-13
23种设计模式_Java实现
2018-08-12
FastDFSClient
2018-08-12
SoapUI-5.2.1
2018-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人