golang grpc

Golang压测ws

package main import ( "fmt" "log" "sync" "time" "github.com/gorilla/websocket" ) func main() { // 设置要压测的WebSocket服务地址 url := "ws://192.168.252.128:808 ......
Golang

golang 的github.com/sony/sonyflake IP问题bug

使用容器部署golang项目时,饮用了 github.com/sony/sonyflake 生成snow id,初始化时不传入任何参数: SnowId = sonyflake.NewSonyflake(sonyflake.Settings{}) 在容器的ip设置设置为类似:192.18.10.8时, ......
sonyflake golang github 问题 sony

Golang实现JAVA虚拟机-运行时数据区

原文链接:https://gaoyubo.cn/blogs/8ae1f4ca.html 前置 Golang实现JAVA虚拟机-解析class文件 一、运行时数据区概述 JVM学习: JVM-运行时数据区 运行时数据区可以分为两类:一类是多线程共享的,另一类则是线程私有的。 多线程共享的运行时数据区需 ......
数据 Golang JAVA

Golang实现JAVA虚拟机-解析class文件

原文链接:https://gaoyubo.cn/blogs/de1bedad.html 前言 所需前置知识为:JAVA语言、JVM知识、Go笔记 对应项目:jvmgo 一、准备环境 操作系统:Windows 11 1.1 JDK版本 openjdk version "1.8.0_382" 1.2 G ......
文件 Golang class JAVA

Golang 常用工具记录

Golang 常用工具记录 1 golang 类 1.1 日常使用的 copier 复制结构体到另外一个结构体 等等类似的功能 asynq Go中简单、可靠、高效的分布式任务队列,使用 redis 做为 broker machinery Machinery是基于分布式消息传递的异步任务队列/作业队列 ......
常用工具 常用 工具 Golang

gRPC .proto文件解析

.proto文件解析 书接上回,创建了hello_grpc.proto文件后对其中参数进行解释,还是以上次的代码为案例 syntax = "proto3"; option go_package="./;hello_grpc"; package hello_grpc; message Req { st ......
文件 proto gRPC

Grpc的内部原理、优缺点

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。gRPC 默认使用protocol buffers,这是Google开源的一套成熟的结构数据序列化机制(也可使用其他数据格式如JSON) 基于go的一种远程过程调用,RPC 框架的目标就是让远程服务调用更加简单、透明 ......
优缺点 原理 Grpc

golang go.mod

go mod 指定并加载版本号4.1. 方法一 go mod指定替换版本在项目的go.mod中用replace指定包版本号,比如: replace google.golang.org/grpc => google.golang.org/grpc v1.26.04.2. 方法二 go mod指定大小版 ......
golang mod go

golang中的fs.ReadDir

平时习惯了./和../作为访问目录的路径,但今天使用golang中fs.ReadDir这个函数的时候发现这个习惯是不正确的。 但是常用的命令并没有分很清楚.和./ 在这几个命令中使用.或./都可以到达目录下 ls cd 错误示范 package main import ( "fmt" "io/fs" ......
ReadDir golang fs

php 在laravel中集成grpc

在laravel中集成使用grpc 一、安装: 1、macOS php扩展:pecl install grpc,pecl install protobuf protocbuf:brew install protobuf etcd:brew install etcd 2、ubuntu: php扩展: ......
laravel grpc php

golang简单判断22-65535开发情况

package main import ( "fmt" "net" "sync" "time" ) func main() { server := "42.51.129.175" // 要检查的服务器地址 ports := make([]int, 65535) // 要检查的端口范围,从22到655 ......
情况 golang 65535 22

【go】Go (Golang) 语言-Golang 定时器Timer和Ticker、time.AfterFunc、time.NewTicker()实例

Golang 定时器Timer和Ticker Golang 定时器包括:一次性定时器(Timer)和周期性定时器(Ticker)。 编程中经常会通过timer和ticker、AfterFunc定时器NewTicker是设定每隔多长时间触发的,是连续触发,而计时器NewTimer是等待多长时间触发的, ......
Golang 定时器 time AfterFunc NewTicker

在golang中如何实现 WebSocket 的双向通信

在golang中如何实现 WebSocket 的双向通信 ? 原创 磊丰 Go语言圈 2023-12-21 08:30 发表于广东 听全文 Go语言圈 Go语言开发者的学习好助手,分享Go语言知识,技术技巧,学习与交流Go语言开发经验,互动才有助于技术的提升,每天5分钟,助你GO语言技术快乐成长 1 ......
双向 WebSocket golang

使用 golang 开发 PHP 扩展

使用 golang 开发 PHP 扩展 环境 golang go1.19.9 darwin/arm64 Macos/Linux PHP8.1.11 编译安装 实战 PHP脚手架生成 进入PHP源码,使用命令 php ext/ext_skel.php --ext go2php 会在ext目录下生成go ......
golang PHP

何时使用GraphQL、gRPC 和 REST

何时使用GraphQL、gRPC 和 REST 在设计应用程序时,开发人员可以从各种客户端-服务器通信协议中进行选择。使用 GraphQL、gRPC 和 REST 在当代项目中相对常见。每种协议都可以提供各种优势,具体取决于您的应用需求。 一.GraphQL 是一种灵活的数据请求方法,它专注于特定请 ......
GraphQL gRPC REST

golang封装命令做pipe管道

package main import ( "fmt" "io" "os/exec" ) func main() { fmt.Println("vim-go") // pipeReader, pipeWriter := io.Pipe() binPath := "../03-ncpk-nvm/nvm ......
管道 命令 golang pipe

Golang 配置文件动态更变(viper)

一.下载包 go get github.com/spf13/viper 二.源码 1 func LoadConf(fpname string) { 2 ini := viper.New() 3 ini.SetConfigFile(fpname) 4 5 ini.SetDefault("databas ......
文件 动态 Golang viper

Golang的闭包和匿名函数

Golang语言支持匿名函数,这些匿名函数也被称为闭包。匿名函数是一种特殊类型的函数,它没有名称,而闭包可以看作是一种特殊类型的匿名函数,尽管在实践中有微小的区别。 Golang 中的匿名函数匿名函数也可以称为字面函数、lambda 函数或闭包。闭包的概念源于 lambda 计算中表达式的数学评估。 ......
闭包 函数 Golang

golang 多协程赋值 error 问题

近期遇到一个问题 golang 在多协程情况下,对一个 error 进行赋值,本意是无论多少个协程,只要有个一个 error,那么就认为是 error 错误. 但是在实际写的过程中遇到问题就是需不需要加锁,不加锁会影响什么 代码如下(伪代码) func main(){ var err error v ......
golang 问题 error

Golang io.Pipe()函数及示例

https://geek-docs.com/go-tutorials/go-examples/g_io-pipe-function-in-golang-with-examples.html 在Go语言中,io包提供了基本的I/O原语接口,其主要工作是封装这些原语的正在进行的实现。Go语言中的 Pip ......
示例 函数 Golang Pipe io

golang多版本管理工具g使用(windows)

1.下载地址 https://github.com/voidint/g/releases 2.选择win版本包 3.解压后将g.exe放入自定义目录,这里我放在C:\Program Files\g 4.设置环境变量 编辑系统变量, 添加Path值 5.打开powershell 6.默认情况下,安装的 ......
管理工具 windows 版本 工具 golang

Golang GORM 返回多数据集 []map[string]interface{}

1 // 返回多数据集 2 func UserManySet() { 3 4 rows, err := DB.Raw(`select * from [user];select * from [user1];`).Rows() 5 if err == nil { 6 for { 7 var resul ......
interface 数据 Golang string GORM

获取golang在发送 http.NewRequest 请求时的实际参数

有如下post请求 request, err := http.NewRequest(http.MethodPost, url, r) 其中r是io.Reader请求参数 可以使用以下方法获取实际发送请求时的参数: requestDump, err := httputil.DumpRequest(re ......
NewRequest 实际 参数 golang http

grpc使用nginx代理配置

参考:https://www.nginx.com/blog/nginx-1-13-10-grpc/ 重点是标记红色的部分 http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $ ......
nginx grpc

golang build 不同系统下的可执行文件

接着使用如下命令行运行上面的代码: go run -gcflags "-m -l" main.go 使用 go run 运行程序时,-gcflags 参数是编译参数。 其中 -m 表示进行内存分配分析,-l 表示避免程序内联,也就是避免进行程序优化。 1、Mac下编译Linux, Windows平台 ......
文件 golang 系统 build

Golang type和kind

Type是类型,Kind是类别。Type和Kind可能是相同的,也可能是不同的 var num int = 10 num的Type是int,Kind也是int var stu Student stu的Type是 包名.Student,Kind是struct ......
Golang type kind

【Python小随笔】 Grpc协议的使用

定义接口 // test.proto syntax = "proto3"; option cc_generic_services = true; service Greeter { // 第一个接口 rpc One(OneRequest) returns (OneResponse) {} // 第二 ......
随笔 Python Grpc

Golang实现简易的顺序执行协程池

countable_executor.go // 一个可计数的单线程顺序任务执行器 type CountableExecutor struct { name string // 名称 taskQueue chan iCountableTask // 任务队列 bufferSize int // 缓冲 ......
简易 顺序 Golang

golang之泛型

Go 1.18版本增加了对泛型的支持,泛型也是自 Go 语言开源以来所做的最大改变。 泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。ーー换句话说,在编写某些代码或数据结构时先不提供值的类型,而是之后再提供。 泛型是一种独立于所使用的特定类型的 ......
golang

golang 生成excel文件,或者结合gin框架返回文件流

package main import ( "errors" "fmt" "github.com/gin-gonic/gin" "github.com/xuri/excelize/v2" ) func ReadExcel(file string, sheet string) ([][]string, ......
文件 框架 golang excel gin