自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Always on the road

Follow your heart and try hard(放弃不难,但坚持一定很酷。 —— 东野圭吾《解忧杂货店》)

  • 博客(138)
  • 资源 (5)
  • 收藏
  • 关注

原创 centos 服务报Error adding file watcher ;too many open files

经过百度发现需要修改系统参数max_user_instances和max_user_watches修改如下:vim /etc/sysctl.conffs.inotify.max_user_watches=524288fs.inotify.max_user_instances=8192cat /proc/sys/fs/inotify/max_user_watchescat /proc/sys/fs/inotify/max_user_instancessysctl -p ..

2022-04-20 10:22:12 539

原创 记一次centos修改配置的原子操作

需求:有一个第三方服务,它的配置文件为a.txt;此时我们的java程序需要根据用户需求生成新的配置并写入到第三方服务的配置文件中去。首次实现:使用java在生成合法的配置信息,以流的形式写入到文件去。缺陷:第三方服务每隔1m会去加载配置查看是否更新,如果去加载配置的时候正在写入,那么就会读取不成功,从而导致服务配置更新失败。主要的问题点就在于配置文件的更新不是原子操作。解决思路:此时我们就需要一个原子性的操作来帮我们完成配置文件的更新。此时对熟悉的命令我们会想到cp、mv 此时

2021-11-27 12:41:06 638

原创 grafana图表使用ifream内嵌到其他系统频繁登录问题

背景:grafana图表需要集成到别的系统中,为了保留grafana的所有功能,这边选择了ifream的方式。问题现象:ifream引用grafana图表出现登录成功字样后重新跳转到登录页面。查看grafana日志为:t=2021-10-27T15:26:23+0800 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=

2021-10-27 15:44:21 1973

原创 prometheus自身指标

go_gc_duration_seconds 垃圾回收周期暂停时长go_memstats_alloc_bytes 已分配且仍在使用的字节数go_memstats_alloc_bytes_total 分配的总字节数,即使已释放go_memstats_buck_hash_sys_bytes 分析桶哈希表使用的字节数go_memstats_frees_total 空闲内存go_memstats_gc_cpu_fraction 自程序启动以来,GC 使用的该程序可用 C...

2021-08-27 17:26:58 1723

原创 Prometheus rate和irate查询实现

rate该函数用来计算某个指标在最近一个区间时间内的变化率。比如说,Prometheus每15秒采集一次数据,当某个指标metric1的数据采集如下:timestamp value 15:00:00 10000 15:00:15 10030 15:00:30 10045 15:00:45 10090 假设当前时间为15:00:50,我们执行PromQL语句rate(metric1[1m]),该语句的返回值为2,计算过程如下:Prometheu

2021-08-23 19:10:36 1904

原创 prometheus 查询30d数据出现query processing would load too many samples问题

问题现象:prometheus查询长时间段的数据时出现query processing would load too many samples的问题,导致数据查询不出来。问题原因:prometheus为了对自身进程进行保护,进行了限制,默认为50000000.可以通过--query.max-samples参数进行调整。解决方式:1.根据实际内存,对query.max-samples参数进行调整,谨慎操作。2.进行record rule规则的配置。在此对record rule规则配置进

2021-08-21 16:47:49 1728

原创 spring boot配置文件加载顺序

Spring Boot能从多种属性源获得属性,包括如下几处:命令行参数 java:comp/env里的JNDI属性 JVM系统属性 操作系统环境变量 随机生成的带random.*前缀的属性(在设置其他属性时,可以引用它们,比如${random. long}) 应用程序以外的application.properties或者appliaction.yml文件 打包在应用程序内的application.properties或者appliaction.yml文件 通过@PropertySou...

2021-08-07 15:14:43 81

原创 Redis(四)-redis-跳跃表

一、概述跳跃表是一种有序数据结构,通过每个节点中维持多个指向其他节点的指针,从而达到快速访问的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找。跳表在redis中有两个地方有用到,一个是实现有序集合键,另一个是集群节点中用作内部数据结构。二、结构Redis的跳跃表分为Node和list两个结构。 跳跃表节点 ...

