我是微服务新手。我将它们设想为一组在两台或多台机器上运行的进程(我想对于一个给定的进程,两个实例必须在不同的机器上运行以确保可靠性)。在该设置中,根据我拥有的客户端类型,可能有一个进程作为 TCP 服务器在特定高端口上服务并使用非 HTTP 协议(protocol)。
但是,出于我的低带宽测试目的,我还没有找到提供这种环境的免费云服务(机器在 Linux 上运行进程,例如 Java,同时保持高端口打开)。
也许我期望的设施只对付费客户可用,或者在云中实现微服务架构可能不仅仅是在机器上运行进程和共享数据库?有人可以澄清吗? (如果可能的话,请告诉我一项这样的免费服务)
最佳答案
是的,当您说微服务更多地是关于可以部署在一台或多台云计算机中的独立服务(进程)时,您是对的。每个服务都可以使用非 http 协议(protocol)(如消息代理、Thrift、远程过程调用 (RPC) 等)与其他服务通信。
从架构的角度来看,服务大部分应该足够解耦以处理分布式计算的复杂性。查看 Microservices Architecture link 上的图片 有一个 API 网关的概念,可用于身份验证以及服务注册和发现目的。
回到您的问题,您可以在单个云上测试微服务(通过在不同的端口上运行每个服务)并使用 API 网关来发现引用的服务路径这里是值得一看的链接。
有关概念,请参阅链接:Microservices.io和 stackoverflow question
实现:zookeeper和 Auth0 (这是我正在使用的)
如果您是 Java 爱好者,请查看infoQ article 一些可能有助于构建和测试微服务的免费资源是:Google App Engine , hook.io
关于linux - 我可以运行在云中保持端口打开的微服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35304113/