工作中使用了微服务架构,接下来的一段时间里,我会写一系列的文章来介绍微服务架构,同时我也会在github上写一个microservices的应用框架(地址会在后续文章给出)。
这篇文章主要讲述了微服务架构中的服务发现与服务注册。
翻译和整理自:
- http://microservices.io/patterns/client-side-discovery.html
- http://microservices.io/patterns/server-side-discovery.html
- http://microservices.io/patterns/service-registry.html
- http://microservices.io/patterns/self-registration.html
- http://microservices.io/patterns/3rd-party-registration.html
一、客户端服务发现与服务端服务发现
1.上下文
service经常需要调用另一个service,在单一架构应用中,service通过语言层面或者程序层面去调用,在传统的分布式系统部署中,服务运行在一个固定的已知的地址(host和ports),从而可以简单的被别的service通过HTTP/REST或者某种RPC机制来调用。但是,微服务架构应用经常运行在虚拟化的或者容器化的环境中,很多服务和他们的地址是动态变化的。
因此, 你必须实现一种机制,使得service的客户端可以发送请求到动态变化的service实例上。