快速组建 Nats 集群

NATS 是个开源、轻量级、高性能的云原生消息系统,实现了具有高度伸缩性的、优雅的发布-订阅(pub/sub)分布式模型。天生具备的高性能,使其成为构建现代、可靠、易伸缩的云原生分布式系统的理想基础。 模拟 3 节点集群,创建 docker-compose.yml version: "3" services: nats1: image: nats:alpine restart: always command: "-c /etc/node.conf" volumes: - ./etc/node-1.conf:/etc/node.conf ports: - 4222:4222 nats2: image: nats:alpine restart: always command: "-c /etc/node.conf" volumes: - ./etc/node-2.conf:/etc/node.conf ports: - 4223:4222 nats3: image: nats:alpine restart: always command: "-c /etc/node.conf" volumes: - ./etc/node-3.conf:/etc/node.conf ports: - 4224:4222 其中节点配置分别为 # node-1.conf port: 4222 cluster { listen: "0.0.0.0:6222" routes = [ nats://nats2:6222 nats://nats3:6222 ] } # node-2.conf port: 4222 cluster { listen: "0....

六月 15, 2021

使用 backport 更新 Debian

Backport 的含义是”向后移植”,就是将软件新版本的某些功能移植到旧版本上来,这就称为 backport。 Debian 向来以稳定性著称,所以就存在一个问题,官方源分发的软件版本比软件本身的版本总是要慢不少,所以就有了 backports 源。 backports 主要从 testing 源,部分安全更新从 unstable 源重新编译包,使这些包不依赖于新版本的库就可以在 debian 的 stable 发行版上面运行。所以 backports 是 stable 和 testing 的一个折衷。 设置 Backport 源 修改文件 /etc/apt/sources.list,向其加入源(这里以 buster 为例) deb https://mirrors.cloud.tencent.com/debian buster-backports main contrib non-free 更新源 apt update 升级 Linux Kernel 首先来到 Debian Backports 网站查询当前版本是否已经提供 Backports 支持,访问 Debian Package List 选择 buster-backports 查看可用的软件包列表,页面找到 Kernels 分类并进入对应的页面,并使用浏览器搜索 linux-image 来查看可用的内核版本。 如何找到适合自己的设备呢? 64 位普通设备,如你的笔记本或工作站: linux-image-amd64 64 位基于虚拟化的设备,如 AWS、Azure、普通 VPS: linux-image-cloud-amd64 树莓派: linux-image-rpi 找到适合自己设备的包名并且确定版本是自己需要的版本后,然后执行以下命令进行安装:...

三月 14, 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

Docker Engine API 初始

Engine API 是 Docker Engine 提供的 HTTP API。它是 Docker 客户端用于与引擎通信的 API,因此 Docker 客户端可以做的所有事情都可以通过 API 来完成。 默认 Docker Engine API 只能通过 socket 访问,如果想通过端口访问则需要手动修改服务。 找到 docker.service 文件,通常在 /lib/systemd/system/docker.service,配置默认为 [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service containerd.service Wants=network-online.target Requires=docker.socket containerd.service [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd....

五月 7, 2020