1. gRPC提供HTTP服务 1.1 存在的意义 1.2 代码示例 1.3 使用postman尝试调用 1.4 gRPC客户端代码调用 2. 使用grpc-gateway同时提供HTTP和gRPC服务 2.1 前言 2.2 安装 2.3 目录结构 2.4 示例代码 2.4.1 编写proto描述文件:proto/hello_http.proto 2.4.2 编译proto 2.4.3 实现HTTP服务端 2.4.4 实现gRPC服务端 2.4.5 实现客户端 2.5 运行并调用 1. gRPC…
队列的定义 队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素.这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开.在队列中,允许插入的一端叫做队尾(rear),允许删除的一段则称为队头(front).假设队列为q = (a1,a2,...an)则a1就是队头元素,an是队尾元素. 双端队列 除了栈和队列之外,还有一种限定性数据结构是双端队列:限定插入和删除操作在表的两端进行的线性表.两端分别称为端点1和端点2,也可像栈一样,可用一个铁道转轨网络来比喻双端队列.…
本系列前面的文章: Go语言入门系列(一)之Go的安装和使用 Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 1. 声明 map是一种映射,可以将键(key)映射到值(value),格式为:map[keyType]valueType. 声明一个map并初始化它,使用key:value进行初始化: var scores = map[string]int {"数学":100, "语文":90, "Go":100} 如果不想直…
Go语言入门系列前面的文章: Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 1. 指针 如果你使用过C或C++,那你肯定对指针这个概念不陌生. 我们需要先介绍两个概念:内存和地址. 1.1. 内存和地址 我们写的代码都存储在外存(C盘.D盘)中,比如我存在了D:\Work\Program\go目录下.如果你想要运行你的代码,必须先把你的代码加载进内存中,然后交给CPU执行计算,而CPU计算的结果也会存到内存中. 内存的存取速度快,…
Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经介绍过了Go语言的函数的基本使用,包括声明.参数.返回值.本文再详细介绍一下函数的其他使用. 1. 变参 Go语言的函数除了支持0个或多个参数,还支持不定数量的参数,即变参.声明方式为: func foo(变参名 ...参数类型) 函数类型 { //函数体 } 下面是一个具体的函数,它接收不定数量的…
1. 前言 2. 生成自签证书 2.1 MAC生成自签证书的教程链接: 2.2 Windows生成自签证书的教程 3. 改造服务端使用自签证书 3.1 复制证书至代码下 3.2 改造代码添加证书认证 3.1 运行代码并查看客户端的访问错误 4. 改造客户端代码(单向认证) 4.1 复制公钥给客户端 4.2 改造客户端代码 4.3 运行客户端查看结果 1. 前言 前情回顾 go语言gRPC系列(一) - gRPC入门 之前我们演示的客户端和服务端之间是没有使用证书的,不是很安全.下面演示一下,服务…
gRPC概述 3/26/2016 9:16:08 AM 目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵活,虽然也能通过自定义绑定和其他技术的客户端通信,但是始终没有实现多平台的技术框架的统一.google的gRPC是一个不错的选择,相比于类似框架Thrift等,google的解决方案更成熟和通用.不足的是由于刚刚开源,使用范围有限,国内资料更少.例如仅仅编译C++的gRPC,花了我两天的时间.在这个…
目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 无论通过哪种语言调用gRPC,都必须要编译gRPC,因为生成proto访问类时,除了产生标准的数据定义类之外,还需要产生客户端代理类.客户端代理类必须由gRPC的各个语言的protoc插件来完成.而这些插件需要在gRPC编译后才能编译生成. 下面我们一步步的来说明如何得到gRPC. 获取gRPC源码 gRPC是开源框架,项目代码在github上,所以首先要安装github. github安装后,在指定文件夹中,执…
使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization) 前言: 这是 qt for python 的语言国际化,基于 UI 的,python 也有自身的语言国际化,两者是不同的. 先来看最终效果: 前期准备: 这次创建一个 main window 在 menu bar 加一个 language 的 menu: 我们还要对 action 进行一些设置,如下: 生成 .py 文件: 生成代码: # -*- coding: utf-8 -*- #…
本文使用commons-pool2来实现连接池应用 1.定义一个产生连接池的工厂,需要继承BasePooledObjectFactory,其用处是生产和销毁连接池中保存的对象.根据需求,现在池子里保存的应该是grpc客户端对象. GrpcClientFactory类: package com.oy.grpc; import org.apache.commons.pool2.BasePooledObjectFactory; import org.apache.commons.pool2.Poole…