经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Go语言

go-zero 如何扛住流量冲击(一)

不管是在单体服务中还是在微服务中,开发者为前端提供的API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性。即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统瘫痪。 go-zero 集成了开箱即用的 限...[2020/11/23]

没有真实串口设备时使用"虚拟串口驱动"调试你的串口代码

目录前言示例代码总结 前言 很多时候需要编写串口代码,但是又没有真实串口设备来调试代码。以及本身就是要操作2个串口的情况,可以使用“虚拟串口驱动”工具方便的调试代码。 使用方法就是点击添加端口,此时“COM1 <-> COM2”是一组,即对COM1写数据会让COM2读...[2020/11/23]

go-zero之web框架

go-zero之web框架

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架,其中rest是web框架模块,基于Go语言原生的http包进行构建,是一个轻量的,高性能的,功能完整的,简单易用的web框架 服务创建 go-zero中创建http服务非常简单,官方推荐使用goctl工具来生成。为了...[2020/11/23]

[Go] gin框架中增加pprof分析性能

gofly客服websocket部分存在groutine泄露 , 在每次连接ws的时候都开启了groutine , 但是没有关闭 pprof是go标准库自带的功能 , 引进去就能分析程序中的性能问题 , 在gin框架下可以使用第三方的"github.com/gin-contrib/pp...[2020/11/23]

[Go]GO语言实战-类型声明语句

先来看一下概念: 一个类型声明语句创建了一个新的类型名称,和现有类型具有相同的底层结构。 type 类型名字 底层类型 gin框架中的实例: type H map[string]interface{} 类型声明语句一般出现在包一级,因此如果新创建的类型名字的首字符大...[2020/11/23]

Go学习之mod的使用

一、Go mod 的使用 1、开启GO111MODULE Go mod 的三种开启模式(GO111MODULE): on:支持Go mod模式 off:不支持Go mod模式 auto (默认模式):如果代码在gopath下,则自动使用gopath模式;如果代码不...[2020/11/16]

端口重用

目录前言SO_REUSEADDR简介Python中的用法golang用法其他学习总结 前言 服务器重启进程时总会提示端口已经被绑定的报错,直到重试好几次才能重启成功。 这是因为端口尚未完全关闭的情况,这时如果不设置端口重用,则无法完成绑定,因为端口还处于被别的套接口绑定的状态之中...[2020/11/16]

Go安装OpenCV库(gocv)常见问题

Go安装OpenCV库(gocv)常见问题

gocv是OpenCV4在Go中的绑定,使用它可以在Go里做图像处理。  Windows安装官方介绍:https: gocv.io/getting-started/window 其中gocv库提供的win_build_opencv.cmd为安装过程命令: 下载openc...[2020/11/16]

Golang websocket 实现消息推送

