核心知识点
- 服务注册中心诞生背景?(服务多了,需要统一管理,例如所有公司需要在工商局进行备案)
- 服务注册中心的选型?(社区活跃度,稳定性,功能,性能,学习成本)
- Nacos下载,安装(解压),配置(application.properties),启动(startup.cmd),访问(http://ip:port/nacos)
- 基于Nacos实现服务的注册?(添加依赖,服务配置,启动服务并检查)
- 基于RestTemplate实现服务的简易调用?(服务消费方调用服务提供方)
- 基于LoadBalancerClient对象实现服务发现,服务的负载均衡,服务实例(ServiceInstance)的获取.
常见问题分析
- 如何理解服务注册中心?(存储服务信息的一个服务)
- 服务注册中心诞生的背景?(服务多了,需要对服务进行更好的管理)
- 市场上常用的注册中心?(Zookeeper,Eureka,Nacos,Consul)
- 如何对注册中心进行选型?(社区活跃度,稳定性,功能,性能,学习成本)
- Nacos 是什么?(是Alibaba公司基于SpringBoot技术实现的一个注册中心,本质上也是一个web服务)
- Nacos 的基本架构?(Client/Server架构)
- Nacos 主要提供了什么核心功能?(服务的注册,发现,配置)
- Nacos 服务启动需要什么前置条件?(配置JDK的JAVA_HOME目录,安装MySQL5.7以上版本,二拍子连接的数据库)
- Nacos 服务单机模式,window平台下启动时的指令是什么?(startup.cmd -m standalone)
- 实现Nacos服务注册需要添加什么依赖?(两个:web,discovery)
- 实现Nacos服务注册时,必须做哪些配置?(服务名,例如是本届服务注册可以省略服务地址)
- Nacos如何检查服务状态?(通过心跳包实现,服务启动时会定时向nacos发送心跳包-BeatInfo)
- 服务之间进行服务调用时,使用了什么API?(RestTemplate,用此对象之前要先创建这个对象并交给spring管理)
- LoadBalancerClient对象的作用是什么?(基于负载均衡算法获取服务实例)
常见Bug分析
- JAVA_HOME环境变量定义错误,例如:
说明,这里一定要注意JAVA_HOME单词的拼写,JAVA_HOME中定义的JDK是存在的,还有后面的路径不能有分号";".
MySQL版本比较低(建议mysql5.7或mariadb10.5及以上版本),例如:当执行nacos-mysql.sql文件时,出现如下错误:
sql文件不存在,例如
SQL文件应用错误,例如:
Nacos的application.properties配置文件中,连接数据库的配置错误.
Nacos配置文件application.properties配置错误,例如:
服务启动时,端口被占用了.例如:
服务注册时,服务名不正确,格式不正确,配置文件名字不正确,或者没有配置文件,例如:
磁盘写权限问题(nacos服务启动时会在当前磁盘目录写日志),例如:
基于Nacos实现服务注册失败,例如:
客户端500异常,例如
服务调用时,连接异常,例如:
客户端404异常,例如:
服务调用时底层404问题,例如:
服务访问问题,例如:
依赖注入异常,例如:
客户端请求方式与服务端不匹配,例如:
依赖版本问题,例如:
服务配置读取问题,例如: