青蛙小白
#Rust

rust语言基础学习: rust的FromStr trait

今天来学习rust中的std::str::FromStr这个trait。 FromStr是rust标准库中定义的trait,当一个类型实现FromStr trait后,调用字符串的泛型函数str.parse()就可以很方便的实现字符串到某个具体类型的转换。 注意FromStr没有生命周期参数,因此只能解析本身不包含生命周期的类型。例如,可以解析实现FromStr的i32,但不能解析&i32,可以解析包含i32的struct,但不能解析包含&i32的struct。

#Rust

rust语言基础学习: rust中的泛型

很多编程语言都支持泛型的特性,泛型是对具体类型或属性的抽象替代,可以实现在编写代码和编译代码时无需知道其在运行时具体类型的特性。 rust也是支持泛型的,而且rust中使用泛型的代码相比使用具体类型的代码几乎没有任何性能上的损耗,rust在编译时使会进行泛型代码的Monomorphization来保障效率。 Monomorphization会在编译时填充需要使用的具体类型,将通用代码转换回特定类型的代码。

#Rust

rust语言基础学习笔记(中)

1.包、Crate和模块 rust的模块系统包括: 包: cargo的一个功能,它允许你构建、测试、分享crate。一个包可以包含多个二进制crate和一个可选的库crate crate: 一个模块的树形结构,它形成了库或二进制项目 模块(mod)和use: 模块通过use来使用,允许你控制作用域和路径的私有性 路径(path): 一个命名例如结构体、函数或模块等项的方式 1.1 包和crate crate是一个二进制项或库。 crate root是一个源文件,crate 是一个二进制项或者库。crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块。 crate将一个作用域相关的功能分组到一起,使得这些功能可以方便的在多个项目间共享。

#Apigateway #Kong

使用helm在Kubernetes集群中部署Kong

本文将使用helm在Kubernetes集群中部署微服务API网关kong,并将其用作Kubernetes的Ingress Controller。 Kong官方单独维护了一个项目叫Kong for Kubernetes,项目的地址是https://github.com/Kong/kubernetes-ingress-controller。 Kong for Kubernetes是一个Kubernetes的Ingress Controller,通过插件架构提供API管理能力。 Kong官方另外提供了一个Helm Chart,使用Helm安装这个Chart可以在Kubernetes集群上运行Kong所需的所有组件。

#Grpc

使用grpcurl访问gRPC服务

grpcurl是一个命令行工具,使用它可以在命令行中访问gRPC服务,就像使用curl访问http服务一样。 准备: 在gRPC服务中注册reflection服务 gRPC服务是使用Protobuf(PB)协议的,而PB提供了在运行时获取Proto定义信息的反射功能。grpc-go中的"google.golang.org/grpc/reflection"包就对这个反射功能提供了支持。 这里以grpc-go官方的helloword为例,代码结构如下: grpc-hello ├── go.mod ├── go.sum ├── main.go └── proto ├── doc.go ├── helloworld.pb.go └── helloworld.proto helloworld.proto: