目录
什么是Nacos?
什么是注册中心?
什么是配置中心?
什么是服务管理平台?
Nacos的关键特性包括(有点)有哪些?
作用(为什么要使用)?
注册中心演变过程
①、分布式架构
②、数据库注册表
③、引入nginx
④、提供注册中心(其实就是nacos服务器)
⑤、引入心跳机制
Nacos的核心功能有哪些?
官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。
简述:集 注册中心+配置中心+服务管理 平台
参考:Nacos 注册中心的设计原理 · 语雀
把所有的服务都统一的放在 一个中心,后续调用的时候只需要用一个服务名调用远程的服务,而不是用ip地址去调用
在一个微服务项目中,不同的服务之间做着不同的事情,服务和服务之间会涉及到调用,那如何去管理,这里可以用到注册中心,当服务启动(Service)启动时,将自己的一个实例,注册到注册中心上,注册中心可以做服务发现,服务检测、心跳机制
帮助管理每一个服务的配置
- 原来:每一个服务都有自己的数据库/redis/MQ等配置,就会有很多公共配置
- 现在:把公共配置放在中,让中心去管理,而不用每个服务单独去管理
正常一个微服务项目都会有自己的一个配置文件,在这里可以配置服务的端口号、数据库地址等。当程序启动时会加载读取配置文件中的信息。当有多个服务时,我们可以将配置文件放到远端,将项目中每个服务的配置放到一起,统一管理,动态配置。
可视化界面动态管理
管理所有微服务、解决微服务之间调用管理错综复杂、难以维护的问题
问题:远程服务调用必须维护远程服务的ip地址和端口,当远程的服务器一旦发生扩容或是迁移,这个时候就需要去修改url中配置的远程服务地址。一改代码就需要重新部署上线
服务器迁移或扩容,就需要手动修改配置,重新发布上线
解决方案:数据库存储远程服务信息。添加数据库注册表
将远程服务地址存储在数据库注册表中,每一个远程服务地址都设置一个对应的服务名称。比方说:
会员服务想要调用订单服务,通过订单服务的名称order-server我们就可以查到远程服务地址
使用注册表的好处:让远程调用变得简单
存在的问题:
补充:
负载均衡的优点:减少服务器的压力,将原本一台服务器所要承受的访问量分给多台,并提高项目的可用性,当一台服务器挂掉的时候不会导致项目瘫痪。
引入nginx,把所有的服务列表都配置在nginx中
存在的问题:
一旦某个服务挂掉,肯定不希望nginx下次负载均衡的时候不要放到它,但是nginx不能实时的监控以及健康检查
解决方案:
一方面:可以使用第三方服务,可以解决,但是非常麻烦
另一方面:微服务中如果有成百上千个服务都需要配置在nginx,这对于运维来说是非常麻烦的,而且人工具有出错性
所以我们可以使用注册中心(nacos服务器)来帮助解决
注册中心其中有一个注册表,用来存储服务的信息(名称、远程ip、端口、状态)
还提供了一系列对外访问的rest、http等接口对外的访问,通过这些接口我们就可以动态的注册接口,以及获取到这些服务,动态的注册服务
过程:注册——>发现——>调用——>解析地址
在服务启动的时候就会调用注册接口,在注册表中添加一条这个服务的注册信息
服务之间调用前,每次服务都会注册中获取订单服务列表,调用服务获取接口(这些接口都是基于http、rest),获取到了远程服务的地址
整个过程都不需要人干,阿里巴巴提供了服务注册与发现
问题:
解决方案:引入心跳机制