用gometalinter检查后这部分代码:
//ListenerButton is hanging listeners for contact button
func ListenerButton(number int, button *ui.Button, conn net.Conn) string {
button.OnClicked(func(*ui.Button) {
sliceMembers := []string{login, button.Text()}
groupName = login + button.Text()
_, err := conn.Write([]byte(JSONencode(login, "", "",
0, groupName, 1,
login, sliceMembers, " ", " ", "",
" ", " ", " ", true, " ", "CreateGroup")))
if err != nil {
log.Println(err)
}
fmt.Println(login, groupName, number, "graphic 131")
})
return groupName
}
Run Code Online (Sandbox Code Playgroud)
我有这个警告:
warning: conn can be io.Writer (interfacer)
Run Code Online (Sandbox Code Playgroud)
它是什么意思以及我如何解决它?
我正在设置一个新的容器“ A”,它正在从容器“ B”调用某些终结点。为什么这些电话总是返回dial tcp 116.203.153.48:8082: i/o timeout?
来自容器“ A”的呼叫正在使用公共IP。所有容器都部署在CentOS 7上。每个容器都有自己的网络,该网络中有自己的数据库。另外,返回错误的调用可以从任何REST-API客户端(例如Postman)正常工作。resolv.conf文件中的名称服务器已更改为Google的8.8.8.8和8.8.4.4
错误: error="Post http://116.203.153.48:8082/new_user?email=eto@email.com: dial tcp 116.203.153.48:8082: i/o timeout"
从程序中调用:
req, err := http.NewRequest(http.MethodPost, fmt.Sprintf("http://116.203.153.48:8082/new_user?email=%s", user.Email), nil)
if err != nil {
return err
}
httpClient := &http.Client{}
resp, err := httpClient.Do(req)
if err != nil {
return err
}
Run Code Online (Sandbox Code Playgroud)
UPD:
Docker-组成第一个容器:
payment-ms:
container_name: payment-ms
build:
context: .
dockerfile: Dockerfile
environment:
- DB_HOST=payment-ms-db
ports:
- 8082:8082
Run Code Online (Sandbox Code Playgroud)
第二个容器的Docker-compose文件:
user-ms:
container_name: user-ms
build:
context: .
dockerfile: Dockerfile
environment:
- DB_HOST=user-ms-db
ports: …Run Code Online (Sandbox Code Playgroud)