2021-04-16 14:32:08 97

原创 Redis(三)-redis-字典

一、概述字典又称为符号表、关联数组或映射,是一种用于保存键值对的的抽象数据结构。字典使用哈希表作为底层实现,一个哈希表中包含多个哈希表节点,每个哈希表节点保存了字典中的一个键值对。二、结构哈希表 Table属性为一个数组,每个元素都指向一个哈希表节点哈希表节点 Next属性是指向另一个哈希表节点的指针,这个指针将多个哈希值相同的键值对连接在一起,以此来解决键冲...

2021-04-16 11:37:00 109

原创 Redis(二)-redis基本数据类型list(链表)

一、概述链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。链表在redis中的应用非常广泛,列表键的底层就是链表。发布订阅、慢查询、监视器等功能也用到了链表。二、数据结构链表节点 一个链表包含多个链表节点,多个listNode可以通过prev和next组成双端链表。链表 List结构为链表提供...

2021-04-16 11:27:18 147

原创 Redis(一)-redis基本数据类型string(简单动态字符串SDS)

redis数据类型概述Redis数据库由键值对组成,每个键值对都是由对象组成的,键为字符串对象,值可以为字符串对象、list列表对象,哈希对象hash、集合对象set、有序集合sorted set。redis-SDSsds-概述Redis没有使用C语言传统的字符串表示,而是自己构建了一种简单动态字符串,作为redis的默认字符串表示。Redis中,c字符串只会作为字符串字面量(用在一些无需对值进行改变的地方)。其他时候会使用SDS来表示字符串值。例如set msg ”aa“将会创建键值对,键

2021-04-07 09:55:44 183

原创 react 新旧生命周期对比

旧版生命周期1. 初始化阶段: 由ReactDOM.render()触发---初次渲染constructor() 构造器 componentWillMount() 组件将要挂载的钩子 render() componentDidMount() 组件挂载完毕的钩子 ===常用2. 更新阶段: 由组件内部this.setSate()或父组件重新render触发shouldComponentUpdate()...

2021-03-01 10:03:31 255 1

原创 Prometheus 四种指标类型

