
golang
文章平均质量分 96
于顾而言
https://www.zhihu.com/people/whisper-of-the-Koo
深信服高级安全研发工程师
SASE/ZTNA 领域5Years+
云原生,网络,IPS, KV,Url Filter,Threat Info,DPDK,零信任都懂一点
展开
-
go-iptables功能与源码详解
介绍iptables之前我们先搬出他的父亲netfilter,netfilter是基于Linux构建基于无状态和有状态的互联网防火墙,且支持部署高可用集群如果你没有很多公网ip,那么你的局域网内部可以使用nat技术共享公网访问使用nat技术进行透明代理,你的公网暴露ip转换为你的真实的内网服务ip构建复杂的qos和策略路由器进一步的数据包操作(修改),如更改ip头部的tos/dscp/ecn位。原创 2024-03-22 10:18:55 · 851 阅读 · 0 评论 -
golang的设计哲学
Google是一家顶尖的创新与大神集结的地方,员工的工作方式也很特别,叫做“20%Time”,即允许工程师拿出20%的时间来研究自己喜欢的项目。比如说语音服务Google Now、谷歌新闻Google News、谷歌地图Google Map上的交通信息等,全都是20%时间的产物,而Go语言也是诞生于此。2007年9月20日的下午,在谷歌山景城总部的一间办公室里,谷歌的大佬级程序员Rob Pike启动了一个C++工程的编译构建。按照以往的经验判断,这次构建大约需要一个小时。原创 2024-03-11 09:40:03 · 645 阅读 · 0 评论 -
golang迭代开发小项目--rpc远程调用
第一步,客户端向服务端发起rpc请求,这个请求的服务需要事先在服务端注册,也就是说服务端只会算加法,你来了一个减法请求,那显然会返回error第二步,客户端发起的请求参数会通过序列化及网络传输到达服务端网卡第三步,服务端收到请求报文后会通过反序列化获得执行参数,然后本地调用函数执行第四步,服务端会将计算结果以相同的方式发送会客户端第五步,客户端收到计算结果,这次rpc调用结束。原创 2024-03-11 09:39:32 · 313 阅读 · 0 评论 -
设计模式中学习golang高级特性(二)
上篇文章介绍了两个设计模式,分别是单例模式和简单工厂模式,里面也引出了一些常用的Go编程特性,例如包内函数和变量的私有化,sync.Once,协程,chan,等待组,接收者函数,接口类型interface,空结构体struct{}等等,那么我们继续通过设计模式来感受Go语法的独特之处。原创 2024-03-11 09:38:37 · 419 阅读 · 0 评论 -
设计模式中学习golang高级特性(一)
的,其内部是维护了一组数据结构, n 个线程和一个待执行队列。协程的切换是golang利用系统级异步 io函数的封装,这些封装的函数提供给应用程序使用,当这些异步函数返回 busy 或 bloking 时,golang 利用这个时机将现有的执行序列压栈,让线程去拉另外一个协程的代码来执行,原创 2024-03-11 09:38:06 · 397 阅读 · 0 评论 -
打造Go开发流水线CICD
作为一个敏捷开发者来说,当你充分理解完需求并完成了相应的模块设计拆分后,接下来最关键一步想必就是搞一搞基础设施,比如说gitlab代码仓库、harbor镜像仓库以及CI/CD等等,这些基础设施会成为提升后续项目质量以及开发效率坚实的护城河。那么,让我们先从打造一条Go项目开发的CI流水线开始吧。原创 2024-03-08 10:02:57 · 1342 阅读 · 0 评论 -
超好用的golang工具分享
在并发环境处理 error 的场景下,或者在同一个 goroutine 中合并多个错误的场景下,Go 提供了很不错的包可以让多个错误的处理变得简单:来看看如何合并由单个 goroutine 生成的多个 error。主要分析服务运行过程产生的:阻塞同步的堆栈信息,所有的goroutine堆栈信息,活动对象的内存分配信息,互斥锁的竞争持有者的堆栈,默认进行30s的CPU采样信息,查看创建新OS线程的堆栈信息等等。出来,一个与单元测试结合使用的工具。在关于使用 Go 语言的时候,开发者面对最大的挑战的。原创 2024-03-07 14:34:51 · 1243 阅读 · 0 评论 -
用Golang实现设计模式
不知道看几遍写几遍了,常温常新,时时刻刻提醒自己在写出屎山代码之前,某些子模块能不能复用某个设计模式。以下代码demo都是自己随性写的,欢迎大家吐槽。原创 2024-03-07 14:18:13 · 751 阅读 · 0 评论 -
Golang微服务对接Spring-Cloud Gateway
最近接了一个需求,要把一些现有的golang微服务对接到老平台的spring cloud微服务框架中。这些golang微服务提供了一些proto+grpc接口,对接老平台目的就是,想要快速复用这些后端的业务能力,这样一来,只需要涉及交互的设计和前端编码的工作,后端不需要用java重写一遍造轮子,并且这些golang微服务是之前上过线的,所以稳定性和准确性都有保证。原创 2024-03-07 13:53:38 · 1268 阅读 · 0 评论