linux - 我可以运行在云中保持端口打开的微服务吗?

标签 linux server cloud microservices

我是微服务新手。我将它们设想为一组在两台或多台机器上运行的进程(我想对于一个给定的进程,两个实例必须在不同的机器上运行以确保可靠性)。在该设置中,根据我拥有的客户端类型,可能有一个进程作为 TCP 服务器在特定高端口上服务并使用非 HTTP 协议(protocol)。

但是,出于我的低带宽测试目的,我还没有找到提供这种环境的免费云服务(机器在 Linux 上运行进程,例如 Java,同时保持高端口打开)。

也许我期望的设施只对付费客户可用,或者在云中实现微服务架构可能不仅仅是在机器上运行进程和共享数据库?有人可以澄清吗? (如果可能的话,请告诉我一项这样的免费服务)

最佳答案

是的,当您说微服务更多地是关于可以部署在一台或多台云计算机中的独立服务(进程)时,您是对的。每个服务都可以使用非 http 协议(protocol)(如消息代理、Thrift、远程过程调用 (RPC) 等)与其他服务通信。

从架构的角度来看,服务大部分应该足够解耦以处理分布式计算的复杂性。查看 Microservices Architecture link 上的图片 有一个 API 网关的概念,可用于身份验证以及服务注册和发现目的。

回到您的问题,您可以在单个云上测试微服务(通过在不同的端口上运行每个服务)并使用 API 网关来发现引用的服务路径这里是值得一看的链接。

有关概念,请参阅链接:Microservices.iostackoverflow question

实现:zookeeperAuth0 (这是我正在使用的)

如果您是 Java 爱好者,请查看infoQ article 一些可能有助于构建和测试微服务的免费资源是:Google App Engine , hook.io

关于linux - 我可以运行在云中保持端口打开的微服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35304113/

相关文章:

linux - BZIP2 压缩文件滞后

linux - 如何在没有大堆栈的情况下在 2 个不同的 Centos 主机上建立 2 个服务之间的依赖关系?

javascript - 如何在浏览器中访问远程 node.js 应用程序,而不是在本地主机上

java - 如何使用 .net 代码执行 Amazon Cloud Search?

java - Jelastic-主机 '' 不允许连接到 MySQL 服务器

linux - 在包含字符串的文件系统名称上使用 GREP 时获取使用百分比

linux - 如何使用 sed ssh 更改值

在云中执行 Java 代码

c - 如何确认多个进程共享映射区域,使用带有 MAP_SHARED 标志的 mmap 创建

linux - 为 i386 linux 内核使用 qemu 的地址空间标识符