首页
关于
Search
1
信创日志:银河麒麟V10 安装 国产NGINX
1,297 阅读
2
信创日志:银河麒麟V10 安装 国产JDK - Alibaba dragonwell
384 阅读
3
docker_portainer安装教程
382 阅读
4
搭建SMB 的网络服务器
256 阅读
5
Docker离线安装教程
250 阅读
默认分类
docker虚拟化技术
网络服务器
数据库
spring
spring boot
spring cloud
信创-国产化
鸿蒙应用开发
Go
树莓派
AidLux OS
Vue 3
React
登录
/
注册
Search
标签搜索
docker
自建仓库
regustry
微服务
spring cloud
跨平台应用
李胤
累计撰写
26
篇文章
累计收到
32
条评论
首页
栏目
默认分类
docker虚拟化技术
网络服务器
数据库
spring
spring boot
spring cloud
信创-国产化
鸿蒙应用开发
Go
树莓派
AidLux OS
Vue 3
React
页面
关于
搜索到
26
篇与
的结果
2025-07-16
Go语言学习笔记:Consul访问方式之DNS
本次使用了一个DNS包是miekg/dns,可以自由定义从哪个DNS去获取对应的IP信息,如果没有这个包请先下载,go get github.com/miekg/dns下载后编写如下代码:package main import ( "fmt" "log" "github.com/miekg/dns" ) func queryConsulDNS(serviceName, consulAddr string) ([]string, error) { m := new(dns.Msg) m.SetQuestion(dns.Fqdn(serviceName), dns.TypeA) m.RecursionDesired = false // 不需要递归 c := new(dns.Client) in, _, err := c.Exchange(m, consulAddr+":8600") if err != nil { return nil, fmt.Errorf("DNS 查询失败: %v", err) } var ips []string for _, a := range in.Answer { if ipRecord, ok := a.(*dns.A); ok { ips = append(ips, ipRecord.A.String()) } } return ips, nil } func main() { serviceName := "consul.service.consul" // 这个不用变,每个consul启动后就有的 consulAddr := "xxx.xxx.xxx.xxx" // 注意这里不要加端口,ip是你的consul物理机的IP(内外网都行,保证当前测试机能访问到就行),我们手动指定 :8600,这个端口是consul的DNS服务端口 log.Printf("【客户端】查询 Consul DNS: %s", serviceName) ips, err := queryConsulDNS(serviceName, consulAddr) if err != nil { log.Fatalf("【客户端】DNS 查询失败: %v", err) } if len(ips) == 0 { log.Fatalf("【客户端】未找到服务 IP 地址") } for _, ip := range ips { log.Printf("【客户端】发现服务 IP: %s", ip) } }运行结果如下:2025/07/16 14:55:01 【客户端】查询 Consul DNS: helloworld.service.consul 2025/07/16 14:55:01 【客户端】发现服务 IP: 192.168.10.229
2025年07月16日
7 阅读
0 评论
0 点赞
2025-07-11
Go语言学习笔记:自定义文件之间进行相互调用
一个语言强大不强大就看调用文件是否方便不方便,效率高不高的问题就会存在,分开各个文件是为了增强代码的可读性,并为此提供统一的对外函数,也就是对应软件系统的可维护和可扩展,这样就是大系统的基础。首先,想要调用各个本地目录中的文件(也就是同一个module)下,以下教程是unix或基于此的系统,第一步:先创建项目文件夹mkdir myproject第二步:初始化项目cd myproject && go mod init myproject初始化项目后,目录中多出一个go.mod,以下就是文件内容module myproject go 1.24.4第三步:创建main.go和其它要调用文件在项目根目录下,创建main.go,然后要想调用其他的文件,就需要先在项目创建根目录下创建一个目录,然后在这个文件下创建下对应的文件,. ├── calculator │ └── calculator.go ├── external │ ├── exchange │ │ └── exchange.go │ ├── letter │ │ └── letter.go │ └── strings │ └── strings.go ├── funcdemo │ └── funcdemo.go ├── go.mod └── main.go这是我的写的一个练手项目,这里边就是完整的项目以下文件是main.gopackage main import ( "fmt" "myproject/funcdemo" ) func main() { a, _ := funcdemo.Calculator(105, 7) fmt.Println("105 x 7 = ", a) }以下文件是funcdemo.gopackage funcdemo import "fmt" /* @param a 这是第一个参数 @param b 这是第二个参数 */ func Calculator(a, b int) (mul int, div int) { //在这里,简单的赋值就可以 //并初始化它的值 mul = a * b div = a / b //这里有return关键字 //没有任何结果参数 return } func Mul(a, b int) int { c := a * b fmt.Printf("这是一个结果:%d\n", c) return 0 }{callout color="#f0ad4e"}go现在用的是module管理,所以一个module就是一个项目,其中仅有一个 go.mod 在funcdemo.go文件中,你可以看到方法名字第一个是大写,这个是有说法的,涉及到私有函数和公共函数,方法名全部小写是私有函数仅在当前包中使用,而方法名第一个字母大写的是公共函数,可以在包外调用的时候使用。{/callout}
2025年07月11日
6 阅读
0 评论
0 点赞
2025-07-09
Go语言学习笔记:从GO中找JAVA封装类
最近都是在找时间学习GO语言,这个今天学习到了GO的方法,通过一段代码你就很快明白他的类和方法的定义package main import ( "fmt" ) type author struct { name string particles string } func (a author) show() { fmt.Printf("作者名称:%s \n", a.name) fmt.Printf("作者特征:%s \n", a.particles) } func main() { // 调用 strings 模块的函数 // a, _ := funcdemo.Calculator(105, 7) // fmt.Println("105 x 7 = ", a) // fmt.Println("105 / 7 = ", b) // funcdemo.Mul(23, 45) // fmt.Print("wejriwjer\n") // defer funcdemo.Mul(23, 45) res := author{ name: "作者", particles: "203", } res.show() }这一段代码对应JAVA中的类的部分功能,类似于你在JAVA中新建了一个实体类,但是属性都是公共权限的属性,你可以在创建类的示例后,直接访问这个属性。说明:涉及到同名的方法,与java不同,在一个文件中,它类似于java中有不同类的不同方法,接受类型就是java的类,所以不同的类有同名的方法,不能支持同接受类型的同名方法不同参数的方法,即是JAVA中的重载概念。
2025年07月09日
7 阅读
0 评论
0 点赞
2025-06-25
Go语言学习笔记:Go Micro——Consul注册中心
应用安装安装 Consul1、访问官网的下载地址: 下载地址:https://www.consul.io/downloads 左侧的红色框内容是你要选择的操作系统的类型,我现在使用的是mac电脑,选择 macOS , 然后看右侧的安装教程。教程中包含包管理的方式和二进制进行安装,右上角是可以选择版本的。{dotted startColor="#ff6c6c" endColor="#1989fa"/}验证并启动验证方式在命令行中输入以下命令进行回车consul --version开发环境启动在命令行中输入以下命令进行回车consul agent -dev命令执行完毕后,浏览器中访问 http://localhost:8500/ {dotted startColor="#ff6c6c" endColor="#1989fa"/}生产环境配置Consul 集群配置# 节点1 consul agent -server -bootstrap-expect=3 -data-dir=/var/consul -node=consul-1 -bind=192.168.1.10 -client=0.0.0.0 -config-dir=/etc/consul.d # 节点2 consul agent -server -data-dir=/var/consul -node=consul-2 -bind=192.168.1.11 -client=0.0.0.0 -config-dir=/etc/consul.d -join=192.168.1.10 # 节点3 consul agent -server -data-dir=/var/consul -node=consul-3 -bind=192.168.1.12 -client=0.0.0.0 -config-dir=/etc/consul.d -join=192.168.1.10
2025年06月25日
12 阅读
0 评论
0 点赞
2025-06-21
【鸿蒙开发】从零开始:DevEco Studio 开发IDE
DevEco Studio 是华为为鸿蒙操作系统(HarmonyOS)量身定制的集成开发环境(IDE)。它支持多种开发语言,包括 Java、JavaScript 和 C/C++,并提供了丰富的工具链和插件,帮助开发者高效构建、调试和发布鸿蒙应用。DevEco Studio 集成了代码编辑、UI 设计、模拟器调试、性能分析等功能,是鸿蒙应用开发的核心工具。更多内容看这个地址内容 DevEco Studio 简介与安装 我这里的环境是windows 11的版本,具体的版本不重要,现在是没问题。我创建了一个项目,这个项目采用的模版如下: 项目创建成功后启动应用报错,错误内容如下:23:22:30.565: Build task in 8 s 624 ms 23:22:30.565: Launching top.arwtec.selflearn 23:22:30.566: $ hdc shell aa force-stop top.arwtec.selflearn 23:22:30.821: $ hdc shell mkdir data/local/tmp/575e0fb91a7a4157b5469bf7ca3dd2d4 23:22:31.086: $ hdc file send F:\developDir\devEco\selflearn\entry\build\default\outputs\default\entry-default-unsigned.hap "data/local/tmp/575e0fb91a7a4157b5469bf7ca3dd2d4" in 265 ms 23:22:31.284: $ hdc shell bm install -p data/local/tmp/575e0fb91a7a4157b5469bf7ca3dd2d4 in 197 ms Install Failed: error: failed to install bundle. code:9568347 error: install parse native so failed. View detailed instructions. 23:22:31.316: $ hdc shell rm -rf data/local/tmp/575e0fb91a7a4157b5469bf7ca3dd2d4 23:22:31.317: Launch top.arwtec.selflearn failed, starting handle failure progress Error while Deploy Hap最后通过 解决错误链接 博主的方法解决了我的问题,是项目根目录下build-profile.json5文件中编译的时候缺少 "abiFilters": ["x86_64"] ,下边是原文件内容:{ "apiType": "stageMode", "buildOption": { "externalNativeOptions": { "path": "./src/main/cpp/CMakeLists.txt", "arguments": "", "cppFlags": "", } }, "buildOptionSet": [ { "name": "release", "arkOptions": { "obfuscation": { "ruleOptions": { "enable": false, "files": [ "./obfuscation-rules.txt" ] } } }, "nativeLib": { "debugSymbol": { "strip": true, "exclude": [] } } }, ], "targets": [ { "name": "default" }, { "name": "ohosTest", } ] }{ "apiType": "stageMode", "buildOption": { "externalNativeOptions": { "path": "./src/main/cpp/CMakeLists.txt", "arguments": "", "cppFlags": "", "abiFilters": ["x86_64"] } }, "buildOptionSet": [ { "name": "release", "arkOptions": { "obfuscation": { "ruleOptions": { "enable": false, "files": [ "./obfuscation-rules.txt" ] } } }, "nativeLib": { "debugSymbol": { "strip": true, "exclude": [] } } }, ], "targets": [ { "name": "default" }, { "name": "ohosTest", } ] }
2025年06月21日
6 阅读
0 评论
0 点赞
1
2
3
...
6