nginx+lua学习
nginx + lua(OpenResty)学习笔记,涵盖基础命令、平滑升级、配置文件等。
nginx 命令和信号控制123456789nginx -s stop # 快速关闭,不管有没有正在处理的请求nginx -s quit # 优雅关闭,完成已接受的连接请求后才退出nginx -c /path/nginx.conf # 指定配置文件启动nginx -s reload # 重启nginx -s reopen # 重新打开日志nginx -t # 检查配置文件是否正确kill -INT pid # 快速关闭kill -HUP pid # 重启
nginx 平滑升级123456789101112131415161718# 1. 下载高版本,解压缩,执行./configuremake# 2. 备份旧版本cd objscp nginx nginx.oldcp -rfp objs/nginx /usr/local/nginx/sbin/nginx -tps -ef | grep nginx# 3. 发送 USR ...
Prometheus安装部署说明
Prometheus 二进制部署 + Node Exporter 采集 + Grafana 可视化的完整流程。
1. 安装 Prometheus Server下载并解压1234cd /export/wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gztar -zxvf prometheus-2.13.1.linux-amd64.tar.gzmv prometheus-2.13.1.linux-amd64 prometheus
配置文件 prometheus.yml12345678910111213141516171819# 全局配置global: scrape_interval: 15s # 抓取间隔 evaluation_interval: 15s # 规则评估周期# Alertmanager 配置alerting: alertmanagers: - static_configs: ...
Python Socket请求网站获取数据
几种 IO 模型对比:
阻塞 I/O -> 收快递,快递如果不到,就干不了其他的活
非阻塞 I/O -> 收快递,不断的去问,有没有送到……如果送到了就接收
I/O多路复用 -> 找个代理人(select)去收快递,快递到了就通知用户
阻塞方式blocking IO 会一直 block 对应的进程,直到操作完成。
123456789101112131415161718192021222324252627import socketimport timeACCESS_URL = 'www.baidu.com'ACCESS_PORT = 80def blocking(pn): sock = socket.socket() sock.connect((ACCESS_URL, ACCESS_PORT)) request_url = 'GET {} HTTP/1.0\r\nHost: www.baidu.com\r\n\r\n'.format('/s?wd={} ...
Python与RabbitMQ交互
RabbitMQ 消息队列成熟的中间件 RabbitMQ、ZeroMQ、ActiveMQ 等等。
RabbitMQ 使用 erlang 语言开发,使用 RabbitMQ 前要安装 erlang 语言。
RabbitMQ 允许不同应用、程序间交互数据。
python 中的 Threading queue 只能允许单进程内多线程交互的。python 中的 MultiProcessing queue 只能允许父进程与子进程或同父进程的多个子进程交互。
RabbitMQ启动
Windows 中默认安装成功,在服务列表中会显示自动启动
Linux 中使用命令 rabbitmq-server start
RabbitMQ 支持不同的语言,对于不同语言有相应的模块,这些模式支持使用开发语言连接 RabbitMQ。
Python 连接 RabbitMQ 模块有:
pika 主流模块
Celery 分布式消息队列
Haigha 提供了一个简单的使用客户端库来与 AMQP 代理进行交互的方法
使用 RabbitMQ 前,首先阅读开始文档:http://www.rabbitmq.com/getst ...
Python操作Oracle数据库:cx_Oracle
Python 操作 Oracle 数据库多用 cx_Oracle 这个第三方扩展,总体而言,cx_Oracle 的使用方式与 Python 操作 MySQL 数据库的 pymysql 库还是很相似的。
安装与导入1pip install -i https://pypi.douban.com/simple cx_oracle
使用前导入:
1import cx_Oracle
千万注意,包名称 cx_Oracle 中,字母 “O” 是大写的,写成小写将会导入失败。
安装好 cx_Oracle 第一次使用时,出现 DatabaseError: DPI-1047,可以按照官方文档解决:https://oracle.github.io/odpi/doc/installation.html#linux
创建连接cx_Oracle 提供了两种方式连接 Oracle 数据库:创建独立的单一连接以及创建连接池。
单一连接通过 cx_Oracle.connect() 方法实现:
123456789# 基本连接connection = cx_Oracle.connect("username ...

