自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 性能优化 - 平均负载

1、平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。2、平均活跃进程数包括正在使用 CPU 的进程等待 CPU的进程和等待 I/O 的进程。它们都会导致平均负载指标的变化。

2023-06-21 10:57:58 960

转载 3分钟带你用 Go 语言实现枚举

Go语言是没有 enum 这个枚举关键字的。那 Go 语言里面又是怎么处理枚举这个问题的呢?我们这篇文章讲解下!

2022-09-08 14:13:39 1754

原创 HyperLPR 高性能开源中文车牌识别框架

项目地址:https://github.com/szad670401/HyperLPRhyperlpr 依赖opencv 官网提供的安装方式会安装最新版本的OpenCV库,这样运行的时候会出现问题。官网上面的 requirements.txt 文件中有写所依赖的OpenCV的版本 opencv_contrib_python==3.4.3.18但实际安装过程中我发现Windows和Mac上面都找不到这个版本的的库,在我的linux 服务器中倒是可以安装。我所能安装的最新版本是opencv_contr

2022-01-13 20:45:31 2704

原创 Java:抽象类和接口

抽象类抽象类简单来说就是一个类中对于某个方法只进行的声明,没有实现逻辑。如下就是抽象类的语法:public abstract class Person { public abstract void say();}很容易就能发现和一般的类编写上面的区别,首先是class前面多了一个abstract关键字,表示Person是一个抽象类,其次就是在声明方法的时候我们也使用了abstract关键字并且对于say方法我们只是进行了声明,而没有代码逻辑。说完了语法结构,来简单的说一下抽象类的好

2021-05-23 20:47:09 335 5

原创 面向对象:重载与重写的区别

