自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十二翼堕落天使

教主的博客

  • 博客(88)
  • 收藏
  • 关注

原创 离线安装 K3S

简要记录一下离线环境下 K3S 的搭建,版本为 `v1.23.17+k3s1`,使用外部数据库 MySQL作元数据存储,禁用默认组件(`coredns`、`servicelb`、`traefik`、`local-storage`、`metrics-server`)并使用 Helm单独安装(`coredns`、`metrics-server`、`traefik`、`longhorn`)。

2023-09-24 03:46:09 430

原创 【PostgreSQL】重建序列修改起始值,针对不支持修改序列的场景的替代方法

针对不支持修改原有序列的场景,先将绑定序列的表绑定其它序列,重建原有序列后再重新绑定回来。

2023-05-04 18:40:52 849 1

原创 【K8S】GitLab CI 整合 Harbor 和 Nexus

Nexus 和 Harbor 都是需要暴露出来供客户端使用的服务,并且 CI 作业同样需要频繁的访问 Nexus 和 Harbor 等服务,那么如果非要通过 Ingress 访问服务不可,在不考虑 Ingress Controller 的分流方案的情况下,还可以通过两个 DNS 服务来分别解析 Ingress 的"虚拟主机" 来达到宿主机内和宿主机外的分流效果。以上的配置方式来源于 1.6.6 版本的 Containerd 文档,是一种较新的配置方式,但是这种方式下并不能指定 Harbor 的密码。

2022-09-03 22:36:28 1460

原创 【K8S】通过 CoreDNS + ETCD + ExternalDNS 打通内网环境 Ingress 的域名访问

对于 HTTP 类型的服务,我们可以通过 Ingress 资源以“虚拟主机”的形式将服务暴露出来,但是在内网环境下,这些域名通常都无法直接访问,于是有了配置 `hosts` 文件进行本地域名解析的方式,但是当集群稍微复杂一些,就会遇到以下几个问题:- 如何在各个节点以及客户端同步域名解析配置?- 如何进行泛解析?- 如何在集群内也能进行域名解析?- 如何在 Ingress 资源变动时自动更新域名解析配置?......

2022-08-15 22:11:59 2096

原创 curl 执行脚本时传递环境变量与参数

curl执行脚本时传递环境变量与参数。

2022-07-21 16:54:38 1119

原创 NFS 动态 PVC 的 StorageClass 和 StatefulSet

参考资料K3S/K8S 中动态创建 PVC 时 SelfLink 问题解决搭建 NFS 服务器安装apt install -y nfs-kernel-server创建共享目录mkdir -p /d/nfs导出echo '/d/nfs *(rw,sync,no_root_squash)' >> /etc/exportsexportfs -r创建 NFS StorageClass克隆 NFS Provisioner 项目git clone ht

2022-05-21 19:18:37 265

原创 [ElementPlus] 多标签页切换

