golang grpc

windows系统下golang安装教程

go下载软件地址: https://studygolang.com/dl/golang/go1.19.5.windows-amd64.msi window安装软件,点下一步下一步安装即可 记得有一步是将go加入系统环境变量,需要点击一下。忘记截图了 安装完后运行cmd命令窗口运行命令 go vers ......
windows 教程 golang 系统

linux系统下golang安装教程

Linux下安装Golang 系统:centos 7.8 mkdir /home/src wget https://golang.google.cn/dl/go1.19.5.linux-amd64.tar.gz 解压 tar -xf go1.19.5.linux-amd64.tar.gz -C /u ......
教程 golang 系统 linux

golang 实现的零依赖、高性能、并发 mysqldump 工具。

mysqldump golang 中实现的零依赖、高性能、并发 mysqldump 工具。 项目地址: https://github.com/dengjiawen8955/mysqldump/blob/master/README-zh.md 文章地址: https://bmft.tech/#/2-p ......
高性能 mysqldump 工具 golang

【golang实现即时通讯系统】(一)

即时通讯系统 1.基础server构建 创建一个Server的结构体,结构体应该包含服务端的IP和端口 写一个创建Server的方法 创建一个启动Server函数 创建一个业务链接函数 server.go package main import ( "fmt" "net" ) type Server ......
通讯系统 通讯 golang 系统

golang pprof 监控系列(1) —— go trace 统计原理与使用

golang pprof 监控系列(1) —— go trace 统计原理与使用 服务监控系列文章 服务监控系列视频 关于go tool trace的使用,网上有相当多的资料,但拿我之前初学golang的经验来讲,很多资料都没有把go tool trace中的相关指标究竟是统计的哪些方法,统计了哪段 ......
原理 golang pprof trace go

使用golang+antlr4构建一个自己的语言解析器(一)

Antlr4 简介 ANTLR(全名:ANother Tool for Language Recognition)是基于LL(*)算法实现的语法解析器生成器(parser generator),用Java语言编写,使用自上而下(top-down)的递归下降LL剖析器方法。由旧金山大学的Terence ......
语言 golang antlr4 antlr

golang相关介绍

前言: golang的语言介绍,发展介绍,相关网站 正文: golang介绍 Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。 Go 是非常年轻的一门语言,它的主要目标是 兼 ......
golang

(转)golang beego后端开发框架(二):配置、路由和控制器

原文:https://www.dianjilingqu.com/178381.html 1. beego参数配置 beego目前支持INI、XML、JSON、YAML格式的配置文件解析,但是默认采用了INI格式解析,用户可以通过简单的配置就可以获得很大的灵活性 1.1 默认配置解析 neego会默认 ......
路由 控制器 框架 golang beego

linux 下 golang jdk 环境变量配置

export GOPROXY=https://goproxy.cn,direct export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin:$GO ......
变量 环境 golang linux jdk

golang 异常捕获和处理(panic/recover)

1.异常处理 Golang 没有结构化异常,使用 panic 抛出错误,recover 捕获错误。 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理。 1.1. panic 内置函数假如函数F中书写了panic语句,会终止其后 ......
recover golang panic

微服务与rpc/grpc

微服务(micro services) 微服务概述 微服务简介 微(micro)狭义来讲就是体积小,著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨 ......
grpc rpc

wails 基于golang 的跨平台开发解决方案

wails 是可以使用golang 进行跨平台开发的框架 参考使用 依赖 需要go 18+,node 15+ 安装 go install github.com/wailsapp/wails/v2/cmd/wails@latest 创建项目 wails init -n myproject -t van ......
解决方案 方案 golang wails

golang解决kafka消息丢失

Kafka是一个高吞吐量的分布式发布订阅消息系统,由于其高效的消息传递机制,被广泛应用于大规模数据处理、日志收集和实时数据流处理等场景中。但是,由于网络、硬件等原因,Kafka的消息有时可能会出现丢失的情况。下面是一些Go语言中解决Kafka消息丢失问题的方法: 1.设置合适的Kafka配置 在创建 ......
消息 golang kafka

golang解决kafka消息重复发送和重复消费

1、解决消息重复发送 当使用Kafka生产者发送消息时,可以设置消息的Key,使用Key来保证相同Key的消息不会被重复发送。在发送消息时,可以使用带Key的消息发送方式,如下所示: msg := &sarama.ProducerMessage{ Topic: "test", Partition: ......
消息 golang kafka

golang条件编译

方式 文件名 条件编译之文件名 命名方式 # 操作系统区分 xx_$GOOS.go # 区分架构 x86 / x64 _$GOOS_$GOARCH.go ......
条件 golang

Golang 大杀器之性能剖析 PProf

参考文章: Golang 大杀器之性能剖析 PProf Graphviz安装及入门教程 接触了那么久的go,一直也在用go写项目代码,有时遇到一些性能、内存问题,一时不好下手,幸好go自带性能大杀器,帮助我们及时知悉项目代码运行情况与cpu耗时、内存占用等一系列问题。 本次分享主要基于 Golang ......
性能 Golang PProf

golang 版本管理(windows版本)

golang 版本管理(windows版本) 一、下载版本管理器 使用的开源项目地址:https://github.com/voidint/g 下载release安装包 https://github.com/voidint/g/releases/tag/v1.5.0 二、安装 打开powershel ......
版本 windows golang

golang 反射reflect

1.基本介绍 1)反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind) 2)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段,方法) 3)通过反射,可以修改变量的值,可以调用关联的方法 4)通过反射,需要import("reflect") packag ......
reflect golang