重载什么是方法的重载呢,有什么样的好处呢。体现在代码上就是可用让我们向同一个方法传递不同类型的参数。public class Main { public static void main(String[] args) { Math a = new Math(); int num = a.sum(100,200); System.out.println(num); }}class Math{ int sum(int

2021-04-28 00:02:14 707

转载 python:WSGI接口

本文转自 说说我对 WSGI 的理解先说下 WSGI 的表面意思,Web Server Gateway Interface 的缩写,即 Web 服务器网关接口。之前不知道 WSGI 意思的伙伴,看了上面的解释后,我估计也还是不清楚,所以下面结合实际场景说明,先让大家有个大致的认识。最后我们再自己实现一个,加深对 WSGI 的理解。我们现在使用 Python 编写 Web 应用,可以用比较流行的 Flask、Django 框架,也可以按自己的想法直接写一个。可选的服务器软件也特别多,比如常见的有 A.

2021-04-25 11:22:31 380

原创 Python 实现日志监控

日志监控,是一种外挂式的采集。通过读取进程打印的日志,来进行监控数据的采集与汇聚计算。汇聚成标准的时间序列数据之后,推送给统一的后端存储。日志监控是一种典型的应用、业务监控的手段,如果我们没法在应用程序里内嵌SDK埋点,使用日志监控不失为一种折中方案。这么说好像还不太明白日志监控到底能够做什么,简单点就是说就是对程序的日志内容进行过滤,如果出现了我们设定的关键字,对其进行计数当达到一定数量时可以触发报警。下面来看一下需要哪些步骤:1、不断的监听日志文件,获取最新的日志内容2、正则功能对日志内容.

2021-04-23 14:03:32 7520 4

原创 zabbix api 使用,如何看官方文档。

zabbix 提供的丰富的API接口,几乎可以完成所有在zabbix web界面上的操作,实现一个需求我们可以选用不同的API接口,提供多种解决方案。官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/api点击链接会进入到下面的界面,介绍了API的使用以及提供的一些方法和一些示例。在侧边栏我们可以看到不同的API接口,可以根据自己的需要选择不同的API接口。找到Problem 问题这个接口,点击对象该页面介绍了返回值的含义。除了

2021-02-20 17:05:09 1690

原创 常见linux命令介绍-ps

本文前半部分自:https://www.yanbinghu.com/2018/04/06/53515.html前言ps(Process Status)命令是linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息。当然了,它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令。那么通过ps命令我们能够知道进程的哪些信息呢?下面进行介绍。命令基本介绍命令格式ps命令基本格式为:ps [options]常用参数-A 显示所有进程(同-e)-a

2021-01-28 14:18:47 268

原创 MongoDB可视化工具Compass的使用

Compass页面介绍、创建Database、创建Collection、插入Document、条件过滤搜索Documenthttps://blog.csdn.net/weixin_37490221/article/details/87636281索引、文档的创建和删除https://blog.csdn.net/ltuantuan/article/details/80281079基本界面使用https://www.cnblogs.com/alen-liu-sz/archive/2004/01/13/

2021-01-25 11:24:31 235

原创 docker stats 查看容器资源的使用情况

在容器的使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。docker stats默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:[CONTAINER]: 以短格式显示容器的 ID。[CPU %]: CPU 的使用情况。[MEM USAGE / LIMIT]: 当前使用的内存和最大可以使用的内存。[MEM %]: 以

2021-01-18 17:20:51 1417

原创 查看docker 容器的在宿主机中的pid

Docker(1)使用linux 系统命令 ps 进行查找[root@web01 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES7a8f16c97ec9 feisky/nginx:cpu-fix "nginx -g 'daemon

2021-01-18 16:48:13 7395

转载 奇妙的 Docker Inspect

概述很多 Docker 用户都知道 docker inspect 命令,该命令用于获取容器/镜像的元数据,其中 -f 参数可以用于获取指定的数据,例如使用 docker inspect -f {{.IPAddress}} 来获取容器的 IP 地址。不过很多用户容易被该特性的语法搞晕,并很少有人能将它的优势发挥出来(大部分人都是通过 grep 来获取指定数据,虽然有效但比较零散混乱)。本文将详细介绍 -f 参数,并给出一些例子来说明如何使用它。docker inspect简单地说,-f 的实参是个 G

2021-01-18 13:46:19 478

转载 linux工具之jq

linux工具之jq后端开发的工程师经常在linux下开发,当我们拿到一个json格式的数据时,如何有效对这个数据进行分析?我们可以采用python结合json库来分析,但是linux有一个很好用的工具,让我们可以方便地处理json文本,功能非常强大。官方文档下载参考官网说明macOS:brew install jqLinuxsudo apt-get install jq使用数据准备jq可以把json的文本输出为可读形式,我准备了一份测试json数据,如下:{ "nam

2021-01-18 13:35:38 165

原创 gitbook的部署与使用

推荐两个网站内容很详细了,就不多说了http://self-publishing.ebookchain.org/index.htmlhttp://www.chengweiyang.cn/gitbook/introduction/README.htmlgitbook 自动生成summary文件安装Summary命令:$ npm install -g gitbook-summary具体的使用方法也是简单到一条命令即可首先,打开命令行;然后,进入书目所在目录,键入如下命令$ book

2021-01-04 13:35:15 501

转载 Java虚拟机原理:JVM为什么被称为机器(machine)?

人们常说,Java 是一种跨平台的语言,这意味着 Java 开发出来的程序经过编译后,可以在 Linux 上运行,也可以在 Windows 上运行;可以在 PC、服务器上运行,也可以在手机上运行;可以在 X86 的 CPU 上运行,也可以在 ARM 的 CPU 上运行。因为不同操作系统,特别是不同 CPU 架构,是不可能执行相同的指令的。而 Java 之所以有这种神奇的特性,就是因为 Java 编译的字节码文件不是直接在底层的系统平台上运行的,而是在 Java 虚拟机 JVM 上运行,JVM 屏蔽了底层系

2020-12-30 16:34:41 409

转载 Java 编程语言概述

Java 简介Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名称正式发布,原因是Oak已经被人注册了,因此SUN注册了Java这个商标。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。Java介于编译型语言和解释型语言之间。编译型语言如.

2020-12-30 15:02:34 199

原创 编程语言的发展史

编程语言自从1946年世界上第一台电子计算机问世,人类和机器的交流方式和语言就成为了软件工程师和计算机从业者的主要研究方向,更有效更简便的编程语言成为了软件工程师的新宠儿,伴随着计算机的飞速发展,计算机的硬件升级速度也越来越快,对编程语言的要求也日益严格。在过去的几十年,编程语言有了长足的发展,至今已经有四代语言问世。大量的编程语言为了满足不同领域的编程要求和软件功能,经历 了被修改,被取代,被发展等过程,最终发展成了现在编程语言的多样化。尽管人们多次试图寻找一个能够适应所有编程环境的通用语言,但 是却没

2020-12-30 14:28:19 8365

原创 logrotate的使用以及注意事项

第4条是自己补充的,其他内容转发自:https://blog.csdn.net/u010039418/article/details/81045632注:本文基于CentOS 7.2编写,logrotate版本为logrotate-3.8.6-6.el7.x86_64logrotate用于日志转储,可以根据用户配置的规则,将日志转储,或者删除,防止陈年旧账占满磁盘空间。下面介绍一些注意事项,防止有人掉坑里。1、logrotate依赖cron任务执行我们先看下logrotate这个组件有哪些文.

2020-12-10 18:05:25 3248 3

原创 倒排索引是什么

c = ['a','b','c'];先定义一个数组。这时候c[0]为字符a。这里0为索引,a为内容。而倒排索引,就是将通常意义上的内容作为索引,将通常意义上的索引作为内容。在这里也就是将字符a,b,c作为索引,将0,1,2作为内容。这样的好处是可以立刻找到字符a是数组中的第几个元素,而如果不用倒排索引,我们想要知道一个字符是数组中的第几个元素需要遍历整个数组。倒排索引省去了这个麻烦。...

2020-11-23 16:44:43 140

转载 mac使用brew update无反应更新慢的解决办法

homebrew主要有四个部分组成 名称 说明 brew Homebrew 源代码仓库 homebrew-core Homebrew 核心软件仓库 homebrew-bottles Homebrew 预编译二进制软件包 homebrew-cask 提供 macOS 应用和大型二进制文件 查看源# 查看 brew.git 当前源$ cd "$(brew --repo)" &a.

2020-11-19 13:39:19 1457

转载 python取整函数 向上取整 向下取整 四舍五入

>>> import math>>> a = 2.4>>> math.ceil(a) #向上取整3.0>>> math.floor(a) #向下取整2.0>>> math.trunc(a) #取整数部分2>>> round(a) #四舍五入2.0

2020-11-16 17:47:54 1406

原创 python日志logging模块的使用方法

日志日志是跟踪软件运行时所发生的事件的一种方法。软件开发者在代码中调用日志函数,表明发生了特定的事件。事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数据)。事件还具有开发者归因于事件的重要性;重要性也可以称为级别或严重性。logging提供了一组便利的函数,用来做简单的日志。它们是 debug()、 info()、 warning()、 error() 和 critical()。logging函数根据它们用来跟踪的事件的级别或严重程度来命名。标准级别及其

2020-11-09 14:31:51 213

原创 微服务 API 网关 -Kong 详解

一 概述Kong是一个clould-native、快速的、可扩展的、分布式的微服务抽象层(也称为API网关、API中间件或在某些情况下称为服务网格)框架。更确切地说,Kong是一个在Nginx中运行的Lua应用程序,并且可以通过lua-nginx模块实现。Kong不是用这个模块编译Nginx,而是与[OpenResty](https://openresty.org/)一起发布,[OpenResty](https://openresty.org/)已经包含了lua-nginx-module。OpenRest

2020-10-28 16:24:41 3389 1

转载 shell 脚本中交互输入自动化

最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法:shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行选择Linux 中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息。这个在自动化安装的时候就会是个问题。1、通常对于这个问题比较灵活的解决方法就是TCL的Expect。但Expect还需要另外安装,平台通用性不高,比较麻烦。

2020-10-28 11:27:02 17315

转载 kibana中使用的lucene查询语法

Lucene是目前最为流行的开源全文搜索引擎工具包,提供了完整的查询引擎和索引引擎,部分文本分析引擎。我们平时使用kibana、阿里云的日志查询或者其他一些lucene二次开发的产品,几乎都支持lucene语法。下面给大家演示各种查询方式,更多请参考 Apache Lucene - Query Parser Syntax一、单词查询直接使用单词,例如chenqionghe多个单词,可以用逗号或者空格隔开,例如chenqionghe,活动可以指定字段:空格来查询,例如page: 18、con.

2020-10-26 17:05:02 1364

原创 从闭包到装饰器

闭包shipin_list = ["咖啡","奶茶","果汁"]def shipin(list): l = [] def zs(i): return "你选购的食品是", i for i in list: l.append(zs(i)) return lf1, f2, f3 = shipin(shipin_list) print(f1,f2,f3)#返回值#('你选购的食品是

2020-10-15 18:55:56 93

转载 RabbitMQ 在python中的使用

原文地址:https://blog.51cto.com/10983441/24340531.RabbitMQ介绍1.1python的Queue和RabbitMQpython消息队列:线程queue(同一进程之间进行交互)进程queue(父子进程进行交互或同一个进程下的多个子进程进行交互)两个完全独立的python程序:是不能用上面的queue进行交互的,或者和其他语言交互的方式有哪些呢?1.Disk:可以把数据写入磁盘2.Socket通信3.消息中间件:RabbitMQ,ZeroMQ,

2020-10-14 16:39:01 3220 2

原创 RabbitMQ入门简介

历史RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。Rabbit

2020-10-14 15:12:18 101

转载 Elasticsearch - 入门 (官方文档第一章)

入门引言Elasticsearch是一个高度可扩展开源的全文搜索引擎.它搜索几乎是实时的,用ES作为搜索引擎,为复杂搜索功能的需求提供解决方案.ES的使用场景:网上商场,搜索商品.ES配合logstash,kibana,日志分析.本教程的其他部分,将指导你完成ES的安装,启动,浏览,以及数据的CRUD.如果你完整的完成了本教程,你应该已经对ES有很好的了解了,希望你能从中受到启发.基本概念ES有几个核心概念,从一开始理解这些概念将对你后面的学习有很大帮助。近实时(NRT)ES是一个近实时的搜索引擎(

2020-10-09 11:24:30 881

原创 生成证书脚本

# coding=utf-8import osfrom os.path import join as path_join #join 使用指定的连接符,连接字符串key_dir = '/etc/openvpn/keys'name_key = '/etc/openvpn/easy-rsa/3/pki/private'name_crt = '/etc/openvpn/easy-rsa/3/pki/issued'ovpn_dir = '/etc/openvpn/open_keys/keys/'d

2020-09-28 17:30:43 207

原创 基于es中的nginx日志做业务监控

背景: nginx 日志写入了ELK中,现需要基于es中的nginx日志,进行业务监控。要求: 统计5分钟内,某个接口的访问数量,以及5分钟内接口的平均响应时间。脚本详解:1、nginx日志里面有timestamp时间的字段,生成符合日志中的时间格式(end_time、start_time)。2、封装es的连接3、编写api_search_body这里面都是es语法查询返回所有结果过滤出5分钟内产生的日志对api_url进行分组聚合统计接口的平均响应时间from elastics.

2020-09-27 18:17:04 659

转载 zabbix触发器和监控项设置监控时间范围

触发器配置监控时间范围比如现在配置在晚上十二点到凌晨一点半的时候触发。 创建一个触发器,选中一个你要是用的监控项比如我这里的监控项X,点击表达式构造器。 打开表达式构造器后,点击编辑,再次选择监控项X,在功能出选择当前时间小于N,然后N值出输入时间013000即可,01300表示凌晨一点半,152700表示下午三点27 选中确定之后,可以选择与或关系,这里我选择‘和’关系,关闭表达式构造器,这样一来只有当监控项的值在凌晨一点半大于0的时候触发器才会被触发。 监控项配置监控时间范围 .

2020-09-23 14:08:35 1853

原创 python自定义时间戳

import timet = time.time()print(t) #默认情况下python的时间戳是以秒为单位输出的浮点数print(int(t)) #通过 int() 强制转换成10位print(int( round(t*1000))) #通过 *1000 把秒转换毫秒的方法获得13位的时间戳dt = "2020-09-23T08:00:00+08:00"timearray = time.strptime(dt,"%Y-%m-%dT%H:%M:%S+08:00")timesta.

2020-09-23 13:46:19 1999

原创 如何利用国内开源镜像站,下载想要的资源

刚刚发现了一个好玩的东西,我在下载postgresql的时候,因为官网的yum源太慢, 想找一个国内yum源。找了半天国内yum源找到了不少,但是找不到自己想要的资源。我去华为镜像站去找了是有的,但是我不知道怎么配置为yum源。然后我准备放弃了,去找官网的yum源,但是网上有好多都不行,可能是官方yum源更新了,反正地址没办法访问了。然后去了官网然后发现yum源地址确实和网上的不一样了。好了重头戏来了官方源yum install -y https://download.postgr

2020-09-17 18:56:52 4527

转载 国内开源镜像站点汇总

一、站点版 (一)、企业站 网易:https://mirrors.163.com/搜狐:http://mirrors.sohu.com/(Ubuntu旧发行版同步被冻结,不同步Ubuntu新发行版,Ubuntu源同步正常)阿里云:https://opsx.alibaba.com/mirror(部分镜像同步延迟超过1天)首都在线科技股份有限公司(英文名Capital Online Data Service):ht...

2020-09-17 18:31:36 2936

原创 rsync 生产中的使用

rsync详解:https://blog.csdn.net/cyt0906/article/details/105686617需求: 应用服务器的硬盘资源较小,需要针对这些服务的日志做备份。方案: 采用rsync把需要备份的日志更新到远端备份服务器上面,同时删除备份过后的日志文件。最后使用Jenkins定时执行备份任务。实施步骤:一、编写过滤规则echo $(date +*%Y%m%d*) > exclude.txtecho $(date +*%Y%m%d* --date '1 day

2020-09-17 14:39:41 140

转载 rsync 详解

Rsync参考文档:https://blog.csdn.net/jiangyu1013/article/details/79754060### 想看详情请移步。rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。不考虑rsync的实现细节,就文件同...

2020-09-17 10:46:51 877

原创 ELK部署收集nginx日志

简介ELK 是 elasticsearch + logstash + kibana 三款开源软件的简称。elasticsearch:是个开源的分布式搜索引擎,特点是:分布式、配置简单、自动发现、索引自动分片、索引副本机制、restful风格接口,多数据源,自动搜索负载等logstash:可以对日志进行收集、滤过、并将其存储在 elasticsearch中kibana:可以为 elasticsearch提供友好的用户交互界面,用户可以通过 kibana来分析、搜索甚至绘图来分析数据。拓扑图注意

2020-09-09 16:01:03 725

原创 监控选型

监控的概念监控的定义通过技术手段发现服务异常,持续优化业务可用性与用户体验。这句话的关键词是 发现 持续优化 可用性与体验。监控的方式主动: 程序内部埋点,服务主动上报自身的运行情况,一般都是具化为业务的各个属性或者指标,这种方式准、快,灵活性好,指标丰富。但是在非标准框架下会有一定的代码改造成本。被动: 无需埋点,从外部探测或获取服务的运行情况,例如ping探测、日志采集分析等等。旁路: 与程序逻辑无关,对服务质量与口碑的监控,例如舆情分析。监控的类型类别描述硬

2020-09-07 19:28:21 646

空空如也

空空如也

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

TA关注的人

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