单向golang grpc

.net core 微服务之 gRPC

概念 什么是gRPC gRPC官网 微软官网 RPC基本理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 RPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端 ......
core gRPC net

gRPC vs. HTTP:网络通信协议的对比

## 概述 gRPC 和 HTTP 是两种常见的网络通信协议,用于在客户端和服务器之间进行通信。它们具有不同的特点和适用场景,下面对它们进行详细比较。 ## HTTP(Hypertext Transfer Protocol) ### 特点: 1. **简单易用**:HTTP 使用简单的请求方法和状态 ......
网络通信 网络 gRPC HTTP vs

golang中的sync.Map

golang中,同时读写map是线程不安全的,可能会出现panic错误: fatal error: concurrent map read and map write Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,sync.Map 和 map 不同,不是以语言原生形态提 ......
golang sync Map

linux环境安装golang

在使用pprof工具分析性能时,发现我们的环境上默认没有装go,所以执行不了go tool pprof命令,于是自己手动装了下。步骤如下: 首先下载一个对应系统架构的golang包,这里我用的是arm包,装的1.14.12版本。(见附件)。在环境上创一个个人目录,把包传上去,然后执行以下命令解压到/ ......
环境 golang linux

Golang中的Channel(一)

Golang在并发编程上有两大利器,分别是channel和goroutine。Golang中有一句名言:“使用通信来共享内存,而不是通过共享内存来通信”。这句话有两层意思,Go语言确实在sync包中提供了传统的锁机制,但更推荐使用channel来解决并发问题。这里先对Channel做一个基本的介绍, ......
Channel Golang

Golang中的Channel(二)

上篇介绍了Channel是什么以及它的类型,这篇总结一下Channel的用法。 基本语法 (1) 声明channel 声明channel的语法格式为: var ChannelName chan ElementType 与其他变量声明不同的是,在类型前面多了一个chan关键字。ElementType指 ......
Channel Golang

golang中的空切片和nil切片

