gRPC 是由 Google 开发的高性能、开源的 RPC(Remote Procedure Call)框架,用于在客户端和服务器之间进行通信。它基于 Protocol Buffers(protobuf)进行消息序列化和反序列化,支持多种通信协议,如 HTTP/2、TCP 和 gRPC 提供的协议。
gRPC(gRPC Remote Procedure Call)是一种开源的远程过程调用(RPC)框架,由Google开发并于2015年发布。它使用HTTP/2协议进行通信,旨在简化跨网络的服务通信和跨语言的服务调用。以下是 gRPC 的一些关键特点和概念:
gRPC 是一个典型的C/S模型,需要开发客户端 和 服务端,客户端与服务端需要达成协议,使用某一个确认的传输协议来传输数据,gRPC通常默认是使用protobuf来作为传输协议,当然也是可以使用其他自定义的。
Nginx 在 1.13.10 中,新增了对gRPC的原生支持,Nginx 1.14.0 主线版已经发布。本文将介绍,如何配置 Nginx 中的 gRPC 服务。gRPC 服务做为一个 TCP 服务,配置方式与 HTTP/HTPTS 类似。
网络安全领域在攻和防对抗规模群体已经成熟,但是两端从业者对于安全原理掌握程度参差不齐,中间鸿沟般的差距构成了漏洞研究领域的主战场。笔者“三省吾身”,在工作中会犯错误把一些加密、认证、鉴权的概念和实现方案搞混,尤其是加解密涉及算法和公私钥机制的概念不深入细节。
gRPC安全认证介绍 gRPC被设计成可以利用插件的形式支持多种授权认证机制,你可以采用自己喜欢的,简单的,认为方便的一种方式,选择权在用户手里 支持的授权认证机制如下 SSL/TLS认证 自定义Token认证 SSL/TLS的概念可以参考下面的文章 https://www.techug.com/post/https-ssl-tls.html SSL/TLS认证方式 首先通过openssl生成证书和私钥,命令如下 //生成私钥 openssl genrsa -out server.key 2048 //生
随着微服务的迅速发展,各大互联网企业也投入到微服务的使用种。微服务最大的特点是,跨进程、跨服务、跨语言之间的调用,使得我们能够像调用本地类、函数一样。当微服务具备该特点,将我们复杂的业务拆分成不同的服务,服务之间在相互调用。这也是微服务为什么火的原因之一。
gRPC 这项技术真是太棒了,接口约束严格,性能还高,在 k8s 和很多微服务框架中都有应用。
本文将介绍如何在 gRPC 微服务中开启 TLS/SSL,我就是我们常说的 https。
gRPC(gRPC Remote Procedure Call)是由 Google 开发的开源 RPC 框架,它基于 HTTP/2 标准,使用 Protocol Buffers 作为接口定义语言(IDL)。gRPC 提供了一种高效、跨语言、跨平台的远程过程调用(RPC)解决方案,被广泛应用于构建分布式系统和微服务架构。以下是选择使用 gRPC 的一些主要原因:
在 gRPC 中,可以使用 TLS/SSL 或 Token 认证来进行身份验证。以下是如何实现这两种认证方式的示例:
gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。
gRPC 是一个高性能、通用的开源 RPC 框架,其由 Google 主要面向移动应用开发并基于 HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。
gRPC是Google开源的一个高性能RPC通信框架,通过Protocol Buffers作为其IDL,可以在不同语言开发的平台上使用,同时基于HTTP/2协议实现,继而提供了连接多路复用、头部压缩、流控等特性,极大地提高了客户端与服务端的通信效率。
.Net Core3.0终于如约而至的来了。在3.0中增加了许多东西、也有了许多的变化。今天我们看的就是在3.0中使用gRPC并遇到的问题。gRPC现在可以非常方便简洁的在.Net Core中使用了,今天我也是尝试了一下,但是不幸了是遇到了一些阻碍。我们一起看看是啥问题吧。
可是朋友们,有没有想过,要是每一个客户端与服务端通信的接口都进行一次认证,那么这是否会非常多余呢,且每一个接口的实现都要做一次认证,这真的太难受了
gRPC被设计成可以利用插件的形式支持多种授权认证机制,你可以采用自己喜欢的,简单的,认为方便的一种方式,选择权在用户手里
通过一个完整例子,在 Echo 框架中开启 TLS/SSL,我就是我们常说的 https。
Istio的数据面会在pod中注入两个容器:istio-init和istio-proxy。
grpc-go本身已经支持安全通信,该文是举例介绍下双向认证的安全通信,客户端和服务端是如何实现的。
为了安全,你可以去购买收费的证书或者免费证书也行,这里演示我们使用 OpenSSL 自生成的证书。
取消RPC客户端或服务器可以随时取消调用。 取消立即终止RPC。 它不是一个“撤消”:取消之前所做的更改将不会被回滚。
在go 1.15以上版本,必须使用SAN方式,否则会报"transport: authentication handshake failed: x509: certificate relies on legacy Common Name field, use SANs instead"
上一篇文章我们讲解了怎么给 GRPC 配置添加单向证书认证,这一篇我接着分享,如何让 GRPC 服务加入双向证书认证。
关于网络的知识,上篇分享了传输层的知识,但没有深入剖析TCP的流量控制,差错控制拥塞控制,这块后面再做个专题文章进行分享,今天我们来看下HTTP(S)协议和RPC。
既然有server,那么肯定有client(客户端),client的作用就是向server发送请求,具体就是生成一个请求,然后把它发送到server,然后等待server的响应。
通过一个完整例子,在 gogf/gf 框架中开启 TLS/SSL,我就是我们常说的 https。
2.WireGuard 系列文章(二):WireGuard 简介 - 快速、现代、安全的 V** 隧道[2
本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法。
最近在学习.net core的微服务体系架构。微服务之间的通信常常通过gRPC进行同步通信,但是需要注意的是,大多数微服务之间的通信是通过事件总线进行异步通信。在微软介绍.net微服务体系架构的项目eShop中,微服务之间进行同步通信的场景很多,大多数都是HTTP/REST,目前只有自定义聚合器与微服务之间通信是使用的gRPC。整套微服务架构体系,其实除了客户端与网关(BFF)之间,使用HTTP/REST,均可使用gRPC(只要网关支持HTTP/REST与gRPC的转换)
最近小白需要对服务器和线上业务进行一些探针来定时拨测,用于对服务的存活性进行监控与告警。很早以前就知道prometheus社区提供了 blackbox 的探针方案,但一直没有关注,正好趁这次机会了解一下。
作者赵化冰,腾讯云高级工程师,Istio contributor,ServiceMesher管理委员,热衷于开源、网络和云计算。目前主要从事服务网格的开源和研发工作。 本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法。 什么是『无头服务』? 『无头服务』即 Kubernetes 中的 Headless Service。Service 是 Kubernetes 对后端一组提供
参考:开源中国、solidot、cnBeta、腾讯科技等 0、Redmonk:Ruby 在缓慢衰落,缺少爆发点是关键 Redmonk 近日针对 Ruby 的发展做了一些总结,在其最近的排名中,Ruby 位居第八,落后于 JavaScript、Python 和 PHP 等语言,但领先于 C、Swift 和 Go 。尽管排名不低,但第八名其实是 Ruby 在 redmonk 排名中排名最差的一次。自2012年以来,该语言的排名曾一度进入前五,仅低于 JavaScript、Java、Python 或 PHP 等语
我在之前的文章《go里面的异常处理》简单地说了下go的异常处理机制, 在web中, 一般可以通过框架层面提供的过滤器/拦截器统一地处理这种异常, 避免main函数被带崩.
到现在,我们已经完成了POS平台和前端的网络集成。不过,还是那句话:平台系统的网络安全是至关重要的。前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚。现在akka-http开发的ws同样面临HTTPS的设置和使用问题。所以,特别抽出这篇博文讨论一下数字证书的问题。
当上游出错时,作为负载均衡的Nginx可以实时更换Server,在客户端无感知的情况下重新转发HTTP请求。这一功能在Nginx指令中称为next upstream,本文将详细介绍其用法及实现原理。
本文概括性的介绍gRPC,包括gRPC的起源,核心特性,生态体系,以及一些知名开源软件对gRPC的使用,最后总结gRPC与netty、dubbo等框架的区别,目的是让读者从整体上对gRPC有一个相对全面的认知。
使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点。gRPC是支持ssl/tls安全通讯机制的。用了一个周末来研究具体使用方法,实际上是一个周末的挖坑填坑过程。把这次经历记录下来与各位分享。
对于 .NET 的每个新版本,我们都希望发布一篇博客文章,重点介绍网络的一些变化和改进。在这篇文章中,我很高兴谈论 .NET 6 中的变化。
在上一篇文章一文带你彻底厘清 Kubernetes 中的证书工作机制中,我们介绍了 Kubernetes 中证书的工作机制。在这篇文章中,我们继续探讨 Istio 是如何使用证书来实现网格中服务的身份认证和安全通信的。
使用etcd grpc-proxy start的命令开启 etcd 的 gRPC proxy 模式,包含上表中的静态成员:
Harbor 是一个开放源代码容器镜像注册表,可通过基于角色权限的访问控制来管理镜像,还能扫描镜像中的漏洞并将映像签名为受信任。Harbor 是 CNCF 孵化项目,可提供合规性,性能和互操作性,以帮助跨 Kubernetes 和 Docker 等云原生计算平台持续,安全地管理镜像。
作者赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher管理委员,热衷于开源、网络和云计算。目前主要从事服务网格的开源和研发工作。 目录 Istio 安全架构 控制面证书签发流程 为什么要通过 Pilot-agent 中转? 控制面身份认证 SDS 工作原理 网格边车证书配置 Gateway 证书配置 数据面使用的所有证书 小结 参考文档 在这篇文章中,我们将探讨 Istio 是如何使用证书来实现网格中服务的身份认证和安全通信的。 本文是对 Istio 认证工作机制的深度分
Istio网关Gateway是一个负责处理南北向流量的组件,它通常会暴露服务网格内部的服务,以便外部的请求能够访问到服务网格中的服务。Istio网关Gateway支持多种协议,包括HTTP、HTTPS和GRPC等。
Wireshark[1]是一个开放源码的网络协议分析器,可以用于协议开发、网络故障排除和教育。Wireshark可以分析在网络上传输的gRPC消息,并了解这些消息的二进制格式。
在上一期,我们讲到,在kubernetes 1.5版本中,正式引入了CRI接口,使得kubernetes正式进入了兼容异构容器运行时引擎的时代。
Kubernetes入口(Ingress)是一种将集群服务连接到集群外部的方法。为了正确地将流量路由到服务后端,集群需要一个入口控制器。Ingress控制器负责根据Ingress API对象的信息为后端设置正确的目的地。实际流量通过代理服务器路由,代理服务器负责诸如负载平衡和SSL/TLS(稍后的“SSL”指SSL或TLS)终止等任务。由于涉及加密操作,SSL终止是一个CPU密集型操作。为了从CPU中卸载一些CPU密集型工作,基于OpenSSL的代理服务器可以利用OpenSSL引擎API和专用加密硬件的优势。这将为其他事情释放CPU周期,并提高代理服务器的总体吞吐量。
前置条件: 获取 gRPC-go 源码 $ go get google.golang.org/grpc 简单例子的源码位置: $ cd $GOPATH/src/google.golang.org/grpc/examples/helloworld 复杂些例子的源码位置: $ cd $GOPATH/src/google.golang.org/grpc/examples/route_guide 写一个gRPC的服务,一般分下面几步: 在一个 .proto 文件内定义服务。 用 protocol buffer 编译
领取专属 10元无门槛券
手把手带您无忧上云