prometheus 包含四种核心的指标类型:Countercounter 是一个累积计数的指标,仅支持增加或者重置为0(只增不减 )。例如:可以用来统计服务请求的数量,任务完成数量,或者出错的数量。Java的使用如下:import io.prometheus.client.Counter;class YourClass { static final Counter requests = Counter.build() .name("requests_total").hel

2021-01-12 19:51:46 4960

原创 Prometheus 告警配置以及抑制规则inhibit_rules 说明

1.在prometheus.yml配置文件中进行告警规则文件的配置:global:# Rule files specifies a list of globs. Rules and alerts are read from# all matching files.rule_files: [ - <filepath_glob> ... ]例如: - rules/br_alerts.yml rules为相对路径2.在告警的规则文件中进行具体的告警规则配置## Ale

2021-01-12 17:53:59 6234

原创 java String 格式的版本如何进行比较?

经常会遇到String格式的版本比对问题,一下代码可以方便的进行比对://String版本对比,仅适用于数字和.的版本 新版本大于老版本返回1,否则返回-1 相等返回0 public static int compare2(String newVersion,String standardVersion){ int i=0,j=0,x=0,y=0; int v1Len=newVersion.length(); int v2Len...

2020-12-15 20:04:45 327

原创 Prometheus配置详解

prometheus配置文件说明 ,官网地址:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config全局整体分为六个部分,具体配置如下:global: # How frequently to scrape targets by default. [ scrape_interval: <duration> | default = 1m ] # How ..

2020-12-07 11:04:04 1508

原创 Prometheus 重新加载配置

在生产环境中,prometheus经常会存在修改配置的情况,那么就需要在不停止服务的前提下进行重新加载配置,有如下两种解决方式:添加--web.enable-lifecycle参数,启动服务 kill -1 PID # 重载配置或者访问 /-/reload 接口...

2020-12-06 16:59:13 3904

原创 Prometheus 修改targets端口

修改目的:打开prometheus,选择targets可以看到下面的页面,目的就是修改红框中的端口。 修改方式:修改prometheus.yml 配置文件,增加如下配置: 配置详细解释:relabel_configs 重新标记配置 - source_labels 源标签 regex 根据此正则表达式取源标签的内容 target_label 目的标签 replacement 操作...

2020-10-10 18:45:53 1997 1

原创 shell eval和反引号`的区别

eval和反引号都可以将一个字符串当作命令行来使用,例如:当执行的命令有多行返回结果时,eval是可以得到正确的结果的,反引号只能得到第一行结果,还会被其他行覆盖,得到很乱的一个结果。...

2020-09-30 14:34:26 194

原创 记一次docker 容器起不来问题

问题:项目以docker容器的方式进行部署,负责前端的docker容器webui一直频繁启动,为启动失败的状态。问题分析:启动方式为docker run --restart=always,这个配置决定了它的重复启动,但是每次都是失败的 docker logs查看webui容器的日志,看不到任何信息,说明没走到这一步就失败了 通过/var/log/messages查看系统日志,也并没有什么收获 可以确定的是,在本地环境是ok的,在客户环境起不来,那么就一定和环境有关系。既然代码没有问题,那么会不

2020-08-24 09:35:11 3983

原创 Mysql系列(十六)—Msql之学习路线

2020-08-23 22:13:39 111

原创 Mysql系列(十五)—Msql之EXPLAIN

在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。-- 实际SQL,查找用户名为Jefabc的员工select * from emp

2020-08-23 18:28:38 106

原创 Mysql系列(十四)—Msql之性能调优

性能调优此次讨论不包含数据库sql本身的调优,更多偏向环境以及参数设置,具体包含一下几个层面:选择合适的CPU 内存的重要性 硬盘对数据库性能的影响 合理的设置RAID选择合适的CPU首先要明确数据库的应用类型,一般分为两大类,OLTP(在线事务处理)、OLAP(在线分析处理)。Innodb存储引擎一般都应用于OLTP的数据库应用,这种应用的特点如下:用户操作的并发量大 事务处理的时间一般较短 查询的语句比较简单,一般都走索引 复杂查询较少可以看出OLTP本身对CPU的要求并不是

2020-08-23 16:58:35 126

原创 Mysql系列(十三)—Msql之备份

根据不同的类型来划分备份的方法。根据备份的方法不同可以将备份分为Hot Backup(热备) Cloud Backup(冷备) Warm Backup(温备)热备指数据库运行中直接备份,对正在运行的数据库操作没有任何影响。官方称之为在线备份(online backup).冷备是指备份操作在数据库停止的情况下,这种备份最为简单,一般只需要复制数据库相关的物理文件即可。官方称之为离线备份(offline backup)。温备同样在数据库运行中进行的,但是会对当前数据库的操作有影响,如加一个全局读锁以保

2020-08-23 16:23:40 184 1

原创 Mysql系列(十二)—Msql之事务

事务是数据库区别于文件系统的重要特性之一。事务会把数据库从一种状态变为另一种状态。在数据库提交工作时,可以确保要么所有的修改都已经保存了,要么所有修改都不保存。InnoDB存储引擎完全符合ACID的特性。ACID分别为原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability)A,原子性原子性是指整个数据库事务是不可分割的工作单位,只有使事务中所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个语句的执行失败,已经执

2020-08-17 22:50:47 232

原创 Mysql系列(十一)—Msql之锁

锁是数据库系统区别于文件系统的一个关键特性,锁机制用于管理对共享资源的并发访问。Lock与latchlatch一般称为闩锁,又可以分为mutex(互斥量)和rwlock(读写锁)。其目的是用来保证并发线程操作临界自资源的正确性,通常没有死锁检测机制。lock的对象是事务,一般在commit或rollback之后进行释放。其是有死锁机制的。 InnoDB存储引擎中的锁锁的类型行锁分为:共享锁(S Lock)、排他锁(X Lock)。如果一个事务已经获得了行...

2020-08-16 18:55:42 134

原创 Mysql系列(十)—Msql之InnoDB索引

InnoDB存储引擎支持以下几种常见的索引:B+树索引全文索引哈希索引这里的哈希索引是前面提到过的自适应哈希索引。为innodb自己视情况而定建立的,不能进行认为干预。B+树索引就是传统意义上的索引。注意的是B不是代表binary,而是代表balance。涉及到的数据结构和算法二分查找法二叉查找树和平衡二叉树可以看到下图的两颗都是二叉查找树,但是因为构建的方式不同。右图的二叉树查找效率就很低了。由此引出了平衡二叉树,在符合二叉查找树的基础上要求任何节点的两个子

2020-08-08 17:19:49 113

原创 Mysql系列(九)—Mysql表

索引组织表在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。如果创建时没有显式的定义主键,那么会有两种策略进行主键的建立。首先判断表中是否有非空唯一索引,如果有,则该列为主键。如果有多个,则按照顺序选择第一个为主键,该处的顺序指定义索引时的顺序而不是建表时的顺序。联合索引则不会被选为主键。 如果不符合条件1,InnoDB自动创建一个6字节大小的指针。查询隐藏主键则为select _rowid from tableInnoDB逻辑存储结构从InnoDB

2020-08-08 15:35:42 209

原创 Mysql系列(八)—Mysql文件

mysql文件具体可以分为:参数文件 日志文件 socket文件 pid文件 Mysql表结构文件 存储引擎文件具体关系和逻辑如下: 写入重做日志的操作不是直接写,而是写入一个重做日志缓冲中,然后按照一定的条件顺序的写入日志文件。从重做日志缓冲往磁盘写入时,是按照512个字节,也就是一个扇区的大小进行写入。因为扇区是写入的最小单位,因此可以保证写入必定是成功的。因此重做日志的写入过程中不需要有doublewrite。 ...

2020-08-08 10:44:56 142

原创 Mysql系列(七)—Msql之InnoDB关键特性

mysql Innodb存储引擎的关键特性包括:插入缓冲 两次写 自适应哈希索引 异步IO 刷新邻接页这些特性为InnoDB存储引擎带来了好的性能和更高的可靠性。插入缓冲Insert BufferInsert Buffer和数据页一样,也是物理页的一个组成部分。在Innodb存储引擎中,主键是行唯一的标识符。通常记录是按照主键递增的顺序进行插入的。因此,插入聚集索引一般是顺序的,不需要磁盘的随机读取。这类情况的插入操作,速度是非常快的。但是并不是所有的主键插入都是顺序的

2020-08-02 15:55:28 197

原创 Mysql系列(六)—Msql之Checkpoint技术

一、简介思考一下这个场景:如果重做日志可以无限地增大,同时缓冲池也足够大,那么是不需要将缓冲池中页的新版本刷新回磁盘。因为当发生宕机时,完全可以通过重做日志来恢复整个数据库系统中的数据到宕机发生的时刻。但是这需要两个前提条件:1、缓冲池可以缓存数据库中所有的数据;2、重做日志可以无限增大因此Checkpoint(检查点)技术就诞生了,目的是解决以下几个问题:1、缩短数据库的恢复时间;2、缓冲池不够用时,将脏页刷新到磁盘;3、重做日志不可用时,刷新脏页。 当数据库发生宕机时,数据

2020-07-29 23:24:45 243

原创 Mysql系列(五)—Msql之Innodb体系结构

Innodb简单体系结构下图展示了 Innodb存储引擎的体系架构,Innodb存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作:维护所有进程/线程需要访问的多个内部数据结构 缓存磁盘上的数据,方便快速读取,同时在对磁盘文件的数据修改之前在这里缓存 重做日志缓冲后台线程的主要工作是负责刷新内存池中的数据,保证缓冲池中的内容缓存的是最近的数据。此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下Innodb能恢复到正常运行状态。 ...

2020-07-27 23:48:44 107

原创 ElasticSearch term查询搜索不到指定的数据

问题现象:match可以搜索到数据而term搜索不到,相同的搜索条件。问题分析:1.首先想到的是两者的区别match 和term区别如下:match:全文搜索, 通常用于对text类型字段的查询,会对进行查询的文本先进行分词操作term:精确查询,通常用于对keyword和有精确值的字段进行查询,不会对进行查询的文本进行分词操作2.由于其区别如上,所以去查看索引的mapping文件,发现我们要找的字段设置如下:默认为text,fields表示对一个字段设置多种索引模式,同一个

2020-06-29 21:56:46 6743

原创 Mysql系列(四)—Mysql连接

连接mysql操作是一个连接进程和mysql数据库实例进行通信,本质上是进程通信。进程通信方式包含管道、命名管道、TCP/IP套接字、UNIX套接字。1.TCP/IP,一台服务器访问另一台服务器上的数据库实例如:mysql –h1.1.1.1 –uroot –pps:在通过TCP/IP连接到MySQL实例时,MySQL会先检查一张权限视图,用来判断发起请求的客户端IP是否允许连接到MySQL实例。该视图在mysql库下,表名为user:use mysql;select host, u

2020-06-24 14:08:44 191

原创 Mysql系列(三)—mysql存储引擎

mysql从5.5.8版本开始,Innodb存储引擎是默认的存储引擎,之前默认为MyISAMInnodb存储引擎支持事务 行锁设计、支持外键,支持类似于oracle的非锁定读 Innodb从4.1版本开始将每个表放到一个独立的idb文件中 Innodb支持使用裸设备来建立其表空间 Innodb使用多版本并发控制(MVCC)来提高并发性,并且实现了sql标准的4种隔离级别,默认为REPEATABLE。使用next-keylocking的策略来避免幻读的现象。此外还支持插入缓冲、二次写、自适应哈

2020-06-24 14:04:21 180

原创 Mysql系列(二)—Mysql SQL执行顺序

一、手写SQL顺序select <select_list>from <table_name><join_type> join <join_table> on <join_condition>where <where_condition>group by <group_by_list>having <having_condition>order by <order_by_conditio..

2020-06-24 14:00:33 190

原创 Mysql系列(一)—Mysql体系结构

通过上图可以看出mysql分为四层,分别为连接层、服务层、存储引擎层、存储层。连接层:连接池组件服务层:从左向右分别为:管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件存储引擎层:插件式存储引擎存储层:硬盘、物理文件 图中的NTFS/ext2/3/4等为其硬盘格式 mysql数据库区别于其他数据库的一个最重要的特点就是插件式的表存储引擎。需要特别注意的是存储引擎是基于表的,而不...

2020-06-24 13:56:37 647

原创 Mysql读取配置文件的顺序

Mysql读取配置文件的顺序mysql启动时依次扫描路径如下:/etc/my.cnf ->/etc/mysql/my.cnf -> /usr/local/mysql/etc/my.cnf -> ~/.my.cnf如果配置文件有多个,并且有重复的属性,则后读入的会覆盖之前的。

2020-06-24 13:49:42 224

原创 做一条有梦想的咸鱼Flag

Flag一:两个月刷完数据结构(共195p)2020-06-04 4p

2020-06-04 23:10:29 371 5

原创 harbor https 客户端连接配置

harbor配置https后,从其他机器docker login登陆会报错:docker pull x509:certificate signed by unknown authority每个客户端都需要经过配置:配置方式1https://my.oschina.net/u/195080/blog/1647680修改配置:# vim /etc/docker/daemon...

2020-04-30 17:21:25 1017

互联网-worktime-概述.xlsx

互联网-worktime-概述

2021-10-25

AxureRP8软件包

AxureRP8_CHS_V1.4.2-PLUS.百度云资源,失效请联系博主。祝大家身体健康,万事如意,阖家欢乐,事业有成。

2020-01-20

redis集群所需要的 json_pure

redis集群所需要的 json_pure,centos7亲测可用,redis部署见详细博文

2018-02-05

centos7 gcc离线安装的依赖包

centos7环境下gcc离线安装的依赖包,下载解压,在readMe中有命令,执行即可成功安装。。。。

2018-01-25

openoffice,poi+itext,jacob文档预览

openoffice,poi+itext,jacob文档预览

2017-08-30

空空如也

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

TA关注的人

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