- Etcd配置中心 安装go get github.com/kitex-contrib/config-etcd Suiteetcd 的配置中心适配器,kitex 通过 WithSuite 将 etcd 中的配置转换为 kitex 的治理特性配置。 suite结构体type EtcdServerSuite struct { uid int64 etcdClient e... Etcd配置中心 安装go get github.com/kitex-contrib/config-etcd Suiteetcd 的配置中心适配器,kitex 通过 WithSuite 将 etcd 中的配置转换为 kitex 的治理特性配置。 suite结构体type EtcdServerSuite struct { uid int64 etcdClient e...
- Kitex 提供的服务注册与发现 etcd 拓展 etcd介绍etcd 是一个高度可用的、分布式、一致性的键值存储系统,主要用于服务发现、配置共享、协调分布式系统状态等场景。它是使用 Go 语言编写的,并采用 Raft 算法保证数据的强一致性。etcd 在云原生生态系统中扮演着至关重要的角色,特别是在 Kubernetes(K8s)中作为其元数据存储和集群协调的核心组件。 docker 安... Kitex 提供的服务注册与发现 etcd 拓展 etcd介绍etcd 是一个高度可用的、分布式、一致性的键值存储系统,主要用于服务发现、配置共享、协调分布式系统状态等场景。它是使用 Go 语言编写的,并采用 Raft 算法保证数据的强一致性。etcd 在云原生生态系统中扮演着至关重要的角色,特别是在 Kubernetes(K8s)中作为其元数据存储和集群协调的核心组件。 docker 安...
- Socket 编程以前我们使用Socket编程时,会按照如下步骤展开。(1) 建立Socket:使用socket()函数。(2) 绑定Socket:使用bind()函数。(3) 监听:使用listen()函数。或者连接:使用connect()函数。(4) 接受连接:使用accept()函数。(5) 接收:使用receive()函数。或者发送:使用send()函数。Go语言标准库对此过程进行... Socket 编程以前我们使用Socket编程时,会按照如下步骤展开。(1) 建立Socket:使用socket()函数。(2) 绑定Socket:使用bind()函数。(3) 监听:使用listen()函数。或者连接:使用connect()函数。(4) 接受连接:使用accept()函数。(5) 接收:使用receive()函数。或者发送:使用send()函数。Go语言标准库对此过程进行...
- 结构(struct)Go 通过类型别名和结构体的形式支持用户自定义类型。一个带属性的结构体试图表示一个现实世界中的实体。结构体是复合类型(composite types),当需要定义一个类型,它由一系列属性组成,每个属性都有自己的类型和值的时候,就应该使用结构体,它把数据聚集在一起。然后可以访问这些数据,就好像它是一个独立实体的一部分。结构体也是值类型,因此可以通过 new 函数来创建。组... 结构(struct)Go 通过类型别名和结构体的形式支持用户自定义类型。一个带属性的结构体试图表示一个现实世界中的实体。结构体是复合类型(composite types),当需要定义一个类型,它由一系列属性组成,每个属性都有自己的类型和值的时候,就应该使用结构体,它把数据聚集在一起。然后可以访问这些数据,就好像它是一个独立实体的一部分。结构体也是值类型,因此可以通过 new 函数来创建。组...
- 数组数组是Go语言编程中最常用的数据结构之一。顾名思义,数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。注意事项:如果我们想让数组元素类型为任意类型的话可以使用空接口作为类型。当使用值时我们必须先做一个类型判断。以下为一些常规的数组声明方法:[32]byte // 长度为32的数组,每个元素为一个字节[2*N... 数组数组是Go语言编程中最常用的数据结构之一。顾名思义,数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。注意事项:如果我们想让数组元素类型为任意类型的话可以使用空接口作为类型。当使用值时我们必须先做一个类型判断。以下为一些常规的数组声明方法:[32]byte // 长度为32的数组,每个元素为一个字节[2*N...
- Mapmap 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构:给定 key,对应的value 可以迅速定位。 声明、初始化和 makemap 是引用类型,可以使用如下声明:var map1 map[keytype]valuetypevar map1 map... Mapmap 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构:给定 key,对应的value 可以迅速定位。 声明、初始化和 makemap 是引用类型,可以使用如下声明:var map1 map[keytype]valuetypevar map1 map...
- 介绍每一个程序都包含很多的函数:函数是基本的代码块。Go是编译型语言,所以函数编写的顺序是无关紧要的;鉴于可读性的需求,最好把 main() 函数写在文件的前面,其他函数按照一定逻辑顺序进行编写(例如函数被调用的顺序)。Go 里面拥三种类型的函数:普通的带有名字的函数匿名函数或者lambda函数方法所有类型的函数都可以有参数与返回值。函数参数、返回值以及它们的类型被统称为函数签名。注意go... 介绍每一个程序都包含很多的函数:函数是基本的代码块。Go是编译型语言,所以函数编写的顺序是无关紧要的;鉴于可读性的需求,最好把 main() 函数写在文件的前面,其他函数按照一定逻辑顺序进行编写(例如函数被调用的顺序)。Go 里面拥三种类型的函数:普通的带有名字的函数匿名函数或者lambda函数方法所有类型的函数都可以有参数与返回值。函数参数、返回值以及它们的类型被统称为函数签名。注意go...
- 本篇介绍 Go 语言中的切片类型 本篇介绍 Go 语言中的切片类型
- 关联 Belongs To 属于belongs to 关联建立一个和另一个模型的一对一连接,使得模型声明每个实例都「属于」另一个模型的一个实例 。例如,如果你的应用包含了用户和用户资料, 并且每一个用户资料只分配给一个用户type User struct { gorm.Model Name string}// `Profile` 属于 `User`, `UserID` 是外键type ... 关联 Belongs To 属于belongs to 关联建立一个和另一个模型的一对一连接,使得模型声明每个实例都「属于」另一个模型的一个实例 。例如,如果你的应用包含了用户和用户资料, 并且每一个用户资料只分配给一个用户type User struct { gorm.Model Name string}// `Profile` 属于 `User`, `UserID` 是外键type ...
- viper Viper是什么?Viper 是 Go 应用程序的完整配置解决方案,包括 12-Factor 应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。它支持:默认配置从 JSON, TOML, YAML, HCL 和 Java 属性配置文件读取数据实时查看和重新读取配置文件(可选)从环境变量中读取从远程配置系统(etcd 或 Consul)读取数据并监听变化从命令... viper Viper是什么?Viper 是 Go 应用程序的完整配置解决方案,包括 12-Factor 应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。它支持:默认配置从 JSON, TOML, YAML, HCL 和 Java 属性配置文件读取数据实时查看和重新读取配置文件(可选)从环境变量中读取从远程配置系统(etcd 或 Consul)读取数据并监听变化从命令...
- 错误处理gRPC 一般不在 message 中定义错误。毕竟每个 gRPC 服务本身就带一个 error 的返回值,这是用来传输错误的专用通道。gRPC 中所有的错误返回都应该是 nil 或者 由 status.Status 产生的一个error。这样error可以直接被调用方Client识别。 常规用法当遇到一个go错误的时候,直接返回是无法被下游client识别的。恰当的做法是:调用 ... 错误处理gRPC 一般不在 message 中定义错误。毕竟每个 gRPC 服务本身就带一个 error 的返回值,这是用来传输错误的专用通道。gRPC 中所有的错误返回都应该是 nil 或者 由 status.Status 产生的一个error。这样error可以直接被调用方Client识别。 常规用法当遇到一个go错误的时候,直接返回是无法被下游client识别的。恰当的做法是:调用 ...
- 拦截器gRPC拦截器(interceptor)是一种函数,它可以在gRPC调用之前和之后执行一些逻辑,例如认证、授权、日志记录、监控和统计等。拦截器函数是gRPC中非常重要的概念,它允许我们在服务端和客户端添加自定义逻辑,以满足业务需求和运维需求。在gRPC中,拦截器函数通常通过实现grpc.UnaryServerInterceptor和grpc.StreamServerIntercept... 拦截器gRPC拦截器(interceptor)是一种函数,它可以在gRPC调用之前和之后执行一些逻辑,例如认证、授权、日志记录、监控和统计等。拦截器函数是gRPC中非常重要的概念,它允许我们在服务端和客户端添加自定义逻辑,以满足业务需求和运维需求。在gRPC中,拦截器函数通常通过实现grpc.UnaryServerInterceptor和grpc.StreamServerIntercept...
- 1 构建 顺序本文简单了解go语言程序的构建顺序。依据词法名顺序.当导入一个包,且这个包 定义了 init(), 那么导入时init()将被执行。具体执行顺序:全局变量定义时的函数 import 执行导入 -> cont 执行常量 --> var 执行变量 --> 执行初始化 init() --> 执行 main()----> main import pk1 ---... 1 构建 顺序本文简单了解go语言程序的构建顺序。依据词法名顺序.当导入一个包,且这个包 定义了 init(), 那么导入时init()将被执行。具体执行顺序:全局变量定义时的函数 import 执行导入 -> cont 执行常量 --> var 执行变量 --> 执行初始化 init() --> 执行 main()----> main import pk1 ---...
- 本篇向大家介绍 Go语言的数组类型 本篇向大家介绍 Go语言的数组类型
- Rpc基本概念RPC(Remote Procedure Call)远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,简单的理解是一个节点请求另一个节点提供的服务。RPC只是一套协议,基于这套协议规范来实现的框架都可以称为 RPC 框架,比较典型的有 有阿里巴巴的 Dubbo、Google 的 gRPC、Facebook 的 Thrift 和 Twitt... Rpc基本概念RPC(Remote Procedure Call)远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,简单的理解是一个节点请求另一个节点提供的服务。RPC只是一套协议,基于这套协议规范来实现的框架都可以称为 RPC 框架,比较典型的有 有阿里巴巴的 Dubbo、Google 的 gRPC、Facebook 的 Thrift 和 Twitt...
上滑加载中
推荐直播
-
理论+实验—轻松玩转GaussDB数据库
2025/01/07 周二 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将介绍GaussDB数据库的发展历程、优势、架构、关键特性和部署模式等,旨在帮助开发者了解GaussDB数据库,并通过手把手实验教大家如何在华为云部署GaussDB数据库和使用gsql连接GaussDB数据库。
正在直播 -
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
去报名 -
GaussDB应用实战:手把手带你写SQL
2025/01/09 周四 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将围绕数据库中常用的数据类型、数据库对象、系统函数及操作符等内容展开介绍,帮助初学者掌握SQL入门级的基础语法。同时在线手把手教你写好SQL。
去报名
热门标签