Blog

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

📅 2020-07-05

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

...

rust语言基础学习: rust中的字符串

📅 2020-07-04

在Rust中提到字符串,通常指的是rust核心语言中的字符串类型str(字符串slice)和rust标准库中的String类型。 除了strString这两个常用的字符串类型,在标准库中还有一些其他的字符串类型,例如OsStringOsStrCStringCStr。 本文将介绍strString两个字符串类型。

...

rust语言基础学习: rust中的HashMap

📅 2020-07-03

rust与其他编程语言一样支持哈希Map这种数据结构。 HashMap<K, V>定义在rust标准库的collections moduleuse将其引入作用域。 下面演示HashMap最基本的API使用。

HashMap的创建和初始化 #

下面的代码演示了使用new创建了一个空的HashMap,使用insert向HashMap中添加元素。

...

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

📅 2020-07-02

1.包、Crate和模块 #

rust的模块系统包括:

  • 包: cargo的一个功能,它允许你构建、测试、分享crate。一个包可以包含多个二进制crate和一个可选的库crate
  • crate: 一个模块的树形结构,它形成了库或二进制项目
  • 模块(mod)和use: 模块通过use来使用,允许你控制作用域和路径的私有性
  • 路径(path): 一个命名例如结构体、函数或模块等项的方式

1.1 包和crate #

crate是一个二进制项或库。 crate root是一个源文件,crate 是一个二进制项或者库。crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块。 crate将一个作用域相关的功能分组到一起,使得这些功能可以方便的在多个项目间共享。

...

Kong Web图形化管理工具Konga部署安装

📅 2020-06-04

因为kong的社区版不提供dashboard,本文将介绍kong的第三方开源的图形化管理工具konga在Kubernetes集群上的部署安装。 konga是一个非官方的第三方开源的kong的图形化管理工具,konga需要使用kong的Admin API,konga具有如下特性:

...

使用helm在Kubernetes集群中部署Kong

📅 2020-06-03

本文将使用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所需的所有组件。

...

API网关kong简介

📅 2020-06-02

kong是一个云原生的、高性能的、可扩展的API网关(分布式微服务抽象层)。 kong基于openresty, nginx+lua模块开发,其核心价值就是高性能和可扩展性。

kong的基本运行情况如下图所示,kong可以通过充当微服务请求的网关, 同时通过插件提供负载均衡、日志记录、身份认证、速率限制(rate-limiting)、转换(transformations)等功能。

...

使用grpcurl访问gRPC服务

📅 2020-04-28

grpcurl是一个命令行工具,使用它可以在命令行中访问gRPC服务,就像使用curl访问http服务一样。

准备: 在gRPC服务中注册reflection服务 #

gRPC服务是使用Protobuf(PB)协议的,而PB提供了在运行时获取Proto定义信息的反射功能。grpc-go中的"google.golang.org/grpc/reflection"包就对这个反射功能提供了支持。

这里以grpc-go官方的helloword为例,代码结构如下:

1grpc-hello
2├── go.mod
3├── go.sum
4├── main.go
5└── proto
6    ├── doc.go
7    ├── helloworld.pb.go
8    └── helloworld.proto

helloworld.proto:

...

© 2024 青蛙小白 | 总访问量 | 总访客数