module go

go语言使用GRPC流处理模式

# go语言使用GRPC流处理模式 标签(空格分隔): go,grpc proto文件 syntax = "proto3"; package four_kinds_method.v1; option go_package="go-example/grpc/four_kinds_method/prot ......
语言 模式 GRPC

Go vs netcore

Netcore和Go是两种不同的编程语言,各自具有不同的特点和应用领域。下面是它们之间的比较: 1. 性能和并发性:Go语言以其出色的性能和并发性而闻名。它采用了一种称为Goroutine的轻量级线程模型,使得在Go程序中能够轻松地实现高并发。与此相比,Netcore在性能和并发性方面略逊一筹。 2 ......
netcore Go vs

Go内存逃逸

前言很久以前就听过过内存逃逸这个词, 最近了解了一下, 才发现是个很简单的概念. 只要把前言部分看完, 就已经了解了. 来吧… 在介绍内存逃逸之前, 我们先用C语言来引出这个概念. 我们的进程在内存中有栈内存和堆内存的概念, 栈内存是函数执行的局部内存, 会随着函数的结束而全部释放, 而堆内存是需要 ......
内存

解决使用yarn安装依赖出现“The engine "node" is incompatible with this module. Expected version "^14.18.0 || ^16.14.0 || >=18.0.0". Got "17.9.0"”的问题

# 1、问题描述 某天在使用`yarn`安装依赖的时候,突然出现如下错误导致安装依赖终止: **The engine "node" is incompatible with this module. Expected version "^14.18.0 || ^16.14.0 || >=18.0.0 ......
quot incompatible Expected version engine

Tengine 安装 nginx-module-vts 模块

## Tengine 安装 nginx-module-vts 模块 > 使用 Tengine 作为反向代理服务器,发现 Tengine 日志中接口请求过慢,需要绘制 grafana 展示详细的接口情况 ### 解决思路 * 第一版解决思路,修改 Tengine 中 access log 日志格式,转 ......
nginx-module-vts 模块 Tengine module nginx

通过redis学网络(1)-用go基于epoll实现最简单网络通信框架

