操操操

Go语言技巧

为了给wordpress的ripro主题资源站填充数据,我用golang开发了并发版爬虫和分布式爬虫两个版本,已经顺利跑通!

为了给wordpress的ripro主题资源站填充数据,我用golang开发了并发版爬虫和分布式爬虫两个版本,已经顺利跑通!代码总量还是比较多了,具体课程中再详细讲解,这篇文章主要分享一下自己的技术选型思路,以及我觉得做这个项目过程中自己的一些感悟!包括对于系统架构的理解以及对于golang语言本身的理解。
2023-10-10
9分钟阅读时长

在aws上以lambda方式部署golang应用 -(上)用.zip压缩文件部署Go Lambda functions

在使用 AWS Lambda 运行 Go 时,可以将代码打包成 .zip 文件并上传到 Lambda 上。这样做的好处是可以将所有的依赖项打包在一个文件中,而不需要在 Lambda 中安装它们。同时,也可以避免在多个文件之间进行部署和管理的复杂性。 要将 Go Lambda 函数打包为 .zip 文件,您需要将函数代码和依赖关系放置在一个文件夹中,并将其压缩为 .zip 格式。如果您的 Go 程序包含外部依赖项,则需要在函数代码中包括它们,或者将它们一起打包到 .zip 文件中。 一旦您已经打包了 Lambda 函数,就可以通过 AWS 控制台或 AWS CLI 将其上传到 Lambda。上传完成后,您可以测试该函数并将其发布到您的应用程序中。通过使用 .zip 文件打包 Lambda 函数,可以有效地简化部署和管理过程,使您的开发工作更加高效。
2022-12-08
6分钟阅读时长

使用golang部署运行tls的https服务时,不用停机,高效证书下放,如何实现?

在网络通信中,HTTP和HTTPS是常用的应用层协议,而四层服务传输协议和七层服务传输协议则是不同的协议模型。当使用 golang 语言部署和运行带有 TLS 的 HTTPS 服务时,需要采取一些技巧来实现高效证书下放,而不会影响线上服务的正常运行。 HTTP和HTTPS是两种不同的应用层协议,HTTP协议是未加密的、明文传输的,而HTTPS是基于TLS/SSL协议的安全版本,通过加密与认证保护数据传输的安全性。在实际应用中,为了保护用户信息的安全,通常使用HTTPS协议进行网络通信。 四层服务传输协议和七层服务传输协议是不同的协议模型,分别定义了网络通信的逻辑结构和规则。四层服务传输协议(如TCP和UDP)负责在不同主机之间建立端到端的通信连接,并提供可靠的数据传输、流量控制等功能;而七层服务传输协议(如HTTP、SMTP、FTP等)定义了应用程序之间的通信规则、格式和内容,提供特定的服务功能。 Golang是一门开源的编程语言,具有高效性能和良好的并发处理能力。在使用Golang部署和运行TLS的HTTPS服务时,可以采用一些技巧来实现高效证书下放,而不会影响线上服务的正常运行。比如通过使用ACME协议自动化管理证书、使用GRPC框架进行交互式的证书下载等方式,可以有效解决证书下放的问题,并提高系统性能和可靠性。 综上所述,HTTP、HTTPS、四层服务传输协议、七层服务传输协议、Golang、Go语言学习以及Go语言技巧都是网络通信和编程中非常重要的概念和关键词。在进行相关学习和实践时,需要注重理解和掌握这些内容,才能更好地应对实际需求和挑战。
2021-04-10
11分钟阅读时长

Golang与其他语言的对比

Golang是一种相对较新的编程语言,它具有很多优点和独特之处。我们可以将其与其他编程语言进行比较和分析来更好地了解其优劣之处。

代码规范和文档编写

本文介绍了 Golang 的代码规范和文档编写指南。遵循这些规范可以使代码更易于维护和扩展,并且可以提高开发效率和代码质量。同时,使用 godoc 工具和编写示例代码可以帮助其他人了解你的代码和使用方式。

内存管理和垃圾回收

本文介绍了 Golang 内存管理和垃圾回收的工作原理,包括内存分配、内存释放和三种垃圾回收算法:Mark-Sweep算法、Stop-and-Copy算法和Tri-Color标记算法,并给出了优化建议。为了优化 Golang 的垃圾回收机制,我们可以采取减少内存分配、实现对象池、零分配内存和合理使用GC参数等措施。最佳实践包括避免不必要的对象分配、合理使用指针、使用延迟释放技术和使用内存映射文件等。遵循这些规范可以使代码更易于维护和扩展,并且可以提高开发效率和代码质量。通过了解如何优化内存管理和垃圾回收,可以帮助我们更好地开发高质量的应用程序。

Docker容器和Kubernetes集群的概念

本文介绍了Golang在Docker容器和Kubernetes集群中的应用。首先,针对Docker容器,作者详细介绍了如何使用Dockerfile构建镜像以及挂载卷、多阶段构建等技术。接着,针对Kubernetes集群,作者演示了如何使用Kubernetes部署文件定义容器的运行方式,使用Service实现负载均衡和服务发现,使用ConfigMap管理配置信息等。此外,文章还提供了一些Golang在Docker和Kubernetes中的最佳实践,例如使用最小化的基础镜像、将应用程序和依赖项分开构建、善于利用缓存等。本文内容详实且通俗易懂,适合初学者阅读和理解。

TCP、UDP协议和Socket编程

本文从 TCP、UDP 协议和 Socket 编程三个方面深入探讨了 Golang 中的网络编程实现方式,并提供了完整的代码示例。其中,TCP 是一种面向连接的协议,提供可靠的数据传输服务;UDP 是一种无连接的协议,提供不可靠的数据传输服务;Socket 则是 TCP 和 UDP 协议的抽象实现。文章中分别介绍了 TCP、UDP 和 Socket 的客户端和服务器的实现方式,并提供了详细的代码示例。这些知识对于开发网络应用程序非常重要,希望读者能够从本文中受益。