cloudwogo电商项目常见问题及解决方法
作者:shizhishi |
发布时间: |
分类:后端架构 |
声明:个人技术博客 • 非官方 • 仅供技术学习交流
这是由于导入的模块有其他模块的内容 { "level": "error", "msg": "KITEX: processing request error, remoteService=, remoteAddr=192.168.31.154:51314, error=panic: [happened in biz ha...
### 1. 启动一个服务的时候多个服务被启动
这是由于导入的模块有其他模块的内容
### 2. 出现没有和客户端正确连接导致初始化的问题
```
{
"level": "error",
"msg": "KITEX: processing request error, remoteService=, remoteAddr=192.168.31.154:51314, error=panic: [happened in biz handler, method=CartService.AddItem, please check the panic at the server side] runtime error: invalid memory address or nil pointer dereference\
stack=goroutine 61 [running]:\
runtime/debug.Stack()\
\tD:/Go/src/runtime/debug/stack.go:26 +0x5e\
github.com/cloudwego/kitex/server.(*server).buildInvokeChain.(*server).invokeHandleEndpoint.func1.1()\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/server/server.go:343 +0x145\
panic({0x1d5dca0?, 0x2d856b0?})\
\tD:/Go/src/runtime/panic.go:785 +0x132\
github.com/cloudwego/biz-demo/gomall/app/cart/biz/service.(*AddItemService).Run(0xc001d6fa48, 0xc001c98280)\
\tD:/goprojects/app/cart/biz/service/add_item.go:24 +0x45\
main.(*CartServiceImpl).AddItem(0x2d883b0?, {0x21af810?, 0xc001c945d0?}, 0xc001c8e030?)\
\tD:/goprojects/app/cart/handler.go:14 +0x2f\
github.com/cloudwego/biz-demo/gomall/rpc_gen/kitex_gen/cart/cartservice.addItemHandler({0x21af810, 0xc001c945d0}, {0x1d82c40?, 0x2e4ed20}, {0x1e06780?, 0xc001c9a020?}, {0x1e0cbe0, 0xc001c9a030})\
\tD:/goprojects/rpc_gen/kitex_gen/cart/cartservice/cartservice.go:119 +0x22c\
github.com/cloudwego/kitex/server.(*server).buildInvokeChain.(*server).invokeHandleEndpoint.func1({0x21af810, 0xc001c945d0}, {0x1e06780, 0xc001c9a020}, {0x1e0cbe0, 0xc001c9a030})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/server/server.go:355 +0x2b3\
github.com/cloudwego/kitex/server.(*server).fixStreamCtxDiverge.newCtxInjectMW.func1.1({0x21af810?, 0xc001c945d0?}, {0x1e06780?, 0xc001c9a020?}, {0x1e0cbe0?, 0xc001c9a030?})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/server/middlewares.go:56 +0x116\
github.com/cloudwego/kitex/pkg/remote/trans.(*svrTransHandler).OnMessage(0xc001d2e780, {0x21af810, 0xc001c945d0}, {0x2256280?, 0xc001dc0120?}, {0x2256280, 0xc001c96ab0})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans/default_server_handler.go:226 +0x8b\
github.com/cloudwego/kitex/pkg/remote/trans/detection.(*svrTransHandler).OnMessage(0xc001d0af00?, {0x21af810, 0xc001c945d0}, {0x2256280, 0xc001dc0120}, {0x2256280, 0xc001c96ab0})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans/detection/server_handler.go:130 +0x58\
github.com/cloudwego/kitex/pkg/remote.(*TransPipeline).OnMessage(0xc001d12e80, {0x21af810?, 0xc001dc6780?}, {0x2256280, 0xc001dc0120}, {0x2256280, 0xc001c96ab0})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans_pipeline.go:156 +0x117\
github.com/cloudwego/kitex/pkg/remote/trans.(*svrTransHandler).OnRead(0xc001d2e780, {0x21af810, 0xc001dc6780}, {0x21b4a20, 0xc001de01c0})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans/default_server_handler.go:201 +0x485\
github.com/cloudwego/kitex/pkg/remote/trans/detection.(*svrTransHandler).OnRead(0xc001d49020, {0x21af810, 0xc001dc6780}, {0x21b4a20, 0xc001de01c0})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans/detection/server_handler.go:95 +0xb7\
github.com/cloudwego/kitex/pkg/remote.(*TransPipeline).OnRead(0xc001d12e80, {0x21af810?, 0xc001dc6780?}, {0x21b4a20, 0xc001de01c0})\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans_pipeline.go:129 +0xbb\
github.com/cloudwego/kitex/pkg/remote/trans/gonet.(*transServer).BootstrapServer.func1()\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans/gonet/trans_server.go:101 +0x223\
created by github.com/cloudwego/kitex/pkg/remote/trans/gonet.(*transServer).BootstrapServer in goroutine 13\
\tC:/Users/shizhishi/go/pkg/mod/github.com/cloudwego/kitex@v0.11.3/pkg/remote/trans/gonet/trans_server.go:85 +0x88\
",
"time": "2024-11-20T16:23:21+08:00"
}
```
这表明 Kitex 尝试通过 HTTP 请求将服务注册到 Consul 代理时,连接被拒绝了。
发现问题在
这里的问题主要有以下几种
1.
没有进行客户端rpc连接配置或在Init中没有调用
2.
没有在main.go中正确初始化 `rpc.Init()`
### 3.解决 Kitex 服务注册 Consul 失败的问题
在使用 Kitex 构建微服务时,我们经常需要将服务注册到 Consul 以实现服务发现和健康检查。然而,有时候在启动服务时会遇到连接 Consul 失败的问题,导致服务无法正常运行。
需要检查kitex的端口,切记端口不能重复
### 此外
#### 1. 检查 Consul 代理是否正在运行
首先,确保 Consul 代理已经在本地运行,并且监听了 `127.0.0.1:8500` 端口。您可以通过以下命令检查 Consul 代理的状态:
```
consul agent -dev
```
如果您使用的是非开发模式,确保 `Consul`代理已经正确启动并配置。
#### 2. 检查防火墙和网络配置
确保没有防火墙或其他网络配置阻止了对 `127.0.0.1:8500` 的访问。您可以尝试使用 `curl` 命令测试连接:
```
curl http://127.0.0.1:8500/v1/agent/self
```
如果 `curl` 命令返回了 Consul 代理的信息,说明连接是成功的。
#### 3. 检查 Consul 配置
确保 `Consul` 代理的配置文件中没有禁止外部连接的设置。默认情况下,`Consul` 代理在开发模式下会监听所有接口。如果使用的是生产模式,确保配置文件中指定了正确的绑定地址和端口。
#### 4. 检查 Consul 代理日志
查看 `Consul`代理的日志,以获取更多关于连接被拒绝的详细信息。日志文件通常位于 `Consul`安装目录下的 `logs`文件夹中,或者您可以使用以下命令查看日志:
```
`consul agent -dev -log-level=debug`
```
### 4.使用链路追踪监控时,出现依赖报错
可以看出`go.openteltmetry.io/otel/sdk/metric`出现问题,如果只升级g`o.openteltmetry.io/otel/sdk`,只会让`metric`到达版本`v1.25.0`所以需要单独更新`metric`