Nats JetStream 测试

环境条件: UCloud 公网 Kubernetes 3 个 Pod 组成 Nats 集群,每个 Pod 分别编排至不同的 Node(2C4G) 测试 1 1 个发布者,发布每条 16B 共 1000000 条的信息 1 个订阅者,订阅生成的 1000000 条信息 $ nats bench bar --js --pub 1 --size 16 --msgs 1000000 -s nats://s1.kainonly.com:4222,nats://s2.kainonly.com:4222,nats://s3.kainonly.com:4222 --nkey ./weplanx.key 10:37:39 Starting JetStream benchmark [subject=bar, msgs=1,000,000, msgsize=16 B, pubs=1, subs=0, js=true, stream=benchstream, storage=memory, syncpub=false, pubbatch=100, jstimeout=30s, pull=false, consumerbatch=100, push=false, c onsumername=natscli-bench, replicas=1, purge=false, pubsleep=0s, subsleep=0s] 10:37:40 Starting publisher, publishing 1,000,000 messages Finished 3m11s [=======================================================================================================================================================================================================] 100% Pub stats: 5,210 msgs/sec ~ 81....

十二月 20, 2021

使用 APT 安装新版本 PHP

用于 Debian 的最新 PHP 版本可在 SURY PHP PPA 存储库中找到。我们将添加存储库作为先决条件,然后在 Debian 10 / Debian 9 上安装 PHP 8.0。 新增 SURY PHP 源 sudo apt -y install lsb-release apt-transport-https ca-certificates sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list 更新 APT 源 sudo apt update 安装 PHP sudo apt -y install php8.0-cli 安装扩展与支持 sudo apt-get install php8.0-{fpm,bcmath,bz2,intl,gd,mbstring,mysql,zip}

十二月 22, 2020

编译安装 Python

Python 是一个非常实用的工具,在 Linux 中存在不少应用会依赖于系统默认的 Python,但是在一些老的发行版本中系统默认的 Python 往往版本较低不能兼容一些新的特性,因此需要实现系统默认 Python3 与自定义 Python3.x 的共存共用 以 Debian 系统为例 首先安装构建 Python 源代码所需的软件包: sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev 从 Python download page 下载源码包,当前版本为 3.8.5 开始解压 tar -xf Python-3.8.5.tar.xz 进入目录,执行编译检测,--enable-optimizations 选项将通过运行多个测试来优化 Python 二进制文件,这将使构建过程变慢 cd Python-3.8.5 ./configure --enable-optimizations 运行 make 开始构建过程,可以增加多线程编译 -j [CPU核数] 提速 make 构建完成后,使用该命令安装 Python;请不要使用 make install 因为它将覆盖系统默认的 Python3,导致依赖它的软件包工作异常 make altinstall 安装成功后将以 python3.8 pip3.8 呈现...

八月 2, 2020

搭建 Satis

使用 composer 初始化 Satis 项目 composer create-project composer/satis --keep-vcs 删除默认 composer.lock,重新安装依赖 composer install composer dump-autoload --optimize 配置 satis.json { "name": "My Repository", "homepage": "http://localhost:8001", "repositories": [ { "type": "composer", "url": "https://packagist.laravel-china.org" }, { "type": "vcs", "url": "git@github.com:kainonly/anyone.git" } ], "require-all": false, "require": { "topthink/think": "5.1.*", "topthink/think-captcha": "^2.0", "topthink/think-image": "^1.0", "overtrue/wechat": "~4.0", "aliyuncs/oss-sdk-php": "^2.3", "phpseclib/phpseclib": "^2.0", "kain/think-bit": "^1.4", "lcobucci/jwt": "^3.2", "doctrine/collections": "^1.5", "nesbot/carbon": "^2.5", "php-amqplib/php-amqplib": "^2.8", "ajaxray/short-code": "^1.1", "ramsey/uuid": "^3.8", "kain/anyone": "^1....

十一月 11, 2019

PHP Session 分布

在以前我们很多项目都是集中式的开发(即 LAMP、LNMP 一体式解决方案),并且整个授权完全基于 Session 的居多。 而这样的项目有时又需要分布高可用的改良,因此需要接解决多台服务器的 Session 共享问题 对于 PHP 让 Session 存储在 redis 是一个很不错的方案,首选需要为 PHP 安装 Redis 扩展 http://pecl.php.net/package/redis >=PHP7 选 ^5.0.0 PHP 5 选 4.3.0 使用 docker 则在 Dockerfile 中加入 pecl install redis \ && docker-php-ext-enable redis \ 扩展安装完毕后我们为其配置 php.ini [Session] session.save_handler = redis session.save_path = "tcp://localhost:6379?database=10&auth=abcd" 详情 https://github.com/phpredis/phpredis/blob/develop/README.markdown#php-session-handler 如果 redis 口令中包含 `#` 号,则会提示 `NOAUTH Authentication required` 的错误,是因为 `php.ini` 误当成注释了。 解决方式:将 `#` 进行 URL 编码,替换成 `%23`

四月 5, 2018