当前位置: 网站首页>小程序开发>400电话办理

唐山网站优化【唐山开通400电话】唐山网站搭建、唐山微信公众号推文外包、唐山开通京东拼多多设计、唐山淘宝装修

发表日期: 2021-04-10 11:13:44 浏览次数:92

唐山网站优化【唐山开通400电话】唐山网站搭建、唐山微信公众号推文外包、唐山开通京东拼多多设计、唐山淘宝装修

唐山,简称“唐”,河北省地级市,构建开放型经济新体制综合试点地区 [1]  。位于河北省东部、华北平原东北部,南临渤海,北依燕山,毗邻京津,地处华北与东北通道的咽喉要地,总面积为13472平方千米,是中国(唐山)跨境电子商务综合试验区 [2]  、中国(河北)自由贸易试验区组成部分。 [3-4] 

唐山因唐太宗李世民东征高句丽驻跸而得名,素有“北方瓷都”之称。这里诞生了中国第一座机械化采煤矿井、第一条标准轨距铁路、第一台蒸汽机车、第一桶机制水泥。唐山是中国评剧的发源地,素有“冀东三支花”之称的皮影、评剧、乐亭大鼓,为国家级非物质文化遗产。

2019年,唐山市下辖7个市辖区、3个县级市、4个县 [5]  ,常住人口796.4万人,地区生产总值6890.0亿元,其中,第一产业增加值531.2亿元,第二产业增加值3613.3亿元,第三产业增加值2745.5亿元,三次产业增加值结构为7.7:52.4:39.9。按常住人口计算,全年人均地区生产总值86667元(按年平均汇率折合12563美元)。


服务定义是在 ProductInfo.proto 文件中声明的,服务器端和客户端都会使用该文件来生成代码。这里假设 ProductInfo 服务使用 Go 语言来实现,消费者使用 Java 语言来实现,两者之间的通信则通过 HTTP/2 来进行。

接下来深入了解 gRPC 通信的细节。构建 gRPC 服务的第一步是创建服务接口定义,其中包括该服务暴露的方法及其输入参数和返回类型。下面介绍服务定义的细节。

1.1.1 服务定义

gRPC 使用 protocol buffers 作为 IDL 来定义服务接口。protocol buffers 是语言中立、平台无关、实现结构化数据序列化的可扩展机制 5。服务接口定义在 proto 文件中指定,也就是在扩展名为“.proto”的普通文本文件中。我们要按照普通的 protocol buffers 格式来定义 gRPC 服务,并将 RPC 方法参数和返回类型指定为 protocol buffers 消息。因为服务定义是 protocol buffers 规范的扩展,所以可以借助特殊的 gRPC 插件来根据 proto 文件生成代码。

5第 4 章会详细介绍 protocol buffers 的基本原理,现在可将其看作一种数据序列化机制。

在示例场景中,ProductInfo 服务接口可以使用代码清单 1-1 中的 protocol buffers 来定义,其中涉及远程方法调用、相关输入参数和输出参数以及这些参数的类型定义(或消息格式),这些也是 ProductInfo 服务定义的组成部分。

代码清单 1-1 使用 protocol buffers 来定义 ProductInfo 服务(gRPC)

// ProductInfo.protosyntax = "proto3"; ➊package ecommerce; ➋service ProductInfo { ➌
    rpc addProduct(Product) returns (ProductID); ➍
    rpc getProduct(ProductID) returns (Product); ➎}message Product { ➏
    string id = 1; ➐
    string name = 2;
    string description = 3;}message ProductID { ➑
    string value = 1;}复制代码

❶ 服务定义首先声明所使用的 protocol buffers 版本(proto3)。

❷ 用来防止协议消息类型之间发生命名冲突的包名,该包名也会用来生成代码。

❸ 定义 gRPC 服务的接口。

❹ 添加商品的远程方法,该方法会返回商品 ID 作为响应。

❺ 基于商品 ID 获取商品的远程方法。

❻ 定义 Product 的消息格式或类型。

❼ 保存商品 ID 的字段(名–值对),具有唯一的字段编号,该编号用来在二进制格式消息中识别字段。 ❽ 用于商品标识号的用户定义类型。

服务就是可被远程调用的一组方法,比如 addProduct 方法和 getProduct 方法。每个方法都有输入参数和返回类型,既可以被定义为服务的一部分,也可以导入 protocol buffers 定义中。

输入参数和返回参数既可以是用户定义类型,比如 Product 类型和 ProductID 类型,也可以是服务定义中已经定义好的 protocol buffers 已知类型。这些类型会被构造成消息,每条消息都是包含一系列名–值对信息的小型逻辑记录,这些名–值对叫作字段。这些字段都是具有唯一编号的名–值对(如 string id = 1),在二进制形式消息中,可以用编号来识别相应字段。

该服务定义会被用来构建 gRPC 应用程序的服务器端和客户端。1.1.2 节将介绍 gRPC 服务器端的实现细节。

1.1.2 gRPC服务器端

一旦服务定义准备就绪,就可以使用 protocol buffers 编译器 protoc 来生成服务器端和客户端的代码了。借助 gRPC 的 protocol buffers 插件,可以生成 gRPC 服务器端代码、客户端代码以及常规的 protocol buffers 代码,从而填充、序列化和检索消息类型。

在服务器端,需要实现该服务定义,并运行 gRPC 服务器来处理客户端的调用。因此,为了让服务器端的 ProductInfo 服务完成其任务,需要先做以下两件事情。

  1. 通过重载服务基类,实现所生成的服务器端骨架的逻辑。

  2. 运行 gRPC 服务器,监听来自客户端的请求并返回服务响应。

要实现服务逻辑,首先要根据服务定义生成服务器端骨架。例如,在代码清单 1-2 中,可以看到使用 Go 语言为 ProductInfo 服务所生成的远程函数。在这些远程函数体中,我们可以实现每个函数的逻辑。

代码清单 1-2 使用 Go 语言为 ProductInfo 服务实现 gRPC 服务器端逻辑

import (
  ...
  "context"
  pb "github.com/grpc-up-and-running/samples/ch02/productinfo/go/proto"
  "google.golang.org/grpc"
  ...)// 使用Go语言的ProductInfo实现// 添加商品的远程方法func (s *server) AddProduct(ctx context.Context, in *pb.Product) (
      *pb.ProductID, error) {
   // 业务逻辑}// 获取商品的远程方法func (s *server) GetProduct(ctx context.Context, in *pb.ProductID) (
     *pb.Product, error) {
   // 业务逻辑}复制代码

当服务实现准备就绪之后,接下来需要运行 gRPC 服务器,从而监听来自客户端的请求,将这些请求分发到服务实现,并将服务的响应返回到客户端。代码清单 1-3 展示了 ProductInfo 服务用例,其中使用 Go 语言来编写 gRPC 服务器实现。另外,这里打开了一个 TCP 端口并启动了 gRPC 服务器,同时在该服务器上注册了 ProductInfo 服务。

代码清单 1-3 使用 Go 语言为 ProductInfo 服务运行 gRPC 服务器

func main() {
  lis, _ := net.Listen("tcp", port)
  s := grpc.NewServer()
  pb.RegisterProductInfoServer(s, &server{})
  if err := s.Serve(lis); err != nil {
    log.Fatalf("failed to serve: %v", err)
  }}复制代码

这就是服务器端要做的所有事情了。接下来看一下 gRPC 的客户端实现。

0342eb6d908cb812d2ec9ac78019213.jpg

唐山网站优化唐山开通400电话唐山网站搭建、唐山微信公众号推文外包、唐山开通京东拼多多设计、唐山淘宝装修

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878