Files
the-way-to-go_ZH_CN/eBook/21.3.md
Haigang Zhou 1573212775 第二十章和第二十一章的翻译 (#831)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-19 20:05:42 +08:00

22 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 21.3 Atlassian一个虚拟机群管理系统
http://www.atlassian.com/
在 AtlassianGo 被用于支持并发的实用程序设计,事实上是用于配置和监控测试服务器。他们为软件开发人员制作开发和协作工具(主要是一个 Java 商店)。他们有一个由虚拟机 (VM) 组成的测试集群,在大量无硬盘主机上运行。它的供应和监控系统是用 Go 编写的;该系统由 3 个部分组成:
- 在每个服务器上运行的代理进程,广播其虚拟机的状态。
- 一个管理程序,听取代理的广播,并在一个虚拟机没有报告时采取行动。
- 一个命令行工具,用于向管理器发布命令。
代理使用协议缓冲区来编码它所读取的状态信息,并通过 UDP 广播这些信息。管理器读取配置文件并为集群中的每个虚拟机启动一个 goroutine。每个 goroutine 监听来自其相应的虚拟机的公告并发出指令shell 命令),使其处于正确的状态。
<u>为什么 Go 在这里起作用:</u>每个虚拟机的一个 goroutine 很好地映射到它们的配置。
这个系统也*很容易部署*,因为他们可以运送没有依赖性的二进制文件。
正如 Atlassian 工程师 Dave Cheney 所说:
> “代理程序运行在联网启动的机器上,并且完全从 RAM 中运行。与 JVM 或 Python 的运行时相比,单一的静态二进制文件是一个很大的节省。”
- [目录](directory.md)
- 上一节:[MROffice一个使用 Go 的呼叫中心网络电话 (VOIP) 系统](21.2.md)
- 下一节:[Camilistore一个可寻址内容存储系统](21.4.md)