Docker Apache Pulsar 是一个云原生的分布式消息传递和流媒体平台,最初由 Yahoo! 创建。现在是顶级 Apache 软件基金会项目. 而 pulsar-manager 是管理 Pulsar 的一个 web 工具。 https://github.com/apache/pulsar-manager Docker 部署 Pulsar 和 Pulsar-manager docker pull apachepulsar/pulsar:latest docker run -d -it \ -p 6650:…

2022年2月24日 0条评论 3720点热度 0人点赞 痴者工良 阅读全文

Kubernetes 日志 和 EFK 日志方案 本文主要参考以下两个文章,对文章内容进行翻译整合。 https://devopscube.com/kubernetes-logging-tutorial/ https://devopscube.com/setup-efk-stack-on-kubernetes/ 第一部分:Kubernetes 日志 在这个 Kubernetes 日志教程中,您将学习 Kubernetes 集群日志中涉及的关键概念和工作流。 当涉及到 Kubernetes 生产调试时,日志起着至关重…

2022年2月14日 0条评论 2673点热度 0人点赞 痴者工良 阅读全文

过年假期在学习了一些领域驱动知识,这里做个汇总。 在领域驱动设计中,程序进行分层,是其重要的一部分,因此这里以分层开始,逐步了解 DDD 中的一些概念。 数据映射层 首先第一步是数据库,数据库这一部分是持久层,负责实体对象和数据库表的映射以及数据库连接配置、数据库上下文配置、ORM 配置等,数据库和缓存它们都是供领域层使用,但是不能直接使用,而是通过仓储的封装。 对于数据库表,在程序中使用实体来对应数据库表,而作为持久层,持久化对象称为 Persistent Object,缩写是 PO,表示持久化的对象。因为实体叫…

2022年2月14日 2条评论 3026点热度 0人点赞 痴者工良 阅读全文

Kubernetes 监控 当你的应用部署到 Kubenetes 后,你很难看到容器内部发生了什么,一旦容器死掉,里面的数据可能就永远无法恢复,甚至无法查看日志以定位问题所在,何况一个应用可能存在很多个实例,用户的一个请求不指定被哪个容器处理了,这使得在 Kubernetes 中对应用进行故障排除较为复杂。在应用之外,由于 Kubernetes 作为基础设施,掌管这整个集群的生死,Kubernetes 的任何故障,必定影响到应用服务的运行,因此监控 Kubernetes 运行状况也至关重要。 当你的应用上了云原生,…

2022年2月13日 0条评论 1722点热度 0人点赞 痴者工良 阅读全文

分库分表 一般来说,数据库分库分表,有以下做法: 按哈希分片:根据一条数据的标识计算哈希值,将其分配到特定的数据库引擎中; 按范围分片:根据一条数据的标识(一般是值),将其分配到特定的数据库引擎中; 按列表分片:根据某些字段的标识,如果符合条件则分配到特定的数据库引擎中。 分库分表的做法有很多种,例如编写代码库,在程序中支持多数据库,程序需要知道每个数据库的地址,并要编写代码进行支持;使用中间件将多个数据库引擎连接起来,程序只需要知道中间件地址。 但是分库分表后,因为任意两个表可能在不同的数据库实例中,两个表进行连…

2022年2月6日 0条评论 2315点热度 0人点赞 痴者工良 阅读全文

写什么呢 前段时间使用 C# 写了个项目,使用 Kubernetes API Server,获取信息以及监控 Kubernetes 资源,然后结合 Neting 做 API 网关。 体验地址 http://neting.whuanle.cn:30080/ 账号 admin,密码 admin123 本篇文章主要介绍,如何通过 C# 开发基于 Kuberetes 的应用,实现获取 Kubernets 中各种资源的信息,以及实现 Conroller 的前提知识。而在下一篇中则会讲解如何实现 Conroller 和 Kub…

2022年1月24日 0条评论 2210点热度 2人点赞 痴者工良 阅读全文

rsync 是 linux 系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他 SSH、rsync 主机同步。 rsync 可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。无须特殊权限即可安装。 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的s…

2022年1月21日 0条评论 3018点热度 0人点赞 痴者工良 阅读全文

首先要安装 mysqlclient,apt install mysql-client。 然后使用里面的 mysqldump 工具。 命令格式示例如下 mysqldump -h127.0.0.1 --port=端口 -uroot -p密码 --databases 数据库名称 > /var/bak/aaa.sql 不得不说备份速度极快。 示例命令: filename=<code>date +%Y%m%d_%H%M%S</code> mysqldump -h127.0.0.1 --port=…

2022年1月21日 2条评论 2786点热度 0人点赞 痴者工良 阅读全文

最近将博客系统迁移,有 Nginx,ssl证书,mysql数据库和 wordpress 各类文件,折腾了一番。 为了避免后续服务器故障等问题,在家里启动树莓派,对博客所在的服务器使用 rsync 做定期备份。 树莓派使用自带的 cron 服务,做定期启动任务。 打开 /etc/cron.d 目录,然后创建一个文件,文件不需要后缀名称。 如:bakblog。 文件内容分为三部分,cron时间表达式 + 以某个用户启动任务 + 执行的命令。 但是 这里 cron 的时间表达式,是 5 位,没有 秒和周。 示例如下,此任…

