[TOC] 作者:痴者工良 个人网站:https://www.whuanle.cn 博客园:https://www.cnblogs.com/whuanle/ 本教程地址:https://kafka.whuanle.cn/ 本教程是关于 Kafka 知识的教程,从 C# 中实践编写 Kafka 程序,一边写代码一边了解 Kafka。 教程内容是过年期间写的,写到一半假期结束要上班了,将已完成的部分整理出来,就不继续写了。 1, 搭建 Kafka 环境 本章的内容比较简单,我们将使用 Docker 快速部署一个单节点的…

2023年1月27日 0条评论 2968点热度 2人点赞 痴者工良 阅读全文

这里是笔者在开发 MAUI 应用时踩的坑,以及一些笔记的汇总。 不得不说 MAUI 挺垃圾的。 如果不是 Mono 金玉在前,估计社区不会有多少人关注败絮 MAUI。 目前 .NET 已经升级到 7.0,但是 MAUI 还是一如既往的拉跨,如果开发过 MAUI,做过定制,自定义标题栏之类的,便会发现 MAUI 有多难受。 MAUI 不知道跟 UWP 有啥关系,但是 MAUI 很多东西感觉都是在延续 UWP 的设计,而且 MAUI 也很可能是下一个 UWP。 如果是 Windows 或者 Linux 桌面开发,建议 …

2023年1月18日 0条评论 13361点热度 4人点赞 痴者工良 阅读全文

fio 即 Flexible io tester,基于 Linux 实例的块卷性能测试。 https://docs.oracle.com/en-us/iaas/Content/Block/References/samplefiocommandslinux.htm 测试命令如下: fio -filename=/tmp/test.file \ -direct=1 \ -iodepth 1 \ -thread -rw=randrw \ -rwmixread=70 \ -ioengine=psync \ -bs=4k \ …

2023年1月16日 0条评论 2323点热度 0人点赞 痴者工良 阅读全文

本文内容: JWT Token JWT Token颁发 JWT 签名验证 JWT 安全检验 Token 原理 打开 https://jwt.io/ ,进入后会看到默认页面有一段自动生成的 token,右边是关于这个 token 的信息。 可以看到默认有一段 token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.EJzdDeNLOQhy…

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

环境搭建和生成 首先安装 Java 8 以上的版本。 打开 https://www.antlr.org/download.html, 找到 "ANTLR tool itself ",或者直接点击 https://www.antlr.org/download/antlr-4.11.1-complete.jar 下载包。 然后打开 https://github.com/antlr/grammars-v4 下载对应语法分析模板。 执行命令生成 java 代码。 java -jar antlr-4.11…

2023年1月12日 0条评论 3425点热度 0人点赞 痴者工良 阅读全文

场景,访问 a.com/aaa 时,反向代理 127.0.0.1:9999/ 服务,自动将路径后缀路径转发。 如果访问 a.com/aaa/bbb,实际请求 127.0.0.1:9999/bbbb。 首先设置路径区配: 接着设置请求改写: ^/aaa(/|$)(.*) [......] 继续阅读

2023年1月6日 0条评论 4017点热度 0人点赞 痴者工良 阅读全文

首先在数据库中创建新的用户: CREATE USER 'exporter'@'%' IDENTIFIED BY 'promethues' WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%'; flush privileges; exporter 是用户名,promethues 是密码。 定义连接数据库的配置文件(my.cnf): [client] host=127.0.0.1 …

2023年1月6日 0条评论 2036点热度 0人点赞 痴者工良 阅读全文

单机版本 首先创建虚拟网络,以便应用之间通讯: docker network create apisix-network --driver bridge 创建 etcd 持久化存储卷: docker volume create --name etcd-data 启动单机版本的 etcd: docker run -d --name etcd \ --network apisix-network \ --volume=etcd-data:/etcd-data \ -p 2379:2379 \ -p 2380:2380 …

2023年1月5日 2条评论 6218点热度 0人点赞 痴者工良 阅读全文

