使用alibaba-nacos实现分布式系统中的服务中心

使用 alibaba-nacos 实现分布式系统中的服务中心

​ 最近在做一个分布式电商系统,使用spring-cloud-alibaba中的nacos作为项目的服务中心,下面简单介绍一下分布式系统、服务中心、以及nacos的使用

什么是分布式

​ 首先我们要清楚分布式的概念:

分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。 ——百度百科

​ 百度百科的解释看起来十分晦涩,我们可以理解为分布式系统是一种由多个节点构成的系统,节点之间互相连通,可以进行通信,它的优点是具有更高的效率和可靠性,庞大的任务可以被拆分成若干子任务,整个系统也不会因为一个节点的故障而崩溃,当一个节点崩溃时,其他节点仍然可以正常运行

​ 举个简单的例子,假设我们现在有两种服务,一个是用户服务,一个是商品服务,当我们要实现用户买商品时,按照传统思路,所有的用户都需要访问这一个用户服务程序,再访问同一个商品服务程序,当访问量巨大时,会出现效率极低的情况,并且,一旦唯一的用户服务或商品服务掉线,整个系统都会崩溃

​ 如果我们采用分布式系统的设计,将若干个用户服务和若干和商品服务同时部署,再发生上述情况时,服务器的压力会大大减小,并且,若出现服务故障,当前任务进程可以去申请其他节点的服务继续执行,系统崩溃的几率会大大降低

集群

​ 分布式是一种工作方式,集群是一种物理形态

​ 例如京东是一个分布式系统,众多业务运行在不同的机器,所有业务构成一个大型的业务集群,每一个小业务在访问压力大的时候使用一台服务器是不够的,我们就应该将相同的业务部署在多个服务器上,也就是每一个业务都可以做成集群化,而集群中的一个服务器,就称为节点

远程调用

​ 在分布式系统中,各个服务处于不同主机,但是服务之间不可避免的需要相互作用,我们称为远程调用

Spring-Cloud中使用HTTP + JSON的方式完成这种远程调用

服务的注册和发现——注册中心

​ 当A服务嗲用B服务时,A服务并不知道系统中当前哪几台服务器在运行B服务,哪些B服务是正常的,哪些是下线的,为了解决这个问题,引入了注册中心

​ 当某些服务上线或者下线,会在在注册中心注册或注销,注册中心会实时感知到这些服务的状态,从而避免调用不可用的服务

-------------本文结束感谢您的阅读-------------