版本"element-plus": "2.1.9"Storeexport interface Tab { title: string content: string}const store = createStore<{ tabs: Tab[] current: Tab | null}>({ state: { tabs: [], current: null }, mutations: { changeCurrent: (sta

2022-04-30 13:56:51 2324

原创 【Pandas】pandas.read_csv() 的 index_col 参数的作用

考虑如下内容的 CSV 文件(第五列只有列值没有列名):COL_1, COL_2, COL_3, COL_4 1, 2, 3, 4, 5 6, 7, 8, 9, 10 11, 12, 13, 14, 15Excel Viewer 预览如下:index_col 的效果:...

2022-02-28 15:02:03 3233

原创 【Flume】笔记

一、Flume 概述1.1 Flume 定义Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。1.2 Flume 基础架构AgentAgent 是一个 JVM 进程,它以事件的形式将数据从源头传送至目的地。Agent 主要由三个部分组成:Source、Channel、Sink。SourceSource 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格式的

2022-02-26 23:16:12 1294

原创 【Shell】mapfile -t 读取文件多行到数组

需求读取如下多行文本到数组中:abandonabilityaboardabsenceabsent可以用如下命令读取:WORDS=($(cat ~/custom/a.txt | xargs))echo ${#WORDS[@]}但是使用 IDEA shell-format 时会报如下警告:Prefer mapfile or read -a to split command output (or quote to avoid splitting).See SC2207.https

2022-02-24 17:43:29 1284

原创 【QT】SQLite 数据库案例——学生成绩管理系统

案例——学习成绩管理系统student-management.proQT += core gui sqlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11SOURCES += \ main.cpp \ dialog.cppHEADERS += \ dialog.hFORMS += \ dialog.uidialog.ui<?xml version=

2022-02-20 04:52:44 1435 2

原创 【QT】网络模块案例——聊天室

案例——网络聊天室服务端chat-room-server.proQT += core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11SOURCES += \ main.cpp \ dialog.cppHEADERS += \ dialog.hFORMS += \ dialog.uidialog.ui<?xml versi

2022-02-20 03:14:00 1202

原创 【QT】事件处理机制案例——图片浏览器、摇奖机、移动标签

什么是事件在 Qt 中,是以事件驱动 UI 工具集,包括信号和槽都依赖于 Qt 的事件处理机制。通常事件是由窗口系统或者 Qt 自身产生的,用以响应所发生的各类事情,比如按下并释放了键盘或者鼠标、窗口因缩放而需要重绘、定时器到期而应有所动作。如下图可以看到事件比信号更原始,一个下压按钮首先感受到的是鼠标事件,再进行必要的处理以产生按钮下沉而弹起的视觉效果之后,才会发射 clicked() 信号。如何处理事件在 Qt 中,事件被封装成对象,所有的事件对象类型都继承自抽象类 QEvent。当事件发

2022-02-20 01:13:16 428

原创 【Pandas】批量处理去除 CSV 的千分位符

问题CSV 文件中的金额格式加了千分位符号(如 1,000.00),表字段类型为数字格式,DataX 无法正常导入数据库。其中 CSV 文件为流水数据,所以需要保证导入的时序性,文件格式如下:csv-old/|-- abc2021-11-18.csv|-- abc2021-11-19.csv|-- abc2021-11-30.csv# ...|-- abc2022-02-17.csv其中 CSV 第 8、9、10 列为金额,需要移除千分位符。解决import osimport re

2022-02-18 17:31:12 974

原创 【QT】父窗口、信号和槽、面向对象

一、父窗口1.1 介绍创建控件时,可以指定停靠在某个父窗口上面,这时控件将作为子窗口被束缚在其父窗口的内部,并伴随父窗口一起移动、隐藏、显示和关闭,否则该控件将作为独立窗口显示在屏幕上,且游离于其它窗口之外。QWidgets 及其子类的对象都可以作为其它控件的父窗口,常见的父窗口类有如下三个:QWidgetsQMainWindow:QWidgets 的直接子类QDialog:QWidgets 的直接子类1.2 析构函数父窗口的析构函数会自动销毁其所有子窗口对象,因此即使子窗口对象是通过

2022-02-04 01:55:30 1286 1

原创 【QT】Mac 搭建 QT 环境

一、安装相关1.1 在线安装https://www.qt.io/download-qt-installer1.2 升级维护1.3 文档二、命令行编译运行2.1 环境变量将 Qt 库的 bin 目录加入 PATH 环境变量:export PATH=$PATH:/opt/qt/6.2.2/macos/bin2.2 示例手动创建项目目录mkdir -p qt-demomain.cppQMake 生成 .pro 文件qmake -project手动添

2022-02-01 23:05:46 4371 2

原创 【消息队列】RabbitMQ 笔记

一、介绍1.1 核心概念Broker接收和分发消息的应用,RabbitMQ Server 就是 Message Broker。Virtual Host出于多租户和安全因素而设计,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 Namespace 概念。当多个不同的用户使用同一个 RabbitMQ Server 提供的服务时,可以划分出多个 VHost,每个用户在自己的 VHost 创建 Exchange / Queue 等。ConnectionProducer / Consu

2022-01-29 17:51:20 2229

原创 【消息队列】Kafka 笔记

什么是 MQ很多人都说:MQ 通过讲消息的发送和接收分离来实现应用程序的异步和解耦,这个给人的直觉是——MQ 就是异步的,是用来解耦的,但这个只是 MQ 的效果而不是目的。MQ 真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的更加简单的通讯协议。一个分布式系统中两个模块之间通讯要么是 HTTP,要么是自己开发的 TCP,但是这两种协议其实都是原始的协议。HTTP 协议很难实现两端通讯——模块 A 可以调用 B,B 也可以主动调用 A,如果要做到这个,两端都要背上 WebServer,而且

2022-01-05 23:40:31 1368

原创 【Shell】Sed 去除行注释和空行

目的删除如下注释:SELECT -- 注释 name, -- 注释 age, -- 注释FROM her;脚本#!/usr/bin/env bashINPUT=$1if [[ "${INPUT}" != "" ]]; then cat "${INPUT}" | sed 's/--.*//g' | sed '/^[[:space:]]*$/d' > "${INPUT}"fi参考http://www.cocoachina.com/cms/wap.

2021-12-29 16:52:35 1605

原创 【Parallels Desktop】共享网络互通踩坑

复现步骤更改 PD 网络偏好设置(默认为 A 类的私有地址):修改虚拟机网络配置这里其实并不知道网关和 DNS 是多少,用 *.*.*.1 纯粹是碰巧。因为在 PD 的网络偏好中并没有提供像 VMware 手动指定网段和网关的配置。但猜测应该会取起始 IP 地址。网络互通测试目此时虚拟机已经能 ping 通公网和网关,但并不确定 PD 是否也有一个类似 VMware 中 VMnet8 虚拟网络适配器,如果有,那虚拟适配器的 IP 又是多少呢?通过百度(parallels desktop

2021-12-26 17:28:09 6392 3

原创 【Kafka】KRaft 模式单节点安装

安装https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.0.0/https://kafka.apache.org/quickstartKRaft 配置config/kraft/README.mdconfig/kraft/server.properties生成集群 IDbin/kafka-storage.sh random-uuid > uuid格式化存储目录bin/kafka-storage.sh for

2021-12-20 23:13:39 2461

原创 【Mac】使用Karabiner 映射输入法快捷键

安装https://karabiner-elements.pqrs.org/默认配置文件 ~/.config/karabiner/karabiner.json{ "global": { "check_for_updates_on_startup": true, "show_in_menu_bar": true, "show_profile_name_in_menu_bar": false }, "profiles": [ { "complex_modifications":

2021-12-04 23:32:05 990

原创 Git 分支与文件系统的错误玩法——初闻半知骂中意,再闻已是被骂人

初中时班主任曾反复教导我不要剑走偏锋,不要剑走偏锋,然而教主却似乎总是与中国人传统中庸思想背道而驰。白嫖 UP 肯定不乐意,但如果举报 UP 就会同意白嫖。从 Hello Word 到rm -rf /*,教主不是正在一个极端,就是正在另一个极端的路上。依稀记得玩分库分表时偶然看到了一篇知乎: mycat和sharding-jdbc哪个比较好?各有什么优缺点?然后发现了一个比较有意思的事情:再加上 Hexo 和 VuePress 部署的 on GitHub Pages 的经典方案:一个 mai

2021-09-24 19:54:33 168

原创 使用正则表达式大写SQL关键字

背景找了很久没找到比较好用的格式化工具库。而 Navicat、DBeaver、IDEA 等工具对 SQL 结构影响较大。所以尝试使用正则表达式替换 SQL 的关键字为大写。实现保留字:SELECT keyword FROM v$reserved_words;const { padEnd } = require('lodash')// 关键字const KEYWORD_LIST = [ ...['CREATE', 'DROP', 'ALTER', 'COMMENT', 'TABLE',

2021-09-21 00:29:47 592

原创 【Tomcat】rotatelogs 按天拆分 catalina.out 日志

cronolog目前搜到的大部分文章讲的都是使用 cronolog 去拆分 catalina.out,参考:CentOS7下安装cronolog拆分tomcat日志文件catalina.out安装其中 ubuntu-20.04 可以直接安装,并且可执行文件目录在/usr/bin/目录下。apt install -y cronologwhich cronolog而 centos-7 则要麻烦些,没有现成的 yum 源,需要从页面下载,并且可执行目录在 /usr/sbin 目录下。y

2021-09-15 23:10:46 596

原创 GreenPlum-6 最简步骤安装

PostgreSQL 快速安装参考文档:https://ubuntu.com/server/docs/databases-postgresql# 安装apt install -y postgresql# 监听所有地址sed -i 's/#listen_addresses = \'localhost\'/listen_addresses = \'*\'/g' /etc/postgresql/12/main/postgresql.conf# 修改密码sudo -u postgres psql

2021-09-13 00:52:14 808

原创 CSV百字段Oracle建表的身不由己迫不得已解决方案——拼音

痛点教主苦 Oracle 久矣。目前的数仓方案是 Oracle,最近又频繁出一些百十来个业务字段的 CSV 需要在 ODS 建表,即便在字段尽可能简写的情况下还是很难控制在 30 个字符以内,故不得已尝试使用拼音命名。采用翻译命名时,已经尽可能地做了省略和简写(包括但不限于 “不依词性、但凭词长” + “省略” + “颠倒是非” + “瞎 JB 翻译”),越说越对不起······但即便如此,还是很容易产生命名冲突或者超出 30 字符限制。在视 “除非约定俗成否则不做任何缩写” 的原则而不见的情况

2021-09-12 16:20:14 204

原创 【Linux】Bash的折衷美化方案——PS1

自 GNOME40 尝鲜以来已许久再未摸过桌面发行版,ZSH 似乎成了唯一能够在终端上聊以慰藉的工具,但是每每搭建新的虚拟机总是不可避免的重复如下步骤:apt install -y zshapt install -y fonts-powerlinecurl -O https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.shsed -i 's/-ohmyzsh\/ohmyzsh/-mirrors\/oh-my-zsh/g' insta

2021-09-10 02:48:21 1886

原创 CentOS ls -l 格式对齐问题排查

在安装完 CentOS-7.9 之后发现 ls -l 的格式总是无法对齐,似乎出现在时间格式上,于是ls -l --time-style=isols -l --time-style=long-isols -l --time-style='+%F %T'ls -l --time-style='+%Y/%m/%d %H:%M:%S'虽然这样能够对齐但是又通过找不到对不起原因的别名定义alias -p为了治疗强迫症,甚至还把别的机器的ls拷贝到/usr/bin/但还是无效。隔了一天仅仅是因为

2021-09-01 12:15:00 472

原创 Dockerfile中echo命令不能加 -e 选项

以换源举例:export CDN=http://mirrors.ustc.edu.cnecho -e "\ deb $CDN/debian/ buster main contrib non-free\n\ deb $CDN/debian/ buster-updates main contrib non-free\n\ deb $CDN/debian/ buster-backports main contrib non-free\n\ deb $CDN/debian-security/ buste

2021-08-08 19:56:39 1203

原创 Oracle18c 快速上手

一、前言也是的确很久都没更新过东西了,连第一句都似乎难以启齿。那么稍微梳理一下,本文主要还是面向跟教主一样 “手里握着是锤子,看什么都是钉子” 的读者,寻找一个了解 Oracle 合适的姿势,毕竟初学者发现的不友好大多都是姿势不对,虽然…目前离目标还任重而道远。目前教主文档的阅读进度还很满,因此大部分理解基本都是基于根据结果去猜测原因,所以如果有误的地方还望指出纠正。当然本文也会引用很多文档、博客、视频来作为参考。二、安装构建镜像

2021-07-28 17:36:27 697

原创 [portainer]踩坑——菜归菜,甩锅给英语不好就完事了

其实教主差不多 3 月份左右跑过 portainer,而且还把 docker-compose.yml 推到仓库里了。但还是因为种种原因比如:没有 i18nDockerHub 版本落后官网很多,落后其实也就罢了关键是你还不停提醒我,难道这版本落后怪我吗。。。DockerDeskop + VSCode 的插件暂时也还勉强够用而且还比较方便于是就差不多没管了,估计也是因为觉得不好用就头脑发热给删了(好在 Git 有提交记录)然后再后来长期苦于 DockerDesktop 的 CLI 窗口的字体实在难

2021-05-30 18:02:00 266 1

原创 hadoop-3.2.2 hive-3.1.2 hbase-2.3.5 安装

一、虚拟机环境1.1 校园网 NAT 配置静态 IP参考:ubuntu server 20.04LTS NAT模式配置静态IP解除win10禁ping方法需要注意的是:共享网卡时无法开启热点,可以选择在有开启热点需求的时候取消网卡共享,之后再重新启用网卡共享。教主 VMnet8 网卡分配到的 IP 为 192.168.137.1/24,因此将虚拟机的 VMnet8 子网网段设置为 192.168.137.0/24,并且习惯性的选择将网关 IP 设置为和宿主机的 VMnet8 网卡相同。

2021-05-04 14:34:19 2242

原创 SpringSecurity直接用username构造UsernamePasswordAuthenticationToken

结论添加在UsernamePasswordAuthenticationFilter之前的 JWT 过滤器中可以直接用username去构造UsernamePasswordAuthenticationToken:UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, null);SecurityContextHolder.getCont

2021-01-08 19:43:16 5581

原创 【Electron】渲染进程直接导入 Node 模块的问题

问题描述直接在 Electron 渲染进程以如下方式引入 Node 模块时会报类似TypeError: childProcess.exec is not a function的错。// CommonJSconst childProcess = require('child_process')// TSimport * as childProcess from 'child_process'而如果将require()换成window.require()虽然能解决上述问题,但同时也会丢失 TS 的

2020-12-19 11:41:48 2758 1

原创 字符串实现二、八、十、十六进制间的转换

一、基础函数1.1 接口和常量构建二进制组到八进制、十六进制的映射。如 010 ==> 2、1100 ==> C/** * K-V map item */interface KVMapItem<K, V> { key: K, value: V}/** * Map<Binary, Octal> */const BINARY_OCTAL_MAP: KVMapItem<string, string>.

2020-09-29 15:02:50 610

原创 Andv树组件获取当前选中的节点

Antdv 中树形组件的`select`事件的两个参数分别为`selectedKeys`和`e`,获取当前选中的节点的方法:1. 通过事件的`e.node.dataRef`获取2. 通过`selectedKey`获取

2020-09-17 22:59:46 4402

原创 Elasticsearch7.8.0从安装到高亮搜索LOL英雄名

一、前言环境:ES 7.8.0JDK11SpringBoot 2.3.0(ES 7.6.2)二、安装2.1 (中文)IK分词器2.1.1 分词器效果:2.1.2 GitHub地址:https://github.com/medcl/elasticsearch-analysis-ik2.1.3 下载:为了避免在容器内下载过慢,教主选择了提前用迅雷下载下来,并以容器卷挂载的方式放到容器里去。大致的目录如下:elasticsearch/|--compose-elasticsearc

2020-08-23 15:25:41 2041

原创 docker-compose搭建mongodb副本集记录

一、docker-compose 创建 mongodb 副本集INFO使用密码后 mongodb 就开启了认证模式,每个实例都需要拥有相同的 keyfile 才能加入副本集。而 windows 上不能挂载 mongodb 的目录,因此打算稍稍修改 mongodb 的镜像,将 keyfile 放在镜像中。1.1 修改镜像Dockerfile:FROM mongo# 生成 keyfileRUN mkdir -p /data/key \ && openssl rand -b

2020-08-13 22:16:01 1172

原创 Win10以最高管理员身份运行程序的方法总结

一、前言Windows 中有些地方可能需要以管理员身份运行,而且频繁的模态确认框体验感非常差,还有提示音也不是特别友好。以最高管理员身份运行的方法通常有以下几种:设置程序的兼容性以管理员身份运行:设置单个程序以管理员身份运行使用超级管理员用户登陆禁用以管理员批准模式运行所有管理员:将当前用户管理员身份提升至最高管理员二、步骤2.1 设置程序的兼容性以管理员身份运行右键程序或程序的快捷方式:属性兼容性:以管理员身份运行此程序如果没有则需要自己创建快捷方式,如C:\

2020-08-12 20:14:36 2669

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除