go语言nsq单机部署 go语言怎么运行( 五 )


良好的语言设计 。从学术的角度讲 Go 语言其实非常平庸 , 不支持许多高级的语言特性;但从工程的角度讲,Go 的设计是非常优秀的:规范足够简单灵活,有其他语言基础的程序员都能迅速上手 。更重要的是 Go 自带完善的工具链,大大提高了团队协作的一致性 。比如 gofmt 自动排版 Go 代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题 。把编辑器配置成在编辑存档的时候自动运行 gofmt,这样在编写代码的时候可以随意摆放位置 , 存档的时候自动变成正确排版的代码 。此外还有 gofix, govet 等非常有用的工具 。
执行性能好 。虽然不如 C 和 Java , 但通常比原生 Python 应用还是高一个数量级的,适合编写一些瓶颈业务 。内存占用也非常省 。
Go语言使用NSQ消息队列重点提示:
这样我们就启动了一个 nsqd的实例
编写一个消息生产者
nsq_single_product.go
编写一个消息消费者
nsq_single_consumer.go
添加第一个实例
添加第二个实例
消息生产者
nsq_cluster_product.go
消息消费者
nsq_cluster_consumer.go
GO语言商业案例(十六):Curve-Golang 的创建是为了实现最大的用户效率和编码效率 。已经熟悉 Java 或 PHP 的程序员可以在几周内接受 Go 的培训(许多人最终会更喜欢它) 。在本文中 , Dewet Diener 探讨了 Golang 的优缺点,以及它的测试驱动开发 (TDD) 如何完美契合 。
Golang 由 Google 开发和设计,于 2009 年作为一种综合性编程语言首次出现 , 旨在最大限度地提高编码效率 。创建该语言的目的是修正其他已建立语言的缺陷 。尽管 Golang(或简称为“Go”)是一门年轻的语言,但已经积累了大量的开发人员 , 因此我们想分享为什么在 Curve 我们喜欢 Golang,以及我们如何采用它来实现我们移动银行业务的目标到云端 。
Go 是一种精致的编程语言:它支持“所见即所得”的原则,这意味着清晰易读的代码和更少的复杂抽象 。该语言本身易于使用且易于训练 。尽管如此,作为一个相对较新的生态系统,要找到对 Go 具有广泛预先知识的工程师可能会很棘手 。
然而 , 与其他编程语言不同,Go 的创建是为了最大限度地提高用户效率 。因此,具有 Java 或 PHP 背景的开发人员和工程师可以在几周内获得使用 Go 的技能和培训——根据我们的经验,他们中的许多人最终更喜欢它 。
在 Curve,我们大力提倡测试驱动开发 (TDD),Go 的框架与这种方法保持一致 。通过简单地命名一个文件foo_test.go并在该文件中添加结构化测试函数,Go 将快速有效地运行您的单元测试 。这一创新功能提高了生产力,因为它可以更加专注于测试驱动的开发和改进的同行评审机会 。
Golang 具有出色的生产优化品质,例如内存占用小,这支持其在大型项目中作为构建块的能力 , 以及开箱即用的与其他架构的轻松交叉编译 。由于 Go 代码被编译为单个静态二进制文件,因此它可以轻松进行容器化 , 并且通过扩展,将 Go 部署到任何高可用性环境(例如 Kubernetes)中几乎是微不足道的 。
它提供了一种机制来保护工作负载,通过拥有非常纤薄的生产容器而没有任何无关的依赖项 。这使得构建、部署和维护基于 Go 的资产更加直接和安全 , 并为希望建立或发展其微服务战略的公司提供了可靠的选择 。
Go 是专门为满足我们快速发展的技术生态系统的需求而创建的 。例如,Go 可以满足您构建 API 所需的一切,并将其作为其标准库的一部分 。它使用简单,高性能的 http 服务器消除了团队设计新项目时经常发生的一些常见的 探索 和设计瘫痪问题——这对于一些其他流行语言(如 Java 和 Node.js)来说太常见了 。

推荐阅读