![image.png](https://img2023.cnblogs.com/blog/1382767/202306/1382767-20230607105418219-574417823.png) > 本系列主要是为了对redis的网络模型进行学习,我会用golang实现一个reactor网络 ......
网络 网络通信 框架 redis epoll

go 常用命令总结

转载请注明出处: go build:编译包和依赖项,生成可执行文件。命令用于编译包和依赖项,生成可执行文件。当对Go程序进行修改后,需要使用go build命令重新编译程序,以生成新的可执行文件。该命令不会自动下载和安装依赖项,需要事先使用go get命令下载依赖项 go run:编译并运行Go程序 ......
命令 常用 go

Go Swagger安装及使用

![](https://img2023.cnblogs.com/blog/1118095/202306/1118095-20230606231817333-413213876.png) 地址: `https://github.com/swaggo/gin-swagger` ### 安装 1. 根据g ......
Swagger Go

go语言

求变量类型: ```go package main import ( "fmt" "reflect" ) func main() { var num float64 = 3.14 // 方法1: println(reflect.TypeOf(num).Name()) // 方法2: fmt.Prin ......
语言

Go使用net.rpc

# Go使用net.rpc 标签(空格分隔): go // 使用net.rpc包 服务端 [gob协议默认] package main import ( "log" "net" "net/rpc" ) type HelloService struct { } func (h *HelloServic ......
net rpc

Go协程Goroutines

1. 什么是 Go Goroutines? Goroutine是一个简单的模型:它是一个函数,与其他Goroutines并发执行且共享相同地址空间. Goroutines的通常用法是根据需要创建尽可能多的Groutines,成百上千甚至上万的. 创建这么多 goroutines势必要付出不菲的代价? ......
Goroutines

linux下go语言环境安装

# linux下go语言环境安装 ## 下载go包,选择合适的版本,(https://golang.google.cn/dl/) #### 方式一,https://golang.google.cn/dl/ ``` 选择合适的包,下载之后放到Linux下 ``` #### wget ``` wget ......
语言 环境 linux

在go语言中,为什么使用defer? defer 为何能实现延迟加载?

defer会在函数返回前执行,那么我把代码,例如资源释放等,写到函数末尾不就行了,为什么使用defer?什么情况下必须使用defer,它有什么好处呢? 在使用defer的场景中,主要有以下几个情况: 1. 关闭资源:使用defer可以确保在函数执行完毕后关闭打开的文件、网络连接、数据库连接等资源。如 ......
defer 语言

算法 in Go:Binary Search(二分查找)

# 算法 in Go:Binary Search(二分查找) ## Binary Search(二分查找) ### Binary Search(二分查找) - 猜数 - 1、2、3、4、5、6、7、8 - 排好序一个集合,先从中间开始猜,根据提示就可以排除一半,在剩余的一半里,再从中间开始猜,依此类 ......
算法 Binary Search in

ubuntu cmake..中出现Could not find cmake module file Error required internal CMake variable not set,的问题

ubuntu cmake…中出现的问题 在写一个helloworld的小工程,然后cmakelists如下 cmake_minimum_required( VERSION 2.8) project (hello world) add_executable(helloworld main.cpp) 执 ......
cmake not internal required variable

go map gc的测试代码

**本文章由github copilot协助生成** 遇到一个离职同事写的代码,如下: ```go package mapGC func mapGc() { lock := sync.Mutex{} go func() { for { time.Sleep(12 * time.Hour) tmp : ......
代码 map go

vue3+ts 报错 Cannot find module '../xxx/xxx.vue' or its corresponding type declarations(找不到对应的模块“@/views/xxx.vue”或其相应的类型声明)

解决方法在env.d.ts中加入下面代码 declare module '*.vue' { import { DefineComponent } from "vue" const component: DefineComponent<{}, {}, any> export default compo ......
vue xxx corresponding declarations 模块

windows安装go开发环境问题记录

## vscode安装go相关插件失败 Installing github.com/cweill/gotests/gotests@latest FAILED Installing github.com/fatih/gomodifytags@latest FAILED Installing githu ......
windows 环境 问题

go语言切片

特性 长度可变、 内容可变、 引用类型、 底层基于数组 定义 var s1 []int // 长度、容量为0的切片,零值 var s2 = []int{} // 长度、容量为0的切片,字面量定义 var s3 = []int{1, 3, 5} // 字面量定义,长度、容量都是3 var s4 = m ......
语言

go 实现ringbuffer以及ringbuffer使用场景介绍

> ringbuffer因为它能复用缓冲空间,通常用于网络通信连接的读写,虽然市面上已经有了go写的诸多版本的ringbuffer组件,虽然诸多版本,实现ringbuffer的核心逻辑却是不变的。但发现其内部提供的方法并不能满足我当下的需求,所以还是自己造一个吧。 源码已经上传到github ``` ......
ringbuffer 场景 go

go语言数组

线性数据结构 线性表 是一种抽象的数学概念,是一组元素的序列的抽象,它由有穷个元素组成(0 个或任意个)。包括顺序表和链接表。 顺序表:使用一大块连续的内存顺序存储表中的元素,这样实现的表称为顺序表,或称连续表 在顺序表中,元素的关系使用顺序表的存储顺序自然地表示; 链接表:在存储空间中将分散存储的 ......
数组 语言

解决python ModuleNotFoundError: No module named 'common.common'; 'common' is not a package

问题:同一个文件夹下面的不同文件的函数互相调用会报错,报错如下 在尝试使用sys.path.append() 和以下方法都无果之后 dir_path = os.path.dirname(os.path.realpath(__file__)) parent_dir_path = os.path.abs ......
common ModuleNotFoundError 39 package python

从源码分析 Go 语言使用 cgo 导致的线程增长

TDengine Go 连接器 使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 cgo 调用开始解析 Go 源码,分析造成线程增长的原因。 ## 转换 cgo 代码 对 driver-go/wrapper/taosc.go 进行转换 `go tool cg ......
线程 源码 语言 cgo Go

写给go开发者的gRPC教程-通信安全

使用 TLS 安全传输数据 什么是 SSL/TLS SSL 包含记录层(Record Layer)和传输层[1],记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509[2]认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密匙作为会话密匙(Session key[3])。这个 ......
开发者 教程 gRPC

使用Go语言中的Channel实现并发编程

## 引言: Go语言是一门开源的编程语言,以其高效、简洁和并发编程的能力而闻名。在Go语言中,Channel是一个重要的概念,它提供了一种安全、高效地在并发程序中进行通信的机制。本文将介绍Go语言中的Channel,以及如何使用Channel实现并发编程。 ## 一、什么是Channel? 在Go ......
Channel 语言

极客时间--Go并发编程实践课--Mutex学习总结

互斥锁的实现机制 互斥锁是并发控制的一个手段,是为了避免竞争而建立的一种并发控制机制。在并发编程中,如果程序中的一部分会被并发访问或修改,那么,为了避免并发访问导致的意想不到的结果,这部分程序需要被保护起来,这部分被保护起来的程序,就叫做临界区。可以说,临界区就是一个被共享的资源,或者说是一个整体的 ......
时间 Mutex Go

protobuf 中go_package的意思

一个简单的 protobuf 文件定义如下: response.proto syntax = "proto3"; option go_package = "github.com/TripleCGame/apis/api;api"; import "google/protobuf/struct.pro ......
go_package protobuf 意思 package go

Go语言如何判断两个对象是否相等

# 1. 引言 在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如: 1. **单元测试**:编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等。 2. **数据结构操作**:在使用`map`等数据结构时,可能需要判断两个对象是 ......
对象 两个 语言

golang 学习之 etcd protobuffer grpc 服务注册发现 go-micro

#1.etcd使用步骤 ####1)下载:https://github.com/etcd-io/etcd/releases/ ####2)配置环境变量 ####3)编辑local-cluster-profile文件:(利用goreman 启动方式,生产环境参考官方文档) ``` etcd1: etc ......
protobuffer go-micro golang micro etcd

go语言中protobuf以及grpc的使用

#### 首先定义数据结构,保存为.proto文件 ```protobuf syntax = "proto3"; package tutorial; // The protocol compiler generates a class from the following .proto file w ......
protobuf 语言 grpc