Golang的log模块可谓是语言层面上非常基础的一层库,反应的是语言本身的特征而不是一个服务应该怎样怎样。为了方便自己写 应用,我按照自己的需求提出一些log的API并重新实现。和Golang的log模块形成互补。自己的log模块设计对于我自己的log模块,暂时不需要log4j里面复杂的配置系统,也就不需要父子继承的命名约定。我需要这样一套系统。在主模块中或者基础模块中进行日志的初始化,在需要使
背景最近在公司使用golang web, gin + gorm 重新配置一个新的项目,以前在公司开发的时候,通过日志分析bug的时候,发现应该将所有的日志信息,都输出到一个文件里面,没有做区分,导致在定位上耗比较多的时间,趁着适配golang新的项目,按照日期将log分割出来实践Google了一圈,发现可以借助logrus 的HOOK功能进行实现,对于HOOK机制,可以通过HOOK的方式将日志信息
转载
2024-09-23 11:02:19
82阅读
GC三色标记法过程开始前所有对象都是白色将根节点指向的对象标记成灰色遍历每个灰色对象,将自己指向的对象标成灰色,同时将自己标成黑色重复至没有灰色对象清除剩余的所有白色对象写屏障因为标记过程是并发的,在并发阶段新创建的对象如何处理着色?白色,不行,万一引用这个新对象的是个黑色,那在这一轮标记结束后,该对象会被清除,可能会引起用户程序错误灰色,可行,染成灰色是偏保守但不会出错的方案,但如果这个对象实际
转载
2024-06-29 09:36:55
38阅读
设计自用的golang日志模块golang的原生日志模块不能满足需求,而开源的第三方包,也不完全够用。用户较多的logrus,却没有rotate功能,这已经是众所周知的。对于运维来说,当然是希望日志的处理中比较简单、实用、够用。不需要额外的通过系统来实现logrotate。1、需求从需求方面来说,主要有几个方面:一方面肯定是需要有轮转功能,而且要限制保留的日志份数。至于是按文件大小,还是按天、按小
目录日志使用Logger配置loggerflag选项配置日志前缀配置日志输出位置创建logger日志案例需求分析 日志使用Loggerlog包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列
转载
2024-03-22 15:36:42
174阅读
文章目录前言一、什么是负载均衡,负载均衡的策略有哪些?0.负载均衡之前先设置一下动态端口python篇golang篇1.集中式load balance2.进程内load balance3.独立进程load balance二、常用负载均衡策略1.轮询(Round Robin)法2.随机法3.源地址哈希法4.加权轮询(Weight Round Robin)法5.加权随机(Weight Random)
转载
2024-05-16 07:01:29
160阅读
gRPC入门gRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架。gRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多个服务,对于移动设备更加友好。本节将讲述gRPC的简单用法。1 gRPC技术栈Go语言的gRPC技术栈图所示:最底层为TCP或Unix Socket协议,在此之上是HTTP/2协议的实现,然后在HTTP/2协议之上又构建了针对Go语言的gRPC
转载
2024-03-01 22:24:21
145阅读
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、Golang interface 是什么?二、为什么有 interface?1.编写泛型算法2.隐藏具体实现3.提供拦截点(providing interception points)4.多态(polymorphism)三、非入侵式四、类型断言总结参考 前言interface 是GO语言的基础特性之一。可以理解为一种
转载
2024-04-29 09:40:53
34阅读
gRPC是google开源高性能分布式RPC框架,支持http/2 双向数据流传输及Protobuff,可以在任何环境下运行。 它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡,跟踪,运行状况检查和身份验证。 它也适用于分布式计算,将设备,移动应用程序和浏览器连接到后端服务。核心功能:10种语言的语言客户端库高效的线路和简单的服务定义框架基于http / 2传输的双向流式传输可插
转载
2024-06-14 11:12:38
199阅读
Remote Procedure Call (RPC) 是一种使用TCP协议从另一个系统调用应用程序功能执行的方法。Go有原生支持RPC服务器实现,本文通过简单实例介绍RPC的实现过程。gRPCgRPC远程过程调用框架是基于动作的模式,类似远程调用微服务。这使得gRPC成为一种围绕Protobufs构建的进程间通信(IPC)协议,用于处理客户端和服务器之间的消息传递。gRPC非常适合密集而高效的通
转载
2024-06-09 06:37:48
31阅读
hello/client 客户端package mainimport ( pb "go-study/micro-service/gRPC/src/proto/hello" // 引入proto包 "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org
原创
2022-07-18 21:14:32
718阅读
1. gRPC简述 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objec
转载
2020-02-29 18:19:00
291阅读
2评论
官方推荐golang中错误处理当做值处理, 既然是值那就可以在channel中传输,本文带你看看golang中channel+error来做异步错误处理有多香,看完本文还会觉得golang的错误处理相比java try catch一点优势都没有吗?场景如下,一次任务起多个协程异步处理任务,比如同时做服务/redis/mysql/kafka初始化,当某一个协程出现错误(初始化失败)时,程序是停止还是
转载
2024-09-25 16:37:18
403阅读
GF(Go Frame)是一款模块化、松耦合、轻量级、高性能的Go语言Web开发框架。支持热重启、热更新、多域名、多端口、多服务、HTTP/HTTPS、动态路由等特性 ,并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎、数据校验、分页管理、数据库ORM等等等等, 并且提供了数十个实用开发模块集,如:缓存、日志、时间、命令行、二进制、
今天是golang专题的第11篇文章,我们一起来聊聊golang当中多态的这个话题。如果大家系统的学过C++、Java等语言以及面向对象的话,相信应该对多态不会陌生。多态是面向对象范畴当中经常使用并且非常好用的一个功能,如果你之前没有学过的话也没有关系,我们用一个简单的例子来说明一下。多态主要是用在强类型语言当中,像是Python这样的弱类型语言,变量的类型可以随意变化,也没有任何限制,其实区别不
golang GRPC mock1.)前置条件go install github.com/golang/protobuf/protoc-gen-go
go install github.com/carvalhorr/protoc-gen-mock2.) 生成mock文件proto文件greeter.proto如:syntax = "proto3";
package carvalhorr.gree
转载
2021-05-18 09:54:56
679阅读
2评论
下载grpc通用编译器 下载地址:https://github.com/protocolbuffers/protobuf/releases 下载对应的格式,然后将文件加入环境变量 安装go专用的protoc的生成器 安装命令:go get -v github.com/golang/protobuf/ ...
转载
2021-10-13 16:38:00
201阅读
2评论
相关链接: grpc: https://grpc.io/docs/languages/go/quickstart/ protobuf: https://protobuf.dev/programming-guides/proto3/ p
原创
2023-11-17 11:36:14
73阅读
介绍rpc是一种远程调用协议,在微服务框架中经常使用。其内部也是走的tcp协议,在数据传输过程中也根据数据序列化的不同分化不同数据传输的api比如jsonrpc,grpc。 grpc是使用protocol buffers作为接口定义语言(IDL)和底层数据交换的格式。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。另外,通过proto
原创
2020-08-22 23:45:57
227阅读
gRPC是Googel基于HTTP/2以及protobuf的。gRPC通常有四种模式,unary,client streaming
原创
2022-06-20 20:10:11
140阅读