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

建筑材料采购网站淘宝开店需要多少钱

建筑材料采购网站,淘宝开店需要多少钱,做网站在哪里做比较好,做一个京东这样的网站需要多少钱addTenant api 和 rpc 的实现 上一篇我们说到咱们还剩下 addTenant 功能还未实现#xff0c;不知道有没有兄弟感兴趣去实验一波的#xff0c;本篇文章进行简要补充 根据上一篇文章分析#xff0c;其实我们只需要执行如下几步即可#xff1a; 编写 tenant.api#xff0c…addTenant api 和 rpc 的实现 上一篇我们说到咱们还剩下 addTenant 功能还未实现不知道有没有兄弟感兴趣去实验一波的本篇文章进行简要补充 根据上一篇文章分析其实我们只需要执行如下几步即可 编写 tenant.api提供外部 addTenant 的 http 接口 编写 tenant.api 提供一个 POST http 的接口 / api /tenant/addtenant type (AddTenantReq {Name string json:nameAddr string json:addr}AddTenantRsp {Id string json:id} ) service tenant {handler addTenantpost /api/tenant/addtenant(AddTenantReq) returns (AddTenantRsp)goctl 生成 api 代码 goctl api go -api tenant.api -dir .修改 api 的配置和逻辑层让 api 层去调用之前写好的 rpc 接口 即可 对于配置可以模仿上一篇文章 order.api 的配置进行修改另外只需要调整 addTenant 的 logic 层即可 func (l *AddTenantLogic) AddTenant(req *types.AddTenantReq) (*types.AddTenantRsp, error) {// todo: add your logic here and delete this linersp,err :l.svcCtx.TenantRpc.AddTenant(l.ctx, tenant.AddTenantReq{Name: req.Name,Addr: req.Addr,})if err !nil{return nil,err}return types.AddTenantRsp{Id: rsp.Id},nil }具体的代码案例可以访问地址https://github.com/qingconglaixueit/my_test_Demo 下面我们来看是 go-zero 中 日志组件 logx 的剖析 logx 日志组件剖析 对于 logx 日志组件分别从如下几个方面来聊一聊我的理解如果描述有不当的地方还请多加评论多加交流 Go-zero 中 logx 是如何使用的 Logx 基本的数据结构 Logx 的默认接口实现 Logx 日志存储位置以及自定义存储日志位置的实现 Logx 实现自定义接口的方式 Go-zero 中 logx 是如何使用的 我们以之前的 demo 关于 tenant 的 rpc 部分作为例子追踪一下代码是如何走到日志部分的逻辑的 可以看到在 tenant.go 的文件中做的是服务的启动 zrpc.MustNewServer 实际上是调用 go-zero 的 zrpc 包 的 NewServer 函数传入的参数是 c RpcServerConf 我们 rpc 服务的配置就是咱们项目中的 etc/tenant.yaml 今天不聊关于 RpcServerConf 的结构咱们重点说说 logx register internal.RegisterFn 注册服务的回调函数 NewServer 函数做了如下几件事情 RpcServerConf 配置数据的有效性检查 初始化 metrics 的 options 设置服务名注册 etcd 服务服务名就是上述配置文件中的 Name 字段 c.SetUp() 启动整个服务 对于 logx 日志组件的启动就是在 c.SetUp() 中完成 Logx 基本的数据结构 继续看到 logx.SetUp() 中的具体实现 函数需要传入的数据结构是这样的 LogConf type LogConf struct {ServiceName string json:,optionalMode string json:,defaultconsole,options[console,file,volume]Encoding string json:,defaultjson,options[json,plain]TimeFormat string json:,optionalPath string json:,defaultlogsLevel string json:,defaultinfo,options[info,error,severe]Compress bool json:,optionalKeepDays int json:,optionalStackCooldownMillis int json:,default100 }ServiceName设置服务名称可选。在 volume 模式下该名称用于生成日志文件。在 rest/zrpc 服务中名称将被自动设置为 rest或zrpc 的名称。 Mode输出日志的模式默认是 console console 模式将日志写到 stdout/stderrfile 模式将日志写到 Path 指定目录的文件中volume 模式在 docker 中使用将日志写入挂载的卷中 Encoding: 指示如何对日志进行编码默认是 json json模式以 json 格式写日志plain模式用纯文本写日志并带有终端颜色显示 TimeFormat自定义时间格式可选。默认是 2006-01-02T15:04:05.000Z07:00 Path设置日志路径默认为 logs Level: 用于过滤日志的日志级别。默认为 info info所有日志都被写入error, info 的日志被丢弃severe, info 和 error 日志被丢弃只有 severe 日志被写入 Compress: 是否压缩日志文件只在 file 模式下工作 KeepDays日志文件被保留多少天在给定的天数之后过期的文件将被自动删除。对 console 模式没有影响 StackCooldownMillis多少毫秒后再次写入堆栈跟踪。用来避免堆栈跟踪日志过多 另外对于 SetUp 函数做了如下几件事 设定日志等级 初始化时间格式 根据编码方式初始化存储日志编码类型 根据设定的模式来初始化 Writer 句柄 Logx 的默认接口实现 对于 logx 打印日志的具体接口定义在logx 包的 logger.go 文件中 对于上述接口根据需要传递的参数我们可以分为如下几类 Error, Info, Slow: 将任何类型的信息写进日志使用 fmt.Sprint(...) 来转换为 string Errorf, Infof, Slowf: 将指定格式的信息写入日志 Errorv, Infov, Slowv: 将任何类型的信息写入日志用 json marshal 编码 Errorw, Infow, Sloww: 写日志并带上给定的 key:value 字段 WithContext将给定的 ctx 注入日志信息例如用于记录 trace-id和span-id WithDuration: 将指定的时间写入日志信息中字段名为 duration 例如接口名后缀带有 w 的是需要咱们传入 keyvalue 的例如传入的结构是这样的 实际上我们可以看到在 logx 源码中其实有很多文件都已经根据自己的使用情况去实现了上述 Logger 接口 举一个 traceLogger 的例子 实际上我们可以直接看到我们之前实现的 GetTenant rpc 方法 我们可以看到当调用了NewGetTenantLogic 方法之后实际上是会调用 logx.WithContext(ctx) 初始化一个 traceLogger 的句柄 traceLogger 实现了上述 Logger 接口 因此当我们需要在 rpc 中打印日志的时候我们可以这样来使用 这个时候实际上是调用的 traceLogger 对应的实现代码 我们可以看到打印出来的日志是我们所期望的信息 此处的字段对应含义是这样的 Timestamp 时间戳 Level 日志等级 Duration 时间间隔 Caller 日志调用者 Content 具体的日志信息 仔细查看上述日志我们可以发现还有 trace 和 span 字段也打印出来了但是 logEntry 为什么没有定义呢 咱们稍微追一下代码不难看出是 traceLogger 内部的 info 函数进行日志信息的拼接 Logx 自定义存储日志位置 和 实现自定义接口的方式 Logx 自定义存储日志位置 和 实现自定义接口的方式其实我在这里就不需要过多的解释了简单说明一下实现手段就可以了有必要的话咱们可以查看 go-zero 官方文档 https://go-zero.dev/cn/docs/component/logx/ 自定义存储日志位置 对于咱们需要修改日志的输出位置实际上我们可以仔细思考一下对于日志的数据go-zero 还是使用的 golang io 包中的 Writer 接口 咱们只需要定义对象去实现 Writer 接口 中的 Write(p []byte) (n int, err error) 方法就可以了 官网也给了我们例子例如咱们实现输出的日志往 kafka 里面吐我们就可以这样 实现自定义接口 实现自定义接口咱们其实刚才看 traceLogger 的实现方式我们就能领悟到 traceLogger 去实现 Logger 接口中的方法并且加入自己自定义的逻辑例如加上了 trace 和 span 那么对于我们自定义接口其实也是非常容易的照葫芦画瓢即可了 \ 感谢阅读欢迎交流点个赞关注一波 再走吧 欢迎点赞关注收藏 朋友们你的支持和鼓励是我坚持分享提高质量的动力 好了本次就到这里 技术是开放的我们的心态更应是开放的。拥抱变化向阳而生努力向前行。 我是阿兵云原生欢迎点赞关注收藏下次见~ 可以进入地址进行体验和学习https://xxetb.xet.tech/s/3lucCI
http://www.hkea.cn/news/14432803/

相关文章:

  • 跟做竞价的网站友情链接有用吗windows系统优化软件
  • 网站开发如可使用支付宝聊天软件开发技术
  • 专业北京网站建设公司排名电商网站开发简历
  • 潍城营销型网站建设云服务器上建网站
  • 订制电子商务网站 价格网站制作应该注意到的问题
  • 如何制作app软件下载济南seo关键词排名工具
  • 什么网站可以做免费广告网站gif图标素材
  • 冠县哪做网站行业网站建设哪家好
  • 资源类网站怎么做互联网创始人
  • 上海平台网站建设哪家有装饰公司网站
  • 手机老是下载一些做任务的网站wordpress 创建数据库文件
  • 腾讯云网站建设流程framer网页界面设计
  • 怎么做一个电商网站加强志鉴网站建设
  • 新余服装网站建设招聘网站建设人员要求
  • 快速学习网站建设深圳网站建设联系电话
  • 网站中使用特殊字体wordpress贴内幻灯片
  • 做导航网站有发展吗做一个跨境电商网站
  • 企业官方网站的建设杭州建站价格
  • 网站设计评价设计发布平台
  • 手机移动端网站济南槐荫区最新消息
  • 家具网站策划书wordpress在线报名插件
  • 网站建设 国家标准网站建站公司
  • 北京网站制作南昌网站多少个关键词
  • wordpress不能登录后台网站优化要素
  • wordpress设置文件大小汕头seo管理
  • 网站设计主页有字体设计网站
  • 中国建设银行龙卡信用卡网站搜索引擎优化实验报告
  • 一家做运动鞋的网站手工艺品网站建设侧胡顺
  • 网站运营情况怎么写wordpress 添加主题编辑器
  • 镇江网站设计建设gooood谷德设计网站