我所在公司的项目是采用基于Restful的微服务架构,随着微服务之间的沟通越来越频繁,就希望可以做成用rpc来做内部的通讯,对外依然用Restful.于是就想到了google的grpc. 使用grpc的优点很多,二进制的数据可以加快传输速度,基于http2的多路复用可以减少服务之间的连接次数,和函数一样的调用方式也有效的提升了开发效率. 不过使用grpc也会面临一个问题,我们的微服务对外一定是要提供Restful接口的,如果内部调用使用grpc,在某些情况下要同时提供一个功能的两套API接口,这…
注意:本文只适合小文本文件的上传下载,因为post请求是有大小限制的.默认大小是2m,虽然具体数值可以调节,但不适合做大文件的传输 最近公司有这么个需求:以后所有的项目开发中需要使用ftp服务器的地方都不能直接操作ftp服务器,而是通过调用一个统一的接口去操作文件的上传下载等功能. 其实就是针对ftp服务器封装一个项目,所有的针对ftp的操作都通过这个项目来实现. 技术点:接口调用必然存在各种参数.错误信息.成功信息等.那么我们的文件要通过什么形式放到参数中在网络传递呢? 文件可以转换成字节流在…
一 .端口大全 端口:0 服务:Reserved 说明:通常用于分析操作系统.这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果.一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播. 端口:1 服务:tcpmux 说明:这显示有人在寻找SGI Irix机器.Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开.Irix机器在发布是含有几个默认的无密码的帐户,如:IP.GUEST UUCP.NU…
一般学习一项技术,会先用一个最简单的例子或最典型的例子来向大家讲解入门内容,所以此文为大家介绍使用docker安装nginx容器服务.从基础使用的角度来讲,此文几乎涵盖了docker最核心的内容:镜像拉取.容器运行.端口映射.文件映射,虽然基础但很重要,所以建议认真学习. 一.拉取镜像 docker pull命令用于拉取应用镜像,docker pull nginx命令用于拉取最新版本的nginx镜像.下文为拉取镜像过程的响应结果: # docker pull nginx Using defaul…
让 gRPC 提供 REST 服务 Intro gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计. gRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多复用请求等特.这些特性使得其在移动设备上表现更好,更省电和节省空间占用. gRPC 是一个很流行的现代化 RPC 框架,它以 HTTP/2 为通信协议基础,gRPC 默认使用 protocol buffers 作为接口定义语言,来描述服务接口和有效载荷消息结构. 尽管 g…
package main import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials" "grpcpro/services" "log" "net/http" ) func main() { creds, err := credentials.NewServerTLSFromFile("keys/server.crt&…
前言 本文记录了grpc-gateway的简单使用. 定义proto 先来看看最常规的 syntax = "proto3"; package protos; service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } message HelloRequest { string name = 1; } message HelloReply { string message = 1; } 然后加入gatew…
zookeeper集群,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的.…
1. grpc gateway 安装 参考,比较简单,有需要的依赖可以参考相资料 mkdir tmp cd tmp git clone https://github.com/google/protobuf cd protobuf ./autogen.sh ./configure make make check sudo make install go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway go…
通过 static_file 插件可以对外提供一个简单的基于 HTTP 的文件访问服务.类似于http的文件索引! 服务端frps.ini配置[common]bind_addr = 0.0.0.0bind_port = 7000privilege_token = 12345678 客户端frpc.ini配置[common]server_addr = 服务端IPserver_port = 7000privilege_token = 12345678 [static_file]type = tcpl…