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入门 之前我们演示的客户端和服务端之间是没有使用证书的,不是很安全.下面演示一下,服务…
cacti添加对tomcat的监控 1.首先下载监控tomcat的模板 TomcatStats-0.1.zip    2.导入模板 (cacti_host_template_tomcat_server.xml)    进入cacti --> Console ---> Import Templates   3.将解压缩TomcatStats-0.1.zip 得到的tomcatstats.pl 放到cacti/scritps目录下,并授予执行权限 chown -R apache.apache to…
栈和队列是两种重要的线性结构.从数据结构角度看,栈和队列也是线性表,但它们是操作受限的线性表,因此,可称为限定性的数据结构.但从数据类型角度看,它们是和线性表大不相同的两类重要的抽象数据类型. 栈的定义 栈(Stack) 是限定仅在表尾进行插入或删除操作的线性表.因此,对栈来说,表尾端称为栈顶(top),表头端称为栈底(bottom).不含元素的空表称为空栈. 栈为后进先出的线性表,简称LIFO结构. 栈的表示和实现 和线性表类似,栈也有两种存储表示方法:顺序栈和链栈. 顺序栈,即栈的顺序存储结…
本系列前面的文章: 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(变参名 ...参数类型) 函数类型 { //函数体 } 下面是一个具体的函数,它接收不定数量的…
微服务系列(二)GRPC的介绍与安装 1.GPRC简介 GRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架.GRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多个服务,对于移动设备更加友好.目前提供 C.Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持. 在 gRPC里客户端应用可以像调…
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…
gRPC概述 3/26/2016 9:16:08 AM 目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵活,虽然也能通过自定义绑定和其他技术的客户端通信,但是始终没有实现多平台的技术框架的统一.google的gRPC是一个不错的选择,相比于类似框架Thrift等,google的解决方案更成熟和通用.不足的是由于刚刚开源,使用范围有限,国内资料更少.例如仅仅编译C++的gRPC,花了我两天的时间.在这个…
我的这几篇文章都是使用gRPC的example,不是直接编译example,而是新建一个项目,从添加依赖,编译example代码,执行example.这样做可以为我们创建自己的项目提供借鉴.如果对gRPC构建应用很熟悉,可以无视本系列文章. 目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 上篇介绍了C#调用gRPC,C#项目比较幸运有NuGet帮助配置,C++项目就没有那么幸运了.配置复杂,编译问题也很多.我在这里把我遇到的情况都列出来,使大家在遇到相同的问题…