服务端实现 package main import ( "encoding/json" "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func add(ws *websocket.Conn) { msg :...[2020/11/16]

使用邮箱验证登录后台ssh,再也不怕被人攻击服务器了!

目录前言安装教程 前言 之前写过使用用户名密码,以及扫描二维码方式验证后台登录 h的文章:【点击跳转】。 但是这样还是不太保险,也存在被人利用的情况,因为别人破解你的后台你压根不知道。因此想到使用邮件验证码来提高验证服务器登录 h的安全性。 如果有人破解了你 h的用户名和密码,...[2020/11/16]

如何高效定义和验证restful请求的参数

go-zero针对文本的序列化和反序列化主要在三个地方使用 http api请求体的反序列化 http api返回体的序列化 配置文件的反序列化 完整示例可参照下面这篇文章: 快速构建高并发微服务 1. http api请求体的反序列化 在反序列化的过程中的针对请求数据的数据...[2020/11/9]

[GO] gin 框架gorm下使用logrus记录sql语句

使用gin gorm时 , 默认sql语句是打印在终端的 ,想要记录到文件中 , 可以使用logrus来记录到文件 先把logrus的一些配置做好 package tools import ( "fmt" "github.com/gin-gonic/gin" ...[2020/11/9]

企业级RPC框架zRPC

近期比较火的开源项目go-zero是一个集成了各种工程实践的包含了Web和RPC协议的功能完善的微服务框架,今天我们就一起来分析一下其中的RPC部分zRPC。 zRPC底层依赖gRPC,内置了服务注册、负载均衡、拦截器等模块,其中还包括自适应降载,自适应熔断,限流等微服务治理方案,是一...[2020/11/9]

[GO]解决request origin not allowed by Upgrader.CheckOrigin websocket跨域

在gin框架下使用websocket , 如果是跨域请求的时候会报这个错误 request origin not allowed by Upgrader.CheckOrigin   使用的websocket库是 "github.com/gorilla/webso...[2020/11/9]

如何让服务在流量暴增的情况下保持稳定输出

服务自适应降载保护设计 设计目的 保证系统不被过量请求拖垮 在保证系统稳定的前提下,尽可能提供更高的吞吐量 设计考虑因素 如何衡量系统负载 是否处于虚机或容器内,需要读取cgroup相关负载 用1000m表示100%CPU,推荐使用800m表示系统高负载 尽可能小的Overhe...[2020/11/9]

如何利用go-zero在Go中快速实现JWT认证

如何利用go-zero在Go中快速实现JWT认证

关于JWT是什么,大家可以看看官网,一句话介绍下:是可以实现服务器无状态的鉴权认证方案,也是目前最流行的跨域认证解决方案。 要实现JWT认证,我们需要分成如下两个步骤 客户端获取JWT token。 服务器对客户端带来的JWT token认证。 1. 客户端获取JWT Token...[2020/11/9]

[Go] 类型断言和类型判断 if 和 type-switch两种形式

[Go] 类型断言和类型判断 if 和 type-switch两种形式

使用类型断言断定某个接口是否是指定的类型 if这种简化形式: if _,ok:=x.(T);ok{ } type-switch 类型判断形式 switch t := x.(type) { case int: fmt.Printf(1) case nil: f...[2020/11/9]

go语言reflect包最佳实践之struct操作(遍历、赋值与方法调用)

go语言reflect包最佳实践之struct操作(遍历、赋值与方法调用) 1. 反射基本概念 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的语言可以在程序...[2020/11/9]

[GO] GO语言gin框架实现管理员认证登陆接口

后台用户登录验证功能是很多项目的必须要有的逻辑 , 也是常见的技术需求 . 要实现这个逻辑首先要有数据库表结构如下: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) N...[2020/11/9]

Graphql请求的RBAC权限控制

概要 实现方式 adapter middleware 基础权限 API 总结 概要 Graphql 请求灵活性远非 RestFul 的请求能比, 但是 Graphql 的 Endpoint 一般都是统一的一个, 根据 body 中的请求内容和参数来决定返回何种数据. 因此, ...[2020/11/9]

求解数独

求解数独

目录前言我的代码代码讲解运行结果舞蹈链求解数独总结 前言 数独这个游戏很适合锻炼大脑思考,由于规则很简单,因此很适合我写代码拿来破解。所以就有了这篇随笔了。 首先我想通过自己的思考完成数独的求解,然后再到网上抄答案。提供一个【在线玩数独】的网站。 我的代码 代码讲解 ????...[2020/11/9]

Go module 本地导包方式

tip本文只讲关于Go module 本地导包方式,其他请自行查阅 Go module 导包方式,go mod init project-name,会得到一个go.mod文件,此文件是管理依赖的,通常会从github或其他代理拉取代码库。 module package-name ...[2020/11/9]

【go语言学习】函数function

函数是组织好的、可重复使用的、用于执行指定任务的代码块。 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 一、函数的声明和调用 1、函数的声明 Go语言中定义函数使用func关键字,具体格式如下: func funcName(parametername ...[2020/11/9]

golang1.16内嵌静态资源指南

今天是万圣节,也是golang1.16新特性冻结的日子。不得不说自从go2路线发布之后golang新特性的迭代速度也飞速提升,1.16中有相当多的重要更新,包括io标准库的重构,语言内置的静态资源嵌入等。 本次将要介绍的是新的静态资源嵌入功能,虽然之前已经有相关的提案,但实际的api和...[2020/11/9]

基于 prometheus 的微服务指标监控

基于prometheus的微服务指标监控 服务上线后我们往往需要对服务进行监控,以便能及早发现问题并做针对性的优化,监控又可分为多种形式,比如日志监控,调用链监控,指标监控等等。而通过指标监控能清晰的观察出服务指标的变化趋势,了解服务的运行状态,对于保证服务稳定起着非常重要的作用 pr...[2020/11/9]

go-zero 是如何追踪你的请求链路的

go-zero 是如何追踪你的请求链路 微服务架构中,调用链可能很漫长,从 http 到 rpc ,又从 rpc 到 http 。而开发者想了解每个环节的调用情况及性能,最佳方案就是 全链路跟踪。 追踪的方法就是在一个请求开始时生成一个自己的 spanID ,随着整个请求链路传下去。我...[2020/11/9]

Dapr实现分布式有状态服务的细节

Dapr实现分布式有状态服务的细节

Dapr是为云上环境设计的跨语言, 事件驱动, 可以便捷的构建微服务的系统. balabala一堆, 有兴趣的小伙伴可以去了解一下. Dapr提供有状态和无状态的微服务. 大部分人都是做无状态服务(微服务)的, 只是某些领域无状态并不好使, 因为开销实在是太大了; 有状态服务有固定的场...[2020/11/9]

理解内存对齐

原文地址: https: blog.fanscore.cn/p/24/ 相信大家都听说过内存对齐的概念,不过这里还是通过一个现象来引出本篇话题。 一、求一个结构体的size 猜下下面这个结构体会占用多少字节 type S struct { B byte Go中一个by...[2020/11/9]

gin 获取post的中所有参数

此方式只能获取post默认方式application/x-www-form-urlencoded的参数 ctx.Request.ParseForm() for k, v := range ctx.Request.PostForm {   fmt.Printf("k:%v\n",...[2020/11/9]

go语言教程之浅谈数组和切片的异同

go语言教程之浅谈数组和切片的异同

Hello ,各位小伙伴大家好,我是小栈君,上次分享我们讲到了Go语言关于项目工程结构的管理,本期的分享我们来讲解一下关于go语言的数组和切片的概念、用法和区别。 在go语言的程序开发过程中,我们避免不了数组和切片。关于他们的用法和区别却使得有的小伙伴感觉困惑。所以小栈君这里也归纳和总...[2019/11/15]

[Go] gocron源码阅读-go语言的结构体

结构体类型 type 名字 struct{},下面这段是github.com/urfave/cli包里的代码,声明了一个App的结构体类型 type App struct { The name of the program. Defaults to path.Bas...[2019/11/15]

Go gRPC Hello World - it-world

概述开始 gRPC 了,这篇文章学习使用 gRPC,输出一个 Hello World。    用 Go 实现 gRPC 的服务端。    用 Go 实现 gRPC 的客户端。gRPC 支持 4 类服务方法,咱们这次实现 单项 R...[2019/11/15]

[Go] gocron源码阅读-go语言中的切片接口和类型综合

getCommands func getCommands() []cli.Command { command := cli.Command{ Name: "web", Usage: "run web server", ...[2019/11/15]

GO基础之文件操作

一、文件操作的基本API func main() { 绝对路径 fileInfo , err := os.Stat("E:/a.txt") fileInfo , err = os.Stat("E:/") if err !=nil { ...[2019/11/15]

【Go】go的日志框架-logrus初探

summary  logrus是针对go语言开发的一款日志系统,在本片文章中,将会对上手logrus的过程中遇到的一些问题做一个记录。这个记录参考了这篇文章。下面我们开始吧! 上手 package main import ( log "github.com irups...[2019/11/14]

[日常] gocron源码阅读-使用go mod管理依赖源码启动gocron

从 Go1.11 开始,golang 官方支持了新的依赖管理工具go modgo mod download: 下载依赖的 module 到本地 cachego mod edit: 编辑 go.modgo mod graph: 打印模块依赖图go mod init: 在当前目录下初始化 g...[2019/11/14]

[Go] vscode配置Go环境

首先要先把环境变量配置好,配置好环境变量打开go文件的时候,会自动提示需要安装的扩展在/root/.profile和/home/当前用户/.profile都加上 export GOPATH=/var/www/html/go-project/libexport GOROOT=/usr/...[2019/11/14]

GO基础之延时执行

一、延迟是什么?•即延迟( defer)语句,延迟语句被用于执行一个函数调用,在这个函数之前,延迟语句返回。 一、延迟函数 1、可以在函数中添加多个defer语句。•当函数执行到最后时,这些defer■语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开...[2019/11/13]

实测Maven上传jar包到私服的方法归纳

Hello,各位小伙伴大家好,我是小栈君。好久不见,最近因为工作的缘故,导致了更新变慢,但是小栈君也在积极的做素材的规划,毕竟学习知识点的归纳和提炼需要一定的时间。 所以还请大家多多见谅,下一期的分享主题我们依旧会围绕着go语言系列进行。不过小栈君会尽量加快节奏。因为接下来的挑战是对于...[2019/11/11]

[系列] Go gRPC 调试工具

[系列] Go gRPC 调试工具

目录 概述 写一个 gRPC API grpcui 使用 go-gin-api 系列文章 概述 最近这段时间工作挺忙的,发现已经 3 周没更文了... ...[2019/11/11]

go-gin-api 路由中间件 - 日志记录 - it-world

go-gin-api 路由中间件 - 日志记录 - it-world

概述首先同步下项目概况:上篇文章分享了,规划项目目录和参数验证,其中参数验证使用的是 validator.v8 版本,现已更新到 validator.v9 版本,最新代码查看 github 即可。这篇文章咱们分享:路由中间件 - 日志记录。日志是特别重要的一个东西,方便我们对问题进行排查...[2019/11/11]

go-gin-api 规划目录和参数验证(二) - it-world

概述首先同步下项目概况:上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享:    规划目录结构    模型绑定和验证    自定义验证器    ...[2019/11/11]

Gin框架 - 项目目录 - it-world

概述 今天给大家分享,在 API 端使用 Gin 框架时,项目的目录。目录   ├─ Project Name │ ├─ config 配置文件 │ ├── ... │ ├─ co...[2019/11/11]

Go学习笔记之Map

Go学习笔记之Map Map 引用类型,哈希表。map的key必须可以比较相等,除了slice, map, function的内建类型都可以作为key。struct类型不包含上述字段,也可作为key。 map的操作 1.创建一个map。 1 m := map[int]struct{...[2019/11/11]

QA:无重复字符的最长子串

无重复字符的最长字串 leetcode地址:https: leetcode-cn.com/problem longest-substring-without-repeating-character 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串&nbs...[2019/11/11]

[开源]基于goapp+xterm实现webssh-网页上的SSH终端linux管理工具(golang)

 简析 基于goapp+xterm实现web h-网页上的SSH终端,linux管理工具。 开源地址见文末。   特性 在网页上实现一个SSH终端。从而无需Xshell之类的模拟终端工具进行SSH连接。 可以对交互命令进行审计、记录 在页面...[2019/11/11]

深度解密Go语言之 pprof

深度解密Go语言之 pprof

目录 什么是 pprof pprof 的作用 pprof 如何使用 runtime/pprof net/http/pprof pprof...[2019/11/11]

GO基础之异常处理

GO基础之异常处理

一、异常 1、 错误指程序中出现不正常的情况,从而导致程序无法正常执行。•大多语言中使用try... catch... finally语句执行。假设我们正在尝试打开一个文件,文件系统中不存在这个文件。这是一个异常情况,它表示为一个错误。2、 Go语言中没有try...catc...[2019/11/8]

go-面向对象编程(上)

一个程序就是一个世界,有很多对象(变量) Golang 语言面向对象编程说明 1) Golang 也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对 象语言。所以我们说 Golang 支持面向对象编程特性是比较准确的。 2) Golang 没有类(cla )...[2019/11/8]

GO基础之接口

一、概念1、 面向对象语言中,接口用于定义对象的行为。接口只指定对象应该做什么,实现这种行为的方法(实现细节)是由对象来决定。2、 在Go语言中,接口是一组方法签名。 •接口只指定了类型应该具有的方法,类型决定了如何实现这些方法。 •当某个类型为接口中的所有方...[2019/11/7]

347
2
记录数:616 页数:1/1312345678910下一页尾页
加载更多
 友情链接: NPS  问卷模板