2022年1月21日 0条评论 2784点热度 0人点赞 痴者工良 阅读全文

关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了。目前写完了查看 Kubernetes Service 信息、创建 Route 和 Cluster 和绑定 Kubernetes Service。简单来说,就是完成了基础部分,配置路由和后端服务绑定,如果想实现动态路由和直接转发等功能,只需要按照官方的文档,增加中间件即可。 原本打算使用 .NET 6 的 AOT(一共40MB) ,但是打包运行会容易出现一些依赖问题和环境问题,因此放…

2022年1月17日 0条评论 2250点热度 0人点赞 痴者工良 阅读全文

Hammerdb 是一个数据库压力测试工具,下载地址: https://www.hammerdb.com/download.html HammerDB 是领先的基准测试和负载测试软件,适用于世界上最流行的数据库,支持 Oracle 数据库、SQL Server、IBM Db2、MySQL、MariaDB 和 PostgreSQL。 TPROC-C 基准测试; TPROC-H 全套测试; 首先创建需要的数据库测试,然后 点击 Schema Build - Options ,配置数据库连接。这里笔者创建的是 TPROC…

2022年1月17日 1条评论 4878点热度 1人点赞 痴者工良 阅读全文

安装了 Mysql/MariaDB ,但是 root 死活进不去,只能用 mysql 这个账号进去。 [root@192-168-0-241 ~]# mysql -u mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.3.32-MariaDB-log MariaDB Server Copyright (c) 2000, 2018, Or…

2022年1月13日 1条评论 4542点热度 2人点赞 痴者工良 阅读全文

scanme.nmap.org 是要扫描的域名或 IP 地址。 package main import ( "fmt" "net" "sort" ) func main() { ports := make(chan int, 100) results := make(chan int) var openports []int // 开启 100 个工作者线程 for i := 0; i < cap(ports); i++ { go worker(ports, results) } // 向[......]继续…

2021年11月17日 0条评论 2026点热度 0人点赞 痴者工良 阅读全文

reflect.Type.Elem() 可以返回元素的类型,例如指针类型,返回不带指针的类型。 reflect.Value.Elem() 是获取指向值的引用。 type name struct { } func (n name) Print(str string) { } func main() { var n interface{} = &name{} t := reflect.TypeOf(n) var na interface{} // 实例化 if t.Kind() == reflect.Ptr {…

2021年11月16日 0条评论 2258点热度 0人点赞 痴者工良 阅读全文

||其代码如下: /// <summary> /// 值类型和字符串互转 /// </summary> public class JsonStringToNumberConverter : JsonConverterFactory { /// <summary> /// 获取默认实例 /// </summary> public static JsonStringToNumberConverter Default { get; } = new J[......]继续阅读

2021年11月3日 1条评论 2536点热度 0人点赞 痴者工良 阅读全文

以 Linux 为例,在 Go 中调用一个命令行程序,其代码示例如下: package main import ( "log" "os" "os/exec" ) func main() { cmd := exec.Command("top") cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { log.Fatal(err) } } 首先使用 cmd[......] 继…

2021年10月5日 0条评论 2705点热度 2人点赞 痴者工良 阅读全文

Manjaro 更新软件、安装软件时,提示: 正在下载所需的密钥...... :: 是否导入 PGP 公钥 A85E811EB4CA2E08 ,"Caleb Maclennan <alerque@archlinux.org>"? [Y/n] y :: 是否导入 PGP 公钥 E0959FEA8B550539 ,"George Rawlinson <grawlinson@archlinux.org>"? [Y/n] y y( 71/771) 正在检查软件包完整性[......]继续阅读

2021年10月5日 0条评论 8083点热度 7人点赞 痴者工良 阅读全文

下毒代码如下: void Main() { Value a = 0; if (a == 1 && a == 2 && a == 3) { Console.WriteLine("给代码下点毒"); return; } Console.WriteLine("代码无毒"); } public class Value { private int _value; public Value() { } public Value(int value) {[......]继续阅读

2021年9月25日 0条评论 2252点热度 0人点赞 痴者工良 阅读全文

代码所示,将 Table 导出为 .csv 格式的数据。 public static async Task SaveCSV(DataTable dt,string[] header, string fileName) { StringBuilder sb = new StringBuilder(); sb.Append($"{string.Join(",", header)}\r\n"); for (int i = 0; i < dt.Rows.Count; i++)[......]继续阅读

2021年8月23日 0条评论 2362点热度 0人点赞 痴者工良 阅读全文

继承 IActionResult: public class ResponseResult<TData> : IActionResult { /// <summary> /// 状态码 /// </summary> public int Code { get; set; } /// <summary> /// 响应信息 /// </summary> public string Msg { g[......]继续阅读

2021年8月21日 0条评论 4061点热度 0人点赞 痴者工良 阅读全文
18910111226