ES只读用户创建 只读角色创建创建对指定索引集合的只读角色POST /_security/role/read_only{ "indices": [ { "names": [ "test-index", ], "privileges": [ "read" ] } ]}用户创建创建用户并指定为只读角色POST /_security/user/anonymous{ "password" : "ano..
山特UPS电量信息采集环境配置 山特UPS电量信息采集环境配置硬件需求支持智能卡插口的山特UPS山特NMC网络管理卡安装与配置NMC卡NMC 是一种介于UPS和网络的设备,它可以从UPS获得状态信息并且发出指令。NMC支持两种协议-简易网络管理协议(SNMP)和超文件传输协议(HTTP)以供使用者进入。通过SNMP的网络管理站(NMS)和网页浏览器,用户可以获得UPS的状态信息、发出指令至UPS并且通过网络设定NMC。下图为NMC卡:安装配置参考官方文档:NMC卡使用手册其中,主要是配置好NMC卡的网络(将NMC卡加
Facebook图片存储系统Haystack Facebook图片存储系统Haystack一篇14页的论文Facebook-Haystack, 看完之后我的印象里就四句话:因为【传统文件系统的弊端】因为【缓存无法解决长尾问题】所以【多个图片信息(Needle)存在同一个文件(SuperBlock)中】所以【显著提高性能】传统文件系统的弊端传统的 POSIX 文件系统不适合高性能的图片存储, 主要原因是基于该文件系统来存储的话,是讲每个图片存储成某目录下的一个文件, 每次读取文件的时候需要有N次磁盘IO,当目录下文件数是K级别是, 读取
Minio纠删码与存储级别 Minio纠删码与存储级别纠删码(erasure code)概念简单来说就是可以通过数学计算,把丢失的数据进行还原,它可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。即如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。举个最简单例子就是有两个数据(d1, d2),用一个校验和y(d1 + d2 = y)即可保证即使丢失其中一个,依然可以还原数据。如丢失 d1 ,则使用 y - d2 = d1 还原,同理,d2 丢失或者y丢失,均可通过计算得出。EC 的
ES索引的生命周期管理 ES索引的生命周期管理介绍 ES可用于索引日志类数据,在此场景下,数据是源源不断地被写入到索引中。为了使索引的文档不会过多,查询的性能更好,我们希望索引可以根据大小、文档数量或索引已创建时长等指标进行自动回滚,可以自定义将超过一定时间的数据进行自动删除。ES为我们提供了索引的生命周期管理来帮助处理此场景下的问题。 索引的生命周期分为四个阶段:HOT->WARM->COLD->DELETE。 HOT为必须的阶段外,其他为非必须阶段,可以任意选择配置。在日志类场景下不需要W
es快照备份至minio es快照备份至minio一、概述MinioMinio 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。ElasticsearchElasticsearch是一个基于Lucene的分布式全文搜索引擎。ES支持快照功能,用于实现数据的备份与恢复。我们可以生成单个索引或整个集群的快照,并将其存储在
Centos磁盘挂载 Centos磁盘挂载1、 列出所有磁盘fdisk -l2、格式化磁盘fdisk /dev/sdb[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0sacYOkg-1632394041433)(C:\Users\yq\AppData\Roaming\Typora\typora-user-images\image-20210917161855511.png)]3、 创建分区mkfs.xfs /dev/sdb14、挂载分区mount /dev/sdb1 /
python常用时间的获取 当前当前时间def current_time(): return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))当前小时def current_hour(): return datetime.now().strftime('%Y-%m-%d %H:00:00')当前日def current_day(): return datetime.now().strftime('%Y-%m
Innodb事务4大特性(ACID)的实现原理 原子性:单个事务的执行要么整体成功,要么整体失败。主要通过undo log实现,undo log中记录了修改前的数据版本,在事务执行失败时,通过undo log回滚。持久性:事务在提交后,对数据的修改是持久化的。主要通过redo log实现。innno db通过内存缓存来提高性能,在执行查询(select)时,先查内存缓存,没有再查磁盘,并将数据缓存到内存;在执行修改(update,insert,delete)时,先更新缓存,再延期统一刷入磁盘,以减少磁盘io次数,但由于内存缓存在服务器宕机时会丢失,所.
mysql innodb默认事务隔离级别-repeatable read在事务中是否能导致幻读的实验 测试准备: 1. show variables like ‘%unsafe%’;确保 innodb_locks_unsafe_for_binlog值为 OFF(或者0); 2. show variables like ‘%tx%’; 确保 tx_isolation 的值为 REPEATABLE-READ。 3. 新建表t_test :CREATE TABLE t_test ( id INT(32) NOT NULL, val CHAR(1) D
mysql数据库服务器与RAID存储架构 数据库服务器使用的RAID存储架构mysql数据库就是一个软件,底层就是磁盘来存储数据,基于内存来提升数据读写性能。mysql运行过程中,他需要使用CPU,内存,磁盘和网卡这些硬件,但是不能直接使用,都是通过调用操作系统提供的接口,依托于操作系统来使用和运行的,然后linux操作系统负责操作底层的硬件。一般来说,很多数据库部署在机器上的时候,存储都是搭建的RAID存储架构;在存储层面往往回在机器上搞多块磁盘,然后引入RAID这个技术,RAID:管理机器里的多块磁盘的一种磁盘阵列技术。
mysql读写分离与分库分表 读写分离mysql读写分离实际利用的是主从复制架构,主数据库主要处理写操作,读请求被路由到从数据库来减少数据库压力。存在的问题从数据库的数据相较于主数据库有延迟,造成读不到新数据,且并发量越高,延迟问题越严重不能减轻写压力如何解决问题1,在对数据有强正确性要求时,采用强制路由的方式使读操作落地主库问题2,使用分库分表实现proxy代理层(shardingproxy、mysqlproxy、mycat、atlas等)应用层(java:sharding-jdbc、TDDL等)分库
python中文字符判断 判断字符串为全中文def is_all_chinese(s):"""检验是否全是中文字符""" for _char in s: if not '\u4e00' <= _char <= '\u9fa5': return False return True判断字符串是否包含中文def is_contains_chinese(s):"""检验是否含有中文字符""" for _char in s: if ..
从线程锁到redis分布式锁 本文将利用减库存这一常见业务的递进实现,来介绍为何需要分布式锁,以及基于redis的分布式锁是如何一步一步完善的。首先,现做一下设定:假定我们将商品A(product_id=‘A’)的库存保存在redis中,并对外提供减库存接口。(限制redis中的库存不能执行原子减操作)将商品A的初始库存设置为200原始版本from flask import Flaskfrom flask_redis import FlaskRedisapp = Flask(__name__)app.config[
python中实现定时任务的一种简单方法 此方法利用了子线程和回调实现了定时任务,代码如下:import timeimport threadingdef task(): print(time.time())def cron(func, interval_time=10, *args, **kwargs): threading.Thread(target=func, args=args, kwargs=kwargs).start() time.sleep(interval_time) cron(func
Tornado实现简单的Socket TCP服务器 python3服务端from collections import namedtuplefrom tornado.tcpserver import TCPServerfrom tornado.iostream import StreamClosedErrorfrom tornado.ioloop import IOLoopClient = namedtuple('Client', ['stream', 'address'])class ChatServer(TCPServer):
python中两种方式实现“模块补丁”的方式 python中sleep的单位是秒,而在java中sleep的单位是毫秒,现在我们自定义sleep函数,实现毫秒单位的等待。########################################### my_time.py模块##########################################import timedef sleep(n): time.sleep(n/1000)########################################
python time模块下的clock、perf_counter、process_time函数 time.perf_counter(),返回性能计数器的值,包括睡眠期间(即cpu空闲)经过的时间(可用于计算程序运行时长,cpu级别,比time.time()精度更高)time.process_time(),返回当前进程的系统和用户CPU时间总和的值,不包括睡眠期间(即cpu空闲)经过的时间(可用于计算程序cpu使用时长)time.clock(),在windows下相当于perf_counter,在linux下相当于process_time(python3.3后废弃)...
MySQL的utf8编码和utf8mb4 mysql的utf8编码最多支持3个字节,utf8mb4编码可以支持4个字节,utf8编码能够支持的字符集是utf8mb4编码的子集(例如:utf8mb4编码可以支持emoji表情,而utf8不支持)若当前的数据库、表和字段已经设置为了utf8编码,那么当需要处理生僻字符(4字节)时,需要将编码更新为utf8mb4,经过验证一下过程可以实现:修改数据库编码及字符集ALTER DATABASE db_name(你的数据库) CHARACTER SET = utf8mb4 COLLATE = utf8