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

php网站开发流量推广平台

php网站开发,流量推广平台,网站怎么做 流程,神箭手wordpress插件//不用这种方式实现也可以,用这种方式是为了房间我们理解微服务的实现方式 微服务的实现方式就是把一个单项目应用的不同功能封装成单独的项目,然后向外暴露一个接口以便调用。如果需要这个功能我们直接调用这个功能对应项目的接口就可以了 服务之间的…

//不用这种方式实现也可以,用这种方式是为了房间我们理解微服务的实现方式

微服务的实现方式就是把一个单项目应用的不同功能封装成单独的项目,然后向外暴露一个接口以便调用。如果需要这个功能我们直接调用这个功能对应项目的接口就可以了

服务之间的通信我们选择的是grpc

在学生管理系统这个项目中,我们的功能不多,只有数据库的操作。但是为了实现微服务(强行实现)我们把数据库的增删改查都封装成一个单独的项目(只是为了理解微服务)

我们明确一下要实现的请求

  1. 发出修改请求  (传递完整学生数据)返回处理结果
  2. 发出查询请求   (传递学生学号)返回学生完整信息
  3. 发出删除请求   (传递学生学号)返回处理结果
  4. 发出插入请求   (传递学生完整信息)返回处理结果

这里我们明确了,我们的proto文件里面要写什么

一个学生学号的message、一个学生完整信息的message、一个处理结果的message
还有四个service,里面包含四个rpc  change  find  delete  insert对应四个功能

proto文件👇

syntax = "proto3";option go_package = ".;pb";service Server {//这里应该是四个service的,但是为了偷懒就写在一起了
//这里要写四个service的原因是要把它们隔离开,不然就会发现一个服务端可以调用所有的功能rpc Find(Id)returns(Student);rpc Delete(Id)returns(End);rpc Change(Student)returns(End);rpc Insert(Student)returns(End);
}message Id{string data = 1;
}
message Student{string SSk = 1;string name = 2;int64 age = 3;string gender = 4;string address = 5;string school = 6;
}
message End {bool end = 1;
}

 

我们还需要一个面向用户的client端,它的作用是根据用户的选择来决定调用哪一个功能的接口

同时,因为微服务它会有多个不同的服务端,我们的client端要在用户确定了是哪一个功能的时候再进行对该功能所属服务的连接。并且为了防止运行一次只能调用一次的情况出现,我们就需要用一个死循环来防止这种情况(其实不死,可能是半死),循环变量我们要在循环开始前创建好(不能在循环里面创建),然后使用switch语句进行功能的选择

var key bool
key = true
for key {fmt.Println("input : 1.Find student\n2.Delete student\n3.Change student\n4.Insert student")fmt.Scanln(&num)//按照输入跳转指定的caseswitch num {case 1:controller.Find()case 2:controller.Delete()case 3:controller.Change()case 4:controller.Insert()default:fmt.Println("检测到用户输入错误信息,系统爆炸")key = false}
}

输入1234跳转对应功能,否则结束运行

同时为了让代码更好看,也更方便管理。我们把这四个功能的处理函数封装到一个包内。然后通过导入包去调用这四个函数。

函数的逻辑也很简单了,就是建立连接,然后传递参数并接收返回值,来看一下其中之一的实现

func Delete() {ssk := &pb.Id{Data:"学号"}//这里的学号需要用户自行输入。我们这里简化一下方便了解conn, err := grpc.Dial("localhost:8081", grpc.WithInsecure())//建立连接if err != nil {log.Fatalf("could not connect: %v", err)}defer conn.Close()c := pb.NewServerClient(conn)//创建一个客户端服务res, err := c.Delete(context.Background(), ssk)//调用对应的方法(按照我们写的proto文件,它可以调用增删改查这四个方法,但是这是错误的)if err != nil {log.Fatalf("could not greet: %v", err)}if res.End == true {fmt.Println("delete true")} else {fmt.Println("delete false")}
}

到这里就算完成client了,我们来看被封装成小项目的功能如何实现吧。实现方法都是一样的,所以我们挑一个删除功能来讲吧

服务端我们之前也建立过了,只不过这次我们添加了grom来操作数据库。但是总体上来说都是之前有提到过的
GO语言连接到数据库_go 连接数据库-CSDN博客

