当前位置: 首页 > news >正文

做白酒网站建一个网站要多久

做白酒网站,建一个网站要多久,山东省交通运输厅网站开发单位,seo自动优化软件安卓事实证明人有的时候也不能太偷懒,太偷懒容易给自己埋坑。 问题的背景: web端调用服务A,服务A异步调用服务B。服务A有四个场景需要调用服务B,所以,服务A中封装了一个公用的方法,唯一的区别是,场…

事实证明人有的时候也不能太偷懒,太偷懒容易给自己埋坑。

问题的背景:

web端调用服务A,服务A异步调用服务B。服务A有四个场景需要调用服务B,所以,服务A中封装了一个公用的方法,唯一的区别是,场景不同时,发给服务B的body不相同,web端通过四个接口调用服务A,服务A组装body信息再调用服务B,只有一种场景报了下面的错误,这个错误看着像是域名解析的问题。但是,理论上不应该存在域名解析的错误,因为,从程序的逻辑看,因为调用B服务的方法是公用的,只有body不一样。

问题定位过程:

从控制变量的角度看,首先就是怀疑这个body有问题,通过postman,用同样的body测试了一下,没有问题,说明不会是body的问题。

只能考虑其他的问题。在web页面调用,然后把curl拷贝出来,直接导入postman测试。这种情况下,postman调用没有出问题。

比对了一下,web端调用的http请求的header和postman调用的http请求的header(虽然是复制过来的,但是,实际请求头还是发生了变化,postman做了处理)。

两者的User-Agent头不一样。

由此,可以推测,因为header导致了这个问题。

解决方案:

有了上面的推测,只要简单验证一下就可以了。由于原来的链路中,服务A请求服务B的过程中,header是直接复制了web端请求服务A时的header,所以,导致了这个问题。

所以,去掉这个复制header的操作,改为按照实际需求传header。

func SendRequest(ctx *gin.Context, url string, reqBody map[string]interface{}, header map[string]string) (string, error) {var err errorreq := &http.Request{}defer func() {if err != nil {global.GIN_LOG.ErrorWithContext(ctx, err)}}()//map转bytereqBodyByte, err := json.Marshal(reqBody)if err != nil {return "", err}global.GIN_LOG.InfoWithContext(ctx, fmt.Sprintf("SendRequest method:%+v,url:%+v,body:%+v", "POST", url, string(reqBodyByte)))// 创建一个新的请求req, err = http.NewRequest("POST", url, strings.NewReader(string(reqBodyByte)))if err != nil {return "", err}for key, value := range header {req.Header.Set(key, value)}client := &http.Client{}resp, err := client.Do(req)if err != nil {return "", err}defer resp.Body.Close()body, err := io.ReadAll(resp.Body)if err != nil {return "", err}global.GIN_LOG.InfoWithContext(ctx, fmt.Sprintf("SendRequest response body:%+v", string(body)))return string(body), nil
}

后续

改了之后,进行多次测试,发现不是一个接口有问题,出现这个问题的规律变得不一定,再测试发现还是属于域名解析有问题。内部服务之间调用,采取svc方式。

在Kubernetes(常简称为K8s)中,Service(简称Svc)是一个核心概念,用于定义应用程序访问服务的方式。它提供了一种将Pod组织起来以及暴露他们的方法,以保证其他应用能够访问到这些应用。Service允许我们为一组Pod提供一个统一的入口,实现负载均衡、服务发现和解耦应用层与网络层的关系。具体来说,Svc具有以下特点:

  • 服务发现:Svc可以防止因滚动升级等因素导致Pod IP发生改变而失联,找到提供同一个服务的Pod。
  • 负载均衡:Svc可以定义一组Pod的访问策略。
http://www.yayakq.cn/news/104311/

相关文章:

  • 门户网站开发费怎做账怎么创建自己的网址
  • 国内建设网站的公司wordpress wp editor
  • 要加强网站内容建设永康网站建设优化建站
  • 网站工程和网络工程有什么区别wordpress静态cdn
  • 网站标题的写法专用车网站建设
  • 郑州网站推广培训wordpress媒体库自定义
  • 推荐一个做照片书的网站永久域名免费注册网站
  • 网站开发提供图片加载速度python基础教程电子书百度网盘
  • 浙江网站建设平台潜力的网站设计制作
  • cms网站建设的优缺点陕西省建设执业资格注册管理中心网站
  • 网站怎么做电脑系统下载软件wordpress 内容页调用
  • 长寿做网站绥化建设网站
  • 青岛做网站公司哪家好珠宝网络营销方式
  • wordpress站点wordpress设置静态之后文章打不开
  • 智能模板网站建设方案网站建设哪家服务好
  • 网站建设文章官网app安装下载官网
  • 梁山县网站建设小游戏 打开
  • 大连微网站建设wordpress站内搜索次数
  • 网站定位策划wordpress 图片上传路径
  • 帝国cms灵动标签做网站地图贵阳个人做网站
  • 空间手机版网站目录建设动漫网站建设毕业设计
  • 自己做的网站怎么添加文档创网站
  • 大连海外网站建设河北众成建设有限公司网站
  • 网站建设工作都干啥画册设计网站
  • 支付宝支持12306网站建设牡丹江百度推广
  • wordpress查询码seo系统是什么意思
  • 石家庄 网站编辑帝国做的网站删除域名后缀
  • 在农村开个网站要多少钱东莞临时工最新招聘
  • 济南网站建设联系小七宁波制作网站知名
  • 湘潭租房网站广州seo效果