Golang中的切片是很基本的数据结构,它的底层是一个数组,表层是一个包含三个变量的结构体: type slice struct { array unsafe.Pointer //指针,指向底层的数组 length int //切片的长度 capcity int //切片的容量 } 当把一个切片赋值 ......
golang nil

Golang的类图

@[toc] # 1. 依赖(Dependency) ## 1.1 概念 类与类的链接,A依赖于B,B的变化引起A的变化。 go中表现为B是A的方法的参数。 ## 1.2 代码示例 - 定义两个结构体`植物`和`天气` - 定义`植物`的方法`生长`,它需要参数`天气` - 实例化`植物`和`天气` ......
Golang

golang 解析yaml文件

#### 初始化 ```go package main import ( "github.com/spf13/viper" ) func initConfig() { viper.SetConfigName("config") viper.AddConfigPath("./") if err := ......
文件 golang yaml

Logback和grpc实现日志访问

# 日志方案 - ui和worker不一定再同一个机器上,看日志不能像看本地文件一样 - 日志放到es搜索引擎上 - 通过grpc通信获取远程日志信息 - 海豚调度的轻量级,选择了grpc实现远程访问日志的方案 ## 方案说明 ![image](https://img2023.cnblogs.com ......
Logback 日志 grpc

Golang起步篇

# 一. 安装Go语言开发环境 ## 1. Wondows下搭建Go开发环境 ### (1). 下载SDK工具包 **sdk下载地址为:**[__https://go.dev/dl/__](https://go.dev/dl/) ![](https://tcs-devops.aliyuncs.com ......
Golang

golang解决go get下载失败解决办法

原因: 所下载的库依赖有官方库,而官方被封禁网导致。 方法: 设置代理 go env -w GOPROXY=https://goproxy.cn ps: go1.11发布后,还发布一个goproxy提供代理服务,goproxy.cn是专门服务于中国的,依赖于七牛云 github地址:https:// ......
办法 golang get

golang汇编学习(寄存器)

好久没有写博客了,上一篇写的汇编只是简单的调试了一下,这段时间又看了下,做一个简单的汇总。 两个代码 汇编代码,1_amd64.s TEXT ·add(SB),$0-0 MOVQ a+0(FP),AX MOVQ b+8(FP),BX ADDQ AX,BX MOVQ BX,c+16(FP) RET 主 ......
寄存器 golang

CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务

## 前言 在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务。 ## 1\. 安装必要的软件包 安装以下软件包: 1. Golang:Golang 编程语言 2. Nginx:Web 服务器 3. Supervisor:进程管理工具 4. Git:版本控制工具 5. ......
Supervisor CentOS Golang Nginx x64

go演示GRPC的用法

首先,需要确保已经安装了Go编程语言和gRPC库。可以使用以下命令安装gRPC库: ``` go get -u google.golang.org/grpc ``` 下面是一个基本的gRPC示例,其中包括服务器端和客户端。示例演示了一个简单的计算器服务,客户端可以发送两个数字给服务器,然后服务器返回 ......
GRPC

golang 实现四层负载均衡

> 大家好,我是蓝胖子,做开发的同学应该经常听到过负载均衡的概念,今天我们就来实现一个乞丐版的四层负载均衡,并用它对mysql进行负载均衡测试,通过本篇你可以了解到零拷贝的应用,四层负载均衡的本质以及实践。 本文代码已经上传到github ```shell https://github.com/Ho ......
golang

golang之copier

今天我们要介绍的copier库就能处理不同类型之间的赋值。除此之外,copier还能: 调用同名方法为字段赋值; 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情); 将切片赋值给切片(可以是不同类型哦); 将结构体追加到切片中。 快速使用 先安装: $ go g ......
golang copier

Golang 简单的数据对齐可提高程序速度和内存使用率

### 序 Golang 中的结构或 struct 是用户定义的类型,允许将可能不同类型的项分组/组合为单一类型。 可以说是一个不支持继承但支持组合的轻量级类。 我们使用 Golang 编写代码的时候,你肯定使用过`struct`。 但是,你可能不知道的是,通过简单地重新排序结构中的字段,可以极大地 ......
使用率 内存 速度 程序 数据

gRPC

# 一、protobuf gRPC传输用这个挺好的,跨语言调用 - 足够简单 - 序列化后体积小 - 解析速度比XML块 - 多语言支持 - 兼容性好 ## proto3 这里就先不提proto2了 文件后缀名是 `.proto` ## 1.开始部分 ```protobuf syntax = "pr ......
gRPC

记录第一次使用gRPC

只记录关键点 首先protoc 需要自己去下载,下载地址 Release Protocol Buffers v23.3 · protocolbuffers/protobuf · GitHub 然后需要去找里面编译好的程序,(我windows电脑就选的) 我是go写的服务端 就把解压出来的protoc ......
第一次 gRPC

golang之go-spew

我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的过程中,其上下文的变量对应的数据,以便进行推测出问题的原因。 对于这类调试,我们用的比较多的一个是断点调试,还有是通过打印日志输出。通过日志 ......
go-spew golang spew go

golang怎么改进csv导入到sqlite的速度

Crafted by [Genie](https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode) ## You golang怎么改进csv导入到sqlite的速度 ## Genie 在将CSV数据导入到SQL ......
速度 golang sqlite csv

Golang空结构体struct{}的作用?

### 介绍 在平时做项目得时候,经常会看到很多包里面定义了结构体。 e.g. 在`context`包里面`Context`接口中的`Done()`方法,`Done()`返回一个是以空结构体定义数据的通道`chan struct{}`,那这里他是有什么特殊用意吗?我们接下来分析`struct{}`的 ......
作用 结构 Golang struct

【Go/golang】原生监听处理http请求的写法

原文地址:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/03.4.md 由于自己经常忘了怎么写,而Github又经常抽风,所以这里做个备份 ``` package main import ( " ......
写法 golang http Go

精选Golang高频面试题和答案汇总

之前写的《 GO必知必会面试题汇总》,已经阅读破万,收藏230+。这篇文章给大家整理了17道Go语言高频面试题和答案详解,每道题都给出了代码示例,方便大家更好的理解。 ......
答案 Golang

36-golang动态创建类

### 动态创建类 (1.)使用反射创建类 ``` import `reflect` var typeRegistry = make(map[string]reflect.Type) func RegisterType(elem interface{}) { t := reflect.TypeOf( ......
动态 golang 36

【华为机试ACM基础#02】从单向链表中删除指定值的节点(熟悉链表的输入方式,虽然说本题可能是特例)

#### 从单向链表中删除指定值的节点 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。 链表的值不能重复。 构造过程,例如输入一行数据为: 6 2 **1 2** **3 2** **5 1** **4 5** **7 2** 2 则第一个参数6 ......
本题 特例 节点 单向 方式

golang之类型转换cast

Go 语言作为强类型语言,在使用 Golang 开发项目时,经常会遇到类型转换的场景,整型之间可以直接转换,字节切片和字符串之间也可以直接转换。 但是,如果整型和字符串之间做类型转换,则需要使用 strconv 标准库提供的函数。 01 标准库 strconv 类型转换 Go 语言标准库 strco ......
类型 golang cast

golang使用core dump分析定位程序崩溃问题

原创 萧瑟 golang面试经典讲解 2023-06-23 19:05 发表于上海 收录于合集 #go语言6个 #go6个 ##go工具15个 一、前言 core dump 是一个包含着意外终止的程序其内存快照的文件。这个文件可以被用来事后调试(debugging)以了解为什么会发生崩溃,同时了解其 ......
程序 golang 问题 core dump

保护数据隐私:深入探索Golang中的SM4加密解密算法

确保网络请求数据传输的安全性、一致性和防篡改是至关重要的。通过结合对称加密和非对称加密的强大能力,我们可以实现高度安全的数据传输。对称加密提供了快速且高效的加密和解密过程,而非对称加密则保证了密钥的安全性。这种结合能够确保数据在传输过程中的保密性、完整性和可靠性,有效防止数据被篡改或窃取。无论是保护... ......
加密解密 算法 隐私 数据 Golang