这里要注意一下,我们要记清楚哪个服务对应的ip和端口。来看一个功能项目的实现案例

type Server struct {pb.UnimplementedServerServer
}func (s *Server) Delete(ctx context.Context, req *pb.Id) (*pb.End, error) {resoult := sql.DB.Where("ssk = ?", req.Data).Delete(&sql.Student{})if resoult.Error != nil {return &pb.End{End: false}, resoult.Error}fmt.Println("delete success")return &pb.End{End: true}, nil
}
func main() {lis, err := net.Listen("tcp", ":8081")if err != nil {log.Fatalf("failed to listen: %v", err)}s := grpc.NewServer()pb.RegisterServerServer(s, &Server{})s.Serve(lis)
}这是服务端的实现,就是普通的grpc

 它会暴露出一个localhost:8081,我们通过这个ip和端口进行访问


文章转载自:

http://jh02kUz2.fnnkL.cn
http://JGHtX5yx.fnnkL.cn
http://lLKP7wky.fnnkL.cn
http://h0AyWvdo.fnnkL.cn
http://qxF5nZFX.fnnkL.cn
http://LM8KJkRz.fnnkL.cn
http://KypL07ZI.fnnkL.cn
http://N5V3TqCF.fnnkL.cn
http://jYKGwnKO.fnnkL.cn
http://wQr5rzMe.fnnkL.cn
http://Gzec7ndk.fnnkL.cn
http://SoUldlvu.fnnkL.cn
http://kyZcsfmJ.fnnkL.cn
http://wWRE6oIe.fnnkL.cn
http://mk2cGUkw.fnnkL.cn
http://cEalSai6.fnnkL.cn
http://f97I0uIc.fnnkL.cn
http://swyO0A1M.fnnkL.cn
http://VQ0cO2mr.fnnkL.cn
http://1eQchmqe.fnnkL.cn
http://7Vaj5kpz.fnnkL.cn
http://03UbUEJs.fnnkL.cn
http://co0BXf8R.fnnkL.cn
http://51DFlE03.fnnkL.cn
http://XSZfNx1V.fnnkL.cn
http://BQi4poYX.fnnkL.cn
http://X1DBYy0H.fnnkL.cn
http://SOhAnIvs.fnnkL.cn
http://C7h4pWWN.fnnkL.cn
http://zVXR1AAO.fnnkL.cn
http://www.dtcms.com/wzjs/711383.html

相关文章:

  • 中企动力官做网站怎么样如何建立一个网站平台网站
  • 速成网站怎么做wordpress悬浮音乐播放
  • 网站地区分站系统免费网站制作手机软件的app
  • 如何上传自己的视频做网站怎么做网页共享
  • 想自己做网站流程影视传媒广告公司网站模板
  • 网站建设培训班海底捞网络营销方式
  • 网站建设推广的方法wordpress 一键脚本
  • 房产中介网站怎么做点评网站分站设计
  • 广西和住房城乡建设厅网站电脑培训班附近有吗
  • 资料网站怎么做电子商务网站建设课设
  • 常德市建设工程造价网站企业网站内页
  • 成都 网站建设 app 开发基于jsp的精品课程网站建设
  • 番禺网站优化平台wordpress 做ins
  • ICO网站模板如何做网站搬家
  • 网站建设类型的好处个人备案后做淘客网站
  • 网站不在首页显示出来郑州网站制作招聘
  • 阳江网站关键字优化福田南山龙华盐田
  • 网站图片被盗连怎么办啊网页设计心得体会报告怎么写
  • wordpress插件刷不出来潍坊seo招聘
  • 站长工具永久郴州网签备案查询系统
  • 做微信的网站红包app开发软件
  • wordpress首页模板文件位置属于网站seo分析什么软件
  • 网站数据库结构被删了怎么办网站建设服务属于是什么费用
  • 郑州网站建设哪家强做网页网站需要钱吗
  • 在青岛做阿里巴巴网站找谁wordpress 文章去重
  • 益阳营销网站建设网站二维码制作
  • 下载住小帮app看装修seo教育
  • 襄阳建设路21号创意园网站做网站可以赚钱么
  • 网站宣传创意视频网站建设的自查报告
  • 怎么做网站变更长沙行业网站建设