Go语言程序开发gRPC服务

目录前言介绍入门protoserverclient流方式protoserverclient验证器protoToken 认证认证函数:拦截器:初始化:实现接口:连接:单向证书认证生成证书gRPC 代码双向证书认证生成带 SAN...

Go gRPC教程实现Simple RPC

目录前言新建proto文件创建Server端创建Client端总结前言gRPC主要有4种请求和响应模式,分别是简单模式(Simple RPC)、服务端流式(Server-side streaming RPC)、客户端流式(Clien...

Golang gRPC HTTP协议转换示例

gRPC HTTP协议转换正当有这个需求的时候,就看到了这个实现姿势。源自coreos的一篇博客,转载到了grpc官方博客gRPC with REST and Open APIs。etcd3改用grpc后为了兼容原来的ap...

Go Web编程添加服务器错误和访问日志

目录前言初始化日志记录器添加错误日志添加访问日志前言错误日志和访问日志是一个服务器必须支持的功能,我们教程里使用的服务器到目前为止还没有这两个功能。正好前两天也写...

Go单元测试工具gomonkey的使用

目录Go 单元测试工具单测Go 单元测试工具gomonkeygomonkey 打桩失败的可能原因goconvey为全局变量打一个桩为一个函数打桩什么是内联?Go 单元测试工具测试分为4个层次单元测...

Go语言Zap库Logger的定制化和封装使用详解

目录前言Go 语言原生的LoggerGo 语言原生Logger的缺点Zap 日志库Zap 的使用方法安装zap设置 Logger定制 Zap 的 Logger日志切割封装 Logger总结前言日志无论对于程序还是程...

Go语言fsnotify接口实现监测文件修改

目录引言安装工具关键类型Event结构体Op类型Watcher结构体Channel函数Watcher工厂函数完整例子引言在开发过程中,经常需要观察本地文件系统的更改。经过谷歌了几个小时后,到了...

golang协程与线程区别简要介绍

目录一、进程与线程二、并发与并行三、go协程与线程1.调度方式2.调度策略3.上下文切换速度4.栈的大小四、GMP模型一、进程与线程进程是操作系统资源分配的基本单位,是程序运...

go zero微服务实战系服务拆分

目录微服务概述服务划分BFF层工程结构代码初始化结束语微服务概述微服务架构是一种架构风格,它将一个大的系统构建为多个微服务的集合,这些微服务是围绕业务功能构建的,服务关...

Golang接口型函数使用小结

目录常规接口实现接口型函数出场进一步改造什么是接口型函数?顾名思义接口函数指的是用函数实现接口,这样在调用的时候就会非常简便,这种方式适用于只有一个函数的接口。这里以...

Go微服务项目配置文件的定义和读取示例详解

目录前言场景定义配置配置文件加载配置文件实现原理总结前言我们在写应用时,基本都会用到配置文件,从各种 shell 到 nginx 等,都有自己的配置文件。虽然这没有太多难度,但是配置...

Go类型安全的HTTP请求示例详解

目录前言Go 原生写法httpc 实现更多能力前言对 Gopher 来说,虽然我们基本都是在写代码让别人来请求,但是有时候,我们也需要去请求第三方提供的 RESTful 接口,这个时候,我们才能感...

go-spew调试利器详解

目录go-spewDump系列函数自定义配置小结References对于应用的调试,我们经常会使用 fmt.Println来输出关键变量的数据。或者使用 log 库,将数据以 log 的形式输出。对于基础数...

golang协程设计及调度原理

目录一、协程设计-GMP模型1.工作线程M2.逻辑处理器p3.协程g4.全局调度信息schedt5.GMP详细示图二、协程调度1.调度策略获取本地运行队列获取全局运行队列协程窃取2.调度时机...

Go语言的互斥锁的详细使用

目录前言Go语言互斥锁设计实现mutex介绍Lock加锁初始化状态自旋抢锁准备期望状态通过CAS操作更新期望状态解锁非阻塞加锁总结前言当提到并发编程、多线程编程时,都会在第一时...

golang时间及时间戳的获取转换

目录一、获取时间1.1 获取当前时间1.2 获取之前/之后的时间获取1分钟之前的时间戳获取一小时之前的时间获取1小时后的时间二、获时间戳2.1 获取当前时间戳2.2 时间转时间戳2...

基于go微服务效率工具goctl深度解析

目录前言一、goctl 的由来1. goctl 的诞生2. 为什么需要 goctl?3. 怎么理解开发规范?4. 怎么理解工程效率?二 、goctl 的安装及功能介绍1. 介绍2. 安装go get/installdocker3....

Go快速开发一个RESTful API服务

目录何时使用单体 RESTful 服务商城单体 RESTful 服务单体服务实现Mall API 定义账号模块 API 定义订单模块 API 定义商品模块 API 定义生成单体服务实现业务逻辑总结何时使...

Go语言开发代码自测绝佳go fuzzing用法详解

目录特别说明go fuzzing 是什么go fuzzing 怎么用运行 fuzzing testsgo-zero 的最佳实践1. 定义 fuzzing arguments2. 怎么写 fuzzing target3. 失败 case 如何打印输入4....

Golang通过包长协议处理TCP粘包的问题解决

目录tcp粘包现象代码重现tcp粘包问题处理方法tcp粘包产生的原因这里就不说了,因为大家能搜索TCP粘包的处理方法,想必大概对TCP粘包有了一定了解,所以我们直接从处理思路开始讲...

Go源码字符串规范检查lint工具strchecker使用详解

目录1.背景2.strchecker介绍3.结论1.背景在大型项目开发过程中,经常会遇到打印大量日志,输出信息和在源码中写注释的情况。对于软件开发来说,我们一般都是打印输出英文的日志(主...

golang select 机制和超时问题

golang 中的协程使用非常方便,但是协程什么时候结束是一个控制问题,可以用 select 配合使用。首先声明,golang 使用并不熟悉,本文仅仅是记录使用过程中遇到的一些坑。子协程和父...

Go 多环境下配置管理方案(多种方案)

目录需求方案1:配置文件管理方案2:集中式管理配置需求开发过程中开发者经常面对的一个需求就是:一个项目可能会在不同的环境下运行,本地开发环境、测试环境、灰度环境、生产环境...

golang数组内存分配原理

目录编译时数组类型解析ArrayTypetypes2.Arraytypes.Array编译时数组字面量初始化编译时数组索引越界检查运行时数组内存分配总结编译时数组类型解析ArrayType数组是内存中...

Go语言Grpc Stream的实现

目录Stream GrpcStream Grpc演示BookListStreamCreateBookStreamFindBookByIdStreamStream Grpc在我们单次投递的数据量很大的时候,比如传输一个二进制文件的时候,数据包过大,...

返回顶部
顶部