APP/Browser,Gateway,用户中心,内容中心,Ribbon,Nacos是如何相互调用及配合的?
用户中心,内容中心分别有自己的服务,内容中心的一些业务需要调用用户中心
感觉用户中心,内容中心有的时候是服务提供者,有的时候是服务消费者,对整个的过程不理解
只知道Nacos可以实现注册中心,配置中心;Ribbon可以实现负载均衡,Gateway实现服务网关,常见的基于HTTP协议的服务调用有HttpUrlConnection,RestTemplate,OpenFeign。
除了不理解整体的过程和关系外,还不理解Nacos和用户中心之间的交互,注册的是什么?拉取的又是什么?在加载ApplicationContext之前将服务名称,端口号,服务地址,是否存活等信息注册到表里,当需要调用的时候拉取一个实例,我这样理解对吗?
有没有人能用比较通俗的语言指点一二啊,写了写例子,看了一些文章还是不太懂
首先理解这些概念:
现在我们来解释一下这些概念之间的关系和如何相互调用:
首先需要在Nacos上注册服务,即将服务名、IP地址、端口号等信息注册到Nacos上。这样APP/Browser就可以通过Nacos来发现和调用服务。
当APP/Browser需要访问某个服务时,它会向Nacos发出请求,Nacos会返回可用的服务实例列表(包括IP地址、端口号等信息),APP/Browser就可以选择其中一台实例进行请求发送。这个流程中,APP/Browser是服务的消费者,而Nacos充当了注册中心的角色。
如果有多个服务实例,如何将请求以均衡的方式分散到各个实例上呢?这时就需要使用Ribbon来进行负载均衡,它会根据实例的可用性和负载情况自动分配请求。在这个流程中,Ribbon充当了负载均衡器的角色。
当APP/Browser发出请求后,请求会到达Gateway,Gateway再将请求转发给相应的服务(如用户中心、内容中心),这时用户中心和内容中心充当了服务提供者的角色。在接收到请求后,它们会处理请求并返回响应结果。
在服务提供者内部,如果需要调用其他服务(如用户中心调用认证服务),那么就可以通过Nacos来发现和调用该服务,这个过程类似于服务消费者的流程。不同之处在于,此时服务提供者(如用户中心)充当了服务消费者的角色。
最后,Nacos还可以作为配置中心来管理各种配置信息(如数据库连接信息、日志级别等)。这些配置信息可以动态修改,并且能够及时生效。服务提供者和服务消费者在启动时也可以从Nacos中获取所需的配置信息。
总之,以上就是几个概念之间的关系和相互调用方式,希望能够帮助你理解。