02脚手架
protoc-28.3-win64 复制到/usr/local/bin
此操作为Linux系统下的操作,相当于Windows系统中的添加系统变量:
高级系统设置 --> 环境变量 --> 系统变量 --> 新建
变量名 PROTOC_HOME
变量值(例:D:/develop/protoc-28.3-win64/bin)
path 中,新建 输入 %PROTOC_HOME%\bin
完成后可Win + R 调出运行窗口,输入 cmd 回车,在cmd 窗口中 输入 protoc --version 显示版本信息进行确认。
完成后记得重启VSCode
03服务注册与服务发现
docker compose up -d 报错
/usr/bin/bash: /cygdrive/c/.../Docker/resources/bin/docker: No such file or directory
检查 Cygwin 或 Git Bash 配置
错误信息中的 /cygdrive/c/.../Docker/resources/bin/docker 表明你可能在 Cygwin 或 Git Bash 中运行了命令。需要确认以下内容:
-
在 Cygwin/Git Bash 中启用 Docker: 确保 Docker 命令在当前环境中可用:
alias docker="/cygdrive/c/.../Docker/resources/bin/docker.exe" alias docker-compose="/cygdrive/c/.../Docker/resources/bin/docker-compose.exe" -
切换到 PowerShell/Windows CMD: 如果 Docker Desktop 已正确安装,建议切换到 PowerShell 或 Windows CMD,运行以下命令测试:
cd .../gomall docker compose up -d
gomall\demo\demo_proto\cmd\client\main.go
代码与视频代码相比需略作修改
package main
import (
"context"
"fmt"
"log"
"github.com/cloudwego/biz-demo/gomall/demo/demo_proto/kitex_gen/pbapi"
"github.com/cloudwego/biz-demo/gomall/demo/demo_proto/kitex_gen/pbapi/echoservice"
"github.com/cloudwego/kitex/client"
consul "github.com/kitex-contrib/registry-consul"
)
func main() {
r, err := consul.NewConsulResolver("127.0.0.1:8500")
if err != nil {
log.Fatal(err)
}
c, err := echoservice.NewClient("demo_proto", client.WithResolver(r))
if err != nil {
log.Fatal(err)
}
res,err:=c.Echo(context.TODO(),&pbapi.Request{Message: "Hello, world!"})
if err!=nil{
log.Fatal(err)
}
fmt.Printf("%v",res)
}
go run cmd/client/main.go 报错
no more instances to retry: last error: %!w(<nil>)
下图中的address改为 本机ip:端口
04配置管理
docker compose up 报错
需科学上网
08前端页面(上)
使用Air热加载Go程序(windows环境下)
安装
go get -u github.com/cosmtrek/air
执行成功之后,找到 air 所在目录,类似
C:\Users\z\go\pkg\mod\github.com\cosmtrek\air@v1.61.1
每个人的目录都不一样,自行进入自己的 go 的安装目录寻找
windows配置Air环境变量
进入 air 目录下
在终端中打开,执行:
go build . 在目录下会生成 air.exe 文件
将所在目录添加至PATH环境变量:
类似C:\Users\z\go\pkg\mod\github.com\cosmtrek\air@v1.61.1
执行 air -v 命令查看是否配置成功:
配置air.conf文件
在项目根目录下创建 .air.conf 文件,将下面代码复制进去
root = "."
tmp_dir = "tmp"
[build]
# 只需要写你平常编译使用的shell命令。你也可以使用 `make`
cmd = "go build -o main.exe ."
# 由`cmd`命令得到的二进制文件名
bin = "main.exe"
# 自定义执行程序的命令,可以添加额外的编译标识例如添加 GIN_MODE=release
full_bin = "main.exe"
# 监听以下文件扩展名的文件.
include_ext = ["go", "tpl", "tmpl", "html"]
# 忽略这些文件扩展名或目录
exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]
# 监听以下指定目录的文件
include_dir = []
# 排除以下文件
exclude_file = []
# 如果文件更改过于频繁,则没有必要在每次更改时都触发构建。可以设置触发构建的延迟时间
delay = 1000 # ms
# 发生构建错误时,停止运行旧的二进制文件。
stop_on_error = true
# air的日志文件名,该日志文件放置在你的`tmp_dir`中
log = "air_errors.log"
[log]
# 显示日志时间
time = true
[color]
# 自定义每个部分显示的颜色。如果找不到颜色,使用原始的应用程序日志。
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"
[misc]
# 退出时删除tmp目录
clean_on_exit = true
Font Awesome CDN
CDN (Content Delivery Network,内容分发网络) 就是通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容。
在 HTML 页面的 <head> 部分添加链接中的<link>标签
例如:
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.6.0/css/all.css" rel="stylesheet">