GitHub Workflow突然报错

再github上跑了一个工作流,主要就是执行npm installnpm run docs:build

使用的package.json如下:

{
  "name": "my-blogs",
  "version": "2.0.0",
  "description": "my-blogs",
  "license": "MIT",
  "type": "module",
  "scripts": {
    "docs:build": "vuepress build src",
    "docs:clean-dev": "vuepress dev src --clean-cache",
    "docs:dev": "vuepress dev src"
  },
  "devDependencies": {
    "@vuepress/client": "2.0.0-beta.61",
    "@vuepress/plugin-google-analytics": "^2.0.0-beta.61",
    "vue": "^3.2.47",
    "vuepress": "2.0.0-beta.61",
    "vuepress-plugin-china-search-console": "^2.1.5",
    "vuepress-plugin-components": "2.0.0-beta.184",
    "vuepress-plugin-search-pro": "2.0.0-beta.184",
    "vuepress-theme-hope": "2.0.0-beta.184"
  }
}

技术加油站大约 2 分钟
数组转树形结构只需两步

已很经典的菜单为例,假设结构如下:

  • id
  • parent_id
  • name
  • xxx1
  • xxx2
  • ….

按照一比一构造一个类(只增加一个children字段):

@Data
public class XXXX{
	private Long id;

	private Long parentId;

	private String name;

	private String xxx1;

	private String xxx2;

	private List<XXXX> children;
}


技术加油站小于 1 分钟树形结构
数据同步方案

CDC: Change Data Capture

  • cdc方案对比
Untitled
Untitled
Untitled
Untitled

技术加油站小于 1 分钟cdc异构数据库同步cdcchange data capturemysqlpostgresqlpgsqlkafkamq异构数据库同步
K8S 无感发布

背景

问题一: 比如现在k8s有个deployment,有3个pod。此时有个请求在pod A中进行处理,假设需要耗时5分钟。在这个5分钟内,执行了k8s的滚动发布,并开始销毁这个pod。 这个场景下,如果不做一些额外配置,那么pod A的这个请求应该会处理异常。

问题二: 滚动发布的时候,k8s刚启动了一个pod,但这个pod可能需要等一段时间才能真正对外提供服务。但k8s此时开始转发请求到这个pod了,这种情况下,请求是不能成功处理的

核心问题:

  1. k8s如何知道pod可以对外提供服务了
  2. pod如何知道k8s要销毁这个pod了,pod里的应用程序知道后就能自己进行shutdown

技术加油站大约 1 分钟k8sk8s无感发布
K8S常用命令

常用命令

查看所有命令空间

kubectl get ns

查看当前命名空间

kubectl config view --minify --output 'jsonpath={..namespace}'

技术加油站小于 1 分钟k8sk8s
CloudFlare 客户端证书的使用

先列个大纲:

抛开cloudflare配置nginx的双向认证

这里可以参考另外一篇博文:

Nginx的双向认证配置

在cloudflare中生成服务端证书(也可以用自己的)

在cloudflare中生成客户端证书(也可以用自己的)

在源服务器中配置双向认证


技术加油站小于 1 分钟cloudflare客户端证书双向认证nginx
Nginx的双向认证配置

没有时间详写,先列个大纲

生成服务端证书

生成客户端证书

配置nginx服务端证书并开启ssl

配置nginx客户端证书并开启验证

合下配置如下:

ssl_certificate    /www/server/panel/vhost/cert/xxxx.com/fullchain.pem;
ssl_certificate_key    /www/server/panel/vhost/cert/xxxx.com/privkey.pem;

ssl_client_certificate /www/server/panel/vhost/cert/client.crt;
ssl_verify_client on;

技术加油站小于 1 分钟nginx双向认证ssl
Docker隐射的端口外网不能访问

问题

比如现在有一台公网服务器,公网ip是111.111.111.111,内网ip是:10.1.1.1 。在这台服务器上面跑了两个服务:

  1. mysql

    非docker方式,暴露的端口是3306,绑定的ip是0.0.0.0

  2. nacos

    docker方式,映射到宿主机的端口有8848和9848。连接的mysql地址是:111.111.111.111:3306/nacos

现在发现的问题有:

  1. nacos总起不来,总提示No DataSource set ,但在本地却能连接 111.111.111.111:3306/nacos,并能读写数据
  2. 后面把nacos的mysql连接地址改10.1.1.1:3306/nacos后,nacos能启动成功了,但外网访问不了nacos的控制台

技术加油站大约 2 分钟dockernacosfirewalld路由转发ip_forward
2
3
4
5
...
14









  • 随机毒鸡汤:现在看来用生日做密码,还是很安全的,毕竟没有人记得你生日。