Go 语言:如何利用好 TDD 学习指针并了解 Golang 中的 error 处理

我们在上一节中学习了结构体(structs),👉Go语言:利用 TDD 驱动开发测试 学习结构体、方法和接口 它可以组合与一个概念相关的一系列值。 你有时可能想用结构体来管理状态,通过将方法暴露给用户的方式,让他们在你可控的范围内修改状态。 金融科技行业都喜欢 Go 和比特币吧?那就来看看我们能创 ......
指针 语言 Golang error TDD

【grpc】根据proto生成grpc接口Python代码

1、编写自己的proto接口文件 syntax = "proto3"; package helloworld; // 对应包名 // 定义服务 service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (Hel ......
grpc 接口 代码 Python proto

使用 GVM 搭建可维护的 Golang 开发环境

当你想完成 Golang 开发环境的便捷安装以及随时更新和保障多个版本的 Golang 共存的时候,就需要使用到 Golang 的专门版本管理工具 ——gvm 本篇随笔记录了在 Ubuntu 下安装使用 gvm 的过程 Gvm 的下载 我们可以使用国内镜像下载包含安装脚本的仓库代码,然后直接执行安装 ......
环境 Golang GVM

golang中关于deadlock的思考与学习

1、Golang中死锁的触发条件 1.1 书上关于死锁的四个必要条件的讲解 发生死锁时,线程永远不能完成,系统资源被阻碍使用,以致于阻止了其他作业开始执行。在讨论处理死锁问题的各种方法之前,我们首先深入讨论一下死锁特点。 必要条件: 如果在一个系统中以下四个条件同时成立,那么就能引起死锁: 互斥:至 ......
deadlock golang

小心golang中的无类型常量

对于无类型常量,可能大家是第一次听说,但这篇我就不放进拾遗系列里了。 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下。包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到出了什么问题的时候为时已晚,最后不得不多了个合并请求留下了丢人的黑历史。 为什么我要提这种尘封往事呢 ......
常量 类型 golang

如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (下)

上文给大家详细介绍了在 Apinto 上实现 HTTP 与 gRPC 的协议转换的基本内容,本篇我们将继续讲解如何在 Apinto-Dashboard 中进行配置。 配置 Apinto Apinto 上我们提供了可视化界面工具 Apinto-Dashboard,以降低初学者的使用成本,以下操作均在 ......
Apinto HTTP gRPC

gRPC之.Net6中的初步使用介绍

1、🍕介绍 GRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源。 gRPC也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运 ......
gRPC Net6 Net

gRPC之.Net6中的客户端和服务端共用proto协议文件

1、🍕说明 在上一篇文章gRPC之.Net6中的初步使用介绍中,我们简单的介绍了gRPC在服务端、客户端以及Web项目中的使用。 有一个问题,不知道大家发现没有,就是不管在服务端项目还是客户端项目中,我们都需要创建相同的proto协议文件,这样就会显得很麻烦,有没有一种办法只创建一次proto协议 ......
客户端 客户 文件 proto gRPC

解决golang 的内存碎片问题

解决golang 的内存碎片问题 本文译自Why I encountered Go memory fragmentation? How did I resolve it?,作者通过分析golang的堆管理方式,解决了内存碎片的问题。 背景 我们的团队正在搭建运行一个兼容Prometheus的内存时序 ......
碎片 内存 golang 问题

.Net Core(.Net6)创建grpc

1.环境要求 .Net6,Visual Studio 2019 以上 官方文档: https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/grpc/grpc-start Net Framework 版本: https://www.cnblogs ......
Net Core Net6 grpc

golang使用JWX进行认证和加密

golang使用JWX进行认证和加密 最近看了一个名为go-auth的库,它将JWT作为HTTP cookie对用户进行验证,但这个例子中缺少了对JWT的保护,由此进行了一些针对JWX的研究。 下面描述来自golang-jwt的官方描述: 概述 JWT是一个签名的JSON对象,通常用作Oauth2的 ......
golang JWX

golang拾遗:实现一个不可复制类型

这是golang拾遗系列的第六篇。这个系列主要用来记录一些平时不常见的知识点,偶尔也会实现些有意思的小功能,比如这篇。 golang拾遗系列目录: golang拾遗:指针和接口 golang拾遗:为什么我们需要泛型 golang拾遗:嵌入类型 golang拾遗:内置函数len的小知识 golang拾 ......
类型 golang