阿小信大人的头像
Talk is cheap. Show me the code. Linus Torvalds

es优化方案记录2021-08-05 15:47

image

#### 节点负载不均衡

##### 现象:

每个索引使用默认的1个分片,1个副本,在3节点集群出现__负载不均衡__现象,两个节点cpu负载很高,另外一个节点cpu负载更低。

##### 原因:
分片+副本一共2个,只能被分散到两个节点上,查询请求只能命中这两个节点。

##### 解决方案:

Es 创建索引后无法动态修改分片数,但是可以动态修改副本数,增加副本数可以分散查询请求。在不改变分片数的情况下,通过调整分片的副本数,使分片副本数+原始分片数的总数为节点数基数或倍数,以达到节点负载均衡,将索引的分片副本数增加到2,加上分片自身,一共3个,刚好均分给3个节

......
#数据库#   #elk 评论[0]阅读全文[460]

Nginx + Lua + Redis 实现基础的令牌桶算法限流2020-06-16 17:30

image

## 关于令牌桶( token bucket )

令牌桶限流的原理是系统以一个恒定的速度往固定容量的桶里放入令牌,当有请求进来时,需要先从桶里获取并消耗一个令牌,当桶里没有令牌可取时,则拒绝服务或让请求等待。

如图:

![image](https://user-images.githubusercontent.com/2876405/84757479-cb8c3300-aff6-11ea-9be7-7d941ce1a2df.png)

每隔 1/r 秒向 bucket 中填充一个 token ;
bucket 最多只能存放 b 个 token ,如果填充 token 时

......
#数据库#   #redis #nginx 评论[0]阅读全文[1344]

CentOS7 安装 MySQL 5.7.23 并开启 MGR 多主模式2018-08-08 10:39

三台服务器,hostname分别为node1, node2, node3, 可通过hostname相互访问

卸载mariadb

rpm -qa | grep mariadb | xargs rpm -e --nodeps
rm -rf /etc/my.cnf /etc/mysql /etc/my.cnf.d

安装libaio

yum install libaio

下载Linux-Generic版本,上传到安装服务器目录/usr/local/services。

解压重命名为mysql-5.7.23

MySQL不能使用root运行

......
#数据库#   评论[0]阅读全文[2894]

[转]SQLAlchemy2015-04-02 10:27

架构图

原文:

SQLAlchemy是Python界的ORM(Object Relational Mapper)框架,它两个主要的组件: **SQLAlchemy ORM** 和 **SQLAlchemy Core** 。

![架构图](http://docs.sqlalchemy.org/en/rel_0_8/_images/sqla_arch_small.png)

####安装

pip install SQLAlchemy
#检查安装是否成功:
>>> import sqlalchemy
>>> sqlalchemy.__versio

......
#数据库#   评论[0]阅读全文[4769]

sqlite3迁移数据到postgresql2014-09-03 03:25

####从sqlite3导出sql:

sqlite3 tag17.sqlite3 .dump > tag17.sql

####修改导出的sql文件:

1. 删除`PRAGMA foreign_keys=OFF;`

2. 删除创建表语句中方括号和修改datetime为date。

####导入sql到postgresql

psql -d ashin -U ashin -f tag17.sql

如果导入命令加上`--single-transaction`参数则需要删除sql文件中的`BEGIN TRANSACTION;`和`COMMIT

......
#数据库#   #sqlite3 #postgresql 评论[0]阅读全文[4237]

PostgreSQL安装配置2014-09-03 03:24

安装PostgreSQL

$ sudo apt-get install postgresql postgresql-server-dev-9.3 #安装好后默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。这里需要注意的是,同时还生成了一个名为postgres的Linux系统用户。
$ sudo -u postgres psql #修改postgres数据库密码
postgres=# \password postgres
$ sudo passwd postgres #修改postgres用

......
#数据库#   #postgresql 评论[0]阅读全文[2747]

登录远程MySQL报错解决办法2014-09-03 02:56

登录远程mysql:`$ mysql -uroot -h192.168.137.108 -p`

报错:

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.137.108' (111)

解决办法:注释掉/etc/mysql/my.cnf的bind-address = 127.0.0.1

报错:

ERROR 1130 (HY000): Host '192.168.137.108' is not allowed to connect to this MySQL ser

......
#数据库#   #mysql 评论[0]阅读全文[2053]

mongodb的复制与分片2014-09-02 06:26

####主从复制

主从复制可用于备份、故障恢复、读扩展等。设置一个主节点,多个从节点,从节点就可以复制主节点的数据到本地。

在linux上的2612端口建一个主节点并设置为自动同步:`mongod --dbpath ./mongo/dbs/master/ --port 2612 --master --autoresync`

在windows上7474端口建个从节点:`mongod.exe --dbpath c:\data\db --port 7474 --slave --source 192.168.2.130:2612`

现在在主节点上添加数据,可以看到后台在打印同步

......
#数据库#   #mongodb 评论[0]阅读全文[3029]