微服务服务注册和服务发现

在微服务架构中,需要处理的微服务器数量相当高。而且,由于微服务的快速和敏捷的开发/部署性质,他们的位置一般来说也会动态变化。因此,你需要在运行时间内找到微服务器的位置。解决此问题的方法是使用Service Registry。

服务注册表

服务注册表保存微服务实例及其位置。Microservice实例在启动时注册到服务注册表,并在关机时注销。消费者可以通过服务注册表找到可用的微服务及其位置。

服务发现

要找到可用的微服务及其位置,我们要一个服务发现机制。有两种类型的服务发现机制,客户端发现和服务器端发现,来看看这些服务发现机制各原理如何。

客户端发现:

在这种方法中,客户端或API-GW通过查询服务注册表来获取服务实例的位置。




java 微服务 打包 java微服务部署方式_微服务怎么部署到服务器的


这里客户端/API-GW必须通过调用Service-Registry组件来实现服务发现逻辑。

服务器端发现:

通过这种方法,客户机/API-GW将请求发送到在众所周知的位置运行的组件(如负载平衡器)。该组件调用服务注册表并确定微服务器的绝对位置。


java 微服务 打包 java微服务部署方式_微服务_02


微服务部署

在微服务架构方面,微服务的部署同样起着至关重要的作用,关键要求如下:

能够独立于其他微服务部署/部署。

必须能在每个微服务级别做扩展(给定的服务可能比其他服务获得更多的流量)。

快速构建和部署。

一个微服务的故障不得影响任何其他服务。

Docker提供了一种很好的方式来部署满足上述要求的微服务器,所涉及的关键步骤如下:

将微服务作为(Docker)容器镜像打包。

将每个服务实例部署为容器。

基于更改容器实例的数量来进行缩放。

构建,部署和启动微服务将会快得多,因为我们使用Docker容器(这比常规VM快得多)

Kubernetes通过允许将一组Linux容器作为单个系统进行管理,在多个主机上管理和运行Docker容器,提供容器的共同位置,服务发现和复制控制,从而扩展Docker功能。其实大多数这些功能在微服务环境中也很重要,因此使用Kubernetes(在Docker上面)用于微服务部署已经成为一种非常强大的方法,特别是对于大规模微服务部署。


java 微服务 打包 java微服务部署方式_Docker_03


上图,显示了零售应用的微服务部署概述。每个微服务实例被部署为容器,每个主机有两个容器。同时可随意更改在给定主机上运行的容器数。

总结

以 上就是我对 Java开发大互联网-微服务服务注册发现与如何实现容器部署 问题及其优化总结