连接 如果不想对外暴露密码,可以自行写一个 AuthorizationHeader,只使用 Base64 处理后的 Basic 认证密钥。 using Elastic.Clients.Elasticsearch; using Elastic.Transport; public class Program { public class Base64Auth : AuthorizationHeader { private readonly string _base; public Base64Auth(string b…

2022年12月29日 0条评论 2681点热度 0人点赞 痴者工良 阅读全文

Tauri 是一款应用构建工具包,让您能够为使用 Web 技术的所有主流桌面操作系统构建软件。 官网地址:https://tauri.app/zh-cn/ Tauri 可以构建跨平台的快速、安全、前端隔离应用,Tauri 支持多种创建项目模板的方式: 安装开发环境 Tauri 支持使用 Windows、Linux、Mac 系统进行开发,笔者将介绍在 Windows 下如何开发。 首先需要安装 C++ core desktop features 组件,到这里可以下载: https://learn.microsoft.…

2022年12月28日 5条评论 21917点热度 0人点赞 痴者工良 阅读全文

通常程序执行 IO 操作时,需要涉及用户空间和内核空间的两个缓冲区。 只有内核才能跟磁盘等硬件进行操作,因此数据在流向程序时,必定会先存在于内核缓冲区,内核缓冲区又称为 PageCache,不同操作系统的 PageCache 机制不一样。 内核缓冲区:系统内核在内核空间中定义的内核缓冲区,即 PageCache。 用户缓冲区:通过 C 语言或其它语言提供的标准 IO 读写函数在用户空间定义的缓冲区。 从上图中可以看到,IO 操作有两种方式: 缓冲IO:同时使用用户缓冲区和内核缓冲区。需要 3 次数据复制以及 1 次…

2022年12月22日 0条评论 2118点热度 29人点赞 痴者工良 阅读全文

1,一个字段是数组,如果数组中不存在这个记录时,向数组增加一个记录。 FilterDefinitionBuilder<WorkflowDo> fd = Builders<WorkflowDo>.Filter; var f = fd.And(fd.Eq(x => x.Id, record.Id), fd.Not(fd.ElemMatch(x => x.Definition, x => x.Version == newVersionStr))); UpdateDefinitio…

2022年12月7日 0条评论 2396点热度 28人点赞 痴者工良 阅读全文

背景: 查找了很多库,要么收费,要么太旧用不了。 经过大量测试,写了打印机的相关代码。 实现的代码不依赖于第三方库。 核心代码 引入这两个库: System.Drawing.Printing Vanara.PInvoke.Printing 这两个库用于使用 winspool.drv 服务,可以避免编写大量 库函数调用代码。 首先编写基础代码: public class PrinterBase { /// <summary> /// 获取默认打印机 /// </summary> /// �…

2022年12月3日 0条评论 4186点热度 4人点赞 痴者工良 阅读全文

goioc 介绍 goioc 是一个基于 GO 语言编写的依赖注入框架,基于反射进行编写。 支持泛型; 简单易用的 API; 简易版本的对象生命周期管理,作用域内对象具有生命; 延迟加载,在需要的时候才会实例化对象; 支持结构体字段注入,多层注入; 对象实例化线程安全,作用域内只会被执行一次。 下载依赖: go get -u github.com/whuanle/goioc v2.0.0 快速上手 定义接口: type IAnimal interface { Println(s string) } 实现接口: ty…

2022年11月27日 0条评论 1766点热度 0人点赞 痴者工良 阅读全文

背景: 打不开远程设置。 也打不开 gpedit.msc。 修复命令(cmd): @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Pack…

2022年11月26日 0条评论 2220点热度 0人点赞 痴者工良 阅读全文

WorkflowDefinitionValidator 是整个验证入口,上一个非常复杂的对象结构。 参考:https://github.com/serverlessworkflow/specification/blob/main/specification.md 通过依赖注入,继续检查下一层的字段。 /// <summary> /// Represents the service used to validate <see cref="WorkflowDefinition"/>s /// &…

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

代码示例如下: System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true; services.ConfigureAll<HttpClientFactoryOptions>(options => { options.HttpMessageHandlerBuilderActions.A[......]继续阅读

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

建立链路 SDK 官方仓库地址: https://github.com/open-telemetry/opentelemetry-go 设计一个这样的执行流程: Run 先后执行 Run1、Run2: a.Run1(newCtx) a.Run2(newCtx) Run1 中,还执行了另一个函数 Run1-1。 使用 opentelemetry SDK 的代码示例如下: package main import ( "context" "go.opentelemetry.io/otel" "io" "log" ) //…

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

使用示例: package main import ( "fmt" "os" "os/signal" ) func main() { // Set up channel on which to send signal notifications. // We must use a buffered channel or risk missing the signal // if we're not ready to receive when the signal is sent. c := make(chan os…

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

使用 Go 中常用的 log 方法: Print/Printf/Println : 打印日志信息 Panic/Panicf/Panicln : 打印日志信息后,以拼装好的字符串为参数调用 Panic Fatal/Fatalf/Fatalln : 打印日志信息后,os.Exit(1) 退出程序 New 一个 Logger 的定义如下: func New(out io.Writer, prefix string, flag int) *Logger { return &Logger{out: out, pref…

2022年11月20日 0条评论 2260点热度 0人点赞 痴者工良 阅读全文
13456727