配置模块.md

准备

alt text

根据配置来源分类:

  • 启动参数:某一次运行的参数。最为典型的是命令行工具,会要求你传入各种参数,例如mockgen中传递的source、destination等参数
  • 环境变量:和具体的实力有关参数。比如实力的权重、实例的分组信息等
  • 配置文件L一些当下环境中所需要的通用配置,比如我们的数据库连接信息等
  • 远程配置中心:它和配置文件可以说是互补,除了启动程序所需的最少配置,剩下的配置都可以放在远程配置中心。

建议:少用启动参数,因为对新人门槛较高;少用环境变量,因为你只有登录上机器才知道参数的值,比较麻烦;优先使用配置文件,大规模微服务集群可以考虑引入远程配置中心。 引入远程配置中心就说明需要投入更多的资源,比如部署、维护,引入了远程配置中心之后,实际上可用性下降了,引用的第三方软件越多,可用性越低。就像引用了redis,可用性也降低了,

记一次使用Nx+PNPM搭建Monorepo项目

准备

1
2
3
brew install gh

sudo apt install gh -y

alt text

alt text

alt text

alt text

alt text

alt text


场景介绍

我有一个商城项目,项目包含一个Golang的后端项目、一个安卓项目、一个React的前端项目、未来可能还有微信小程序、公众号、IOS项目等项目。 我不想将所有的项目分别放到独立的仓库中,不方便我管理与查看,我想通过 Monorepo 来对这个商城项目进行管理。

Wrk性能测试工具

目标

  • wrk 入门
  • 使用 wrk 压测已有接口 写接口测试 读接口测试

wrk 安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Linux
apt install wrk

# MacOS
brew install wrk

# 源码编译安装
git clone https://github.com/wg/wrk.git
# 编译之后得到一个 wrk 可执行文件
cd wrk && make
export {wrk ENV}

命令

MacOS上制作Windows系统启动盘

年前买了一些电脑配配件,今天2025年正月初一在家装系统。

步骤如下:

1、 准备容量大于 8G 的 U盘。

2、插入U盘,打开 Mac 上的 Disk Utility

3、点击 【Erase】抹除 U盘,注意 Format 选择 ExFAT

锚点&和别名*

无意间发现yaml提供了一个特别有意思的功能:锚点(&)和别名(*)。可以使用它们来引用 yaml 中一些重复的配置。

yaml 配置如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
defaults: &defaults
  adapter:  postgres
  host:     localhost
 
development:
  database: myapp_development
  <<: *defaults
 
test:
  database: myapp_test
  <<: *defaults

等同下面yaml配置:

宿主机Mac无法Ping通容器IP

背景

  • 宿主机:Mac
  • 容器:在Mac上安装的 CentOS8 容器,容器IP为 172.20.30.1
  • 现象:进入容器中,可以Ping通宿主机Mac的IP,但在宿主机Mac上却无法Ping通容器的IP,提示信息如下:
    1
    2
    3
    4
    
    ✗ ping 172.20.30.1
    PING 172.20.30.1 (172.20.30.1): 56 data bytes
    Request timeout for icmp_seq 0
    Request timeout for icmp_seq 1
    

解决方案

参考

我的

1、首先 Mac 端通过 brew 安装 docker-connector

宿主机Mac启动的Linux容器无法使用systemd

背景

  • 宿主机:Mac

  • 容器:在Mac上安装的 CentOS8 容器

  • 现象:

    1、docker-comose up 启动容器,提示信息如下:

    1
    2
    3
    4
    
    vm-1   |
    vm-1   | Welcome to CentOS Linux 8!
    vm-1   |
    vm-1   | [!!!!!!] Failed to allocate manager object, freezing.
    

    2、进入容器中,无法使用 systemctl 命令,提示信息如下: