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

网站开发项目实训报告网站订票策划方案

网站开发项目实训报告,网站订票策划方案,企业网站的做,公众号小程序免费开通服务注册与发现#xff1a;ETCD 1直接调包 kitex-contrib#xff1a; 上面有实现的案例#xff0c;直接cv。下面是具体的理解 2 相关概念 EtcdResolver: etcd resolver是一种DNS解析器#xff0c;用于将域名转换为etcd集群中的具体地址#xff0c;以便应用程序可以与et…服务注册与发现ETCD 1直接调包 kitex-contrib 上面有实现的案例直接cv。下面是具体的理解 2 相关概念 EtcdResolver: etcd resolver是一种DNS解析器用于将域名转换为etcd集群中的具体地址以便应用程序可以与etcd集群进行通信。etcd是一个分布式键值存储系统常用于服务发现、配置共享和分布式锁等应用场景。通过使用etcd resolver应用程序可以更方便地与etcd集群交互 endpoints 用于指定集群的地址列表.例如etcd1.example.com:2379, etcd2.example.com:2379。应用程序将通过这些地址与etcd集群的各个节点进行通信以读取和更新数据。 3 案例 直接看例子就能大致明白 client func main() {r, err : etcd.NewEtcdResolver([]string{127.0.0.1:2379})if err ! nil {log.Fatal(err)}client : hello.MustNewClient(Hello, client.WithResolver(r))for {ctx, cancel : context.WithTimeout(context.Background(), time.Second*3)resp, err : client.Echo(ctx, api.Request{Message: Hello})cancel()if err ! nil {log.Fatal(err)}log.Println(resp)time.Sleep(time.Second)} }server type HelloImpl struct{}func (h *HelloImpl) Echo(ctx context.Context, req *api.Request) (resp *api.Response, err error) {resp api.Response{Message: req.Message,}return }func main() {r, err : etcd.NewEtcdRegistry([]string{127.0.0.1:2379})if err ! nil {log.Fatal(err)}server : hello.NewServer(new(HelloImpl), server.WithRegistry(r), server.WithServerBasicInfo(rpcinfo.EndpointBasicInfo{ServiceName: Hello,}))err server.Run()if err ! nil {log.Fatal(err)} }4 实际项目实现 4.1 client handler层接受到app发来的参数如token、latest_time根据文档规范封装为一个向后端发起的请求FeedRequest.rpc远程调用server的Feed接口返回目标结果 rpc调用的Feed实际上先调用了kitex自动生成的client通过client与server通信实现调用server的接口。kitex自动生成的client需要在使用前初始化比如进行服务与发现 具体来说client又需要注册中心的resolver拿到resolver的办法就 etcd.NewEtcdResolver([]string{etcdAddr})传入endpoint就可以直接拿到reslover 下面是初始化client的例子 // InitVideo // 在构建client和server通信之前先关注连通性 func InitVideo(viperConfig *viper.ConfigViper) {etcdAddr : fmt.Sprintf(%s:%d, viperConfig.Viper.GetString(etcd.host), viperConfig.Viper.GetString(etcd.port))resolver, err2 : etcd.NewEtcdResolver([]string{etcdAddr})if err2 ! nil {log.Fatal(err2)}serverName : viperConfig.Viper.GetString(server.name) //指定客户端所连接的服务的名称newClient, err : videoservice.NewClient(serverName,//client.WithMiddleware(middleware.CommonMiddleware),//client.WithInstanceMW(middleware.ClientMiddleware), //实例级别的中间件。这个中间件可能会对客户端的每个请求进行预处理或后处理client.WithMuxConnection(1), // muxclient.WithRPCTimeout(300*time.Second), // rpc timeoutclient.WithConnectTimeout(300000*time.Millisecond), // conn timeoutclient.WithFailureRetry(retry.NewFailurePolicy()), // retryclient.WithSuite(tracing.NewClientSuite()), // tracer 添加了一个追踪器用于跟踪客户端的请求和响应client.WithResolver(resolver), // resolver// Please keep the same as provider.WithServiceNameclient.WithClientBasicInfo(rpcinfo.EndpointBasicInfo{ServiceName: serverName}),)if err ! nil {// TODO 思考应该直接panic吗log.Fatal(err)}videoClient newClient }4.2 server 在一个server运行的时候main是入口所以需要在main中将自己的服务注册到etcd中 先通过viper的init方法搜索到对于的配置文件加载到对象config中 var (config viper.Init(video)serviceName config.Viper.GetString(server.name)serviceAddr fmt.Sprintf(%s:%d, config.Viper.GetString(server.host), config.Viper.GetInt(server.port))etcdAddr fmt.Sprintf(%s:%d, config.Viper.GetString(etcd.host), config.Viper.GetInt(etcd.port))signingKey config.Viper.GetString(JWT.signingKey)logger zap.InitLogger() )服务注册 之前服务发现是NewEtcdResolver现在注册是r, err : etcd.NewEtcdRegistry([]string{etcdAddr})将得到一个Registry类型的对象 调kitex自动生成的service的NewServer方法,注意使用上面拿到的Registry对象上面的启动main方法已经将VideoServiceImpl注册好了现在可以在脚手架中写具体的各个Impl的接口实现。
http://www.hkea.cn/news/14562068/

相关文章:

  • 网站制作难度素材下载免费
  • 怎么做自己的公司网站做杂志的模板下载网站
  • 赣州网站开发软件开发过程包括哪些阶段
  • 网站建设结构图下载深圳宝安区做网站的公司
  • 建个人网站怎么赚钱吗网架加工制造厂家
  • 北京赵公口网站建设无法登陆建设银行网站
  • 班级网站怎么做pptwordpress英文自动采集
  • 即墨专业医院网站制作公司武夷山市住房和城乡建设局网站
  • 国外红人营销网站wordpress 幻灯片主题
  • 企业商务网站建设策划书电商网站设计案例
  • 湖南云网站建设阿里云oss可以做网站
  • 网站毕业设计论文模板哪个网站的ppt模板最好
  • 贺州招聘网站建设网站中竖导航栏怎么做
  • 建设服装网站目的和作用如何做汽车的创意视频网站
  • 上海软件网站建设个人网站设计结构图
  • 建设部网站施工合同范本去哪找南昌百度快速排名提升
  • 舞蹈网站模板一级域名二级域名哪个好
  • 阿里国际站网站建设如何做网站的导航栏
  • 做海报的网站什么编辑器x wordpress theme
  • 教你做企业网站购物网站发展规划与建设进度
  • 网站虚拟主机虚拟空间本科自考是什么意思
  • 软件开发大学重庆seo薪酬水平
  • 中国做外贸最好的网站有哪些网站制作完成后
  • 网站制作毕业设计论文短链接还原
  • 网站开发一定得用html吗wordpress提取公众号文章
  • 网站开发中用什么安全性比性比较高支付网站建设费会计分录
  • 模板网站报价明细WordPress无法自动推送
  • 长春专业网站制作手机端wordpress模板下载
  • 购买云服务器后怎么做网站虚拟主机搭建wordpress
  • 合肥优化网站哪家公司好wordpress英文站更新通知目录