一)初始微服务:
微服务是将一个大型的,单一的应用程序拆分成多个小型服务,每一个服务负责于特定的业务功能,并且可以通过网络来和其他服务进行通讯,是一个思想,将一个大的项目拆分成多个小的项目,多个小的项目之间可以进行网络通信;
优点:
1)可以分而治之,之前的团队就需要把一个单体应用所有的功能都写完,压力很大,这时就可以拆分出多个小组,每一个小组负责于固定的业务,这时候大家的职责就比较明确了,可以协同配合;
2)每一个模块可以单独的部署,一个模块出问题以后不会导致所有模块全部宕机;
外部和内部之间的通讯的问题,内部和内部之间的通讯的问题
注册中心:将所有的服务都注册到注册中心里面,然后由注册中心给调用者来提供注册的名单,解决的是外部通讯的问题,不是说所有的东西都可以访问注册中心,只有服务内部集成了SDK才可以向Nacos来访问,但是前端模块就不可以访问注册中心;
网关:提供统一的入口,提供了一个url,将所有的服务全部注册到网关上
分布式链路追踪:排查问题
二)Nacos:
配置中心:关键信息都在云端,动态的修改,动态的管理配置文件,配置信息还更加安全
1)如果要是使用本地文件,首先来说不安全
2)本地文件不好修改,打包项目给运维的话,运维都无法进行修改配置文件也不容易修改
3)还可以进行历史信息的对比
4)所有机器可以连接使用同一份配置文件
注册中心:让生产者将生产者的服务的接口注册到注册中心
还可以把生产者注册的链接给到消费者,用于服务发现和服务注册;
nacos安装:不要将安装包安装在系统盘,然后安装路径不要使用中文
下载Nacos,解压Nacos,使用命令行窗口进入Nacos和bin的启动路径输入启动命令:
winows:startup.cmd -m standalone
linux:startup.sh -m standalone
1)先进行下载安装包:
2)进行启动:startup.cmd -m standalone
3)nacos启动遇到问题:
3.1)查看是否是权限问题
3.2)JDK版本必须大于JDK8
3.3)startup.cmd -m standalone,启动基于单机
3)开启权限认证:首先,找到 Nacos 安装目录的中的 conf/application.properties 文件,修改以下几次内容为以下配置:开启权限认证,权限认证类型是nacos,默认密码,开启白名单,可以设置成任意值,设置完成直接重新启动,先设置用户,在设置角色,最后设置权限,默认的数据源,是Derby数据库,是内置本地数据库,可以保证数据不丢失;
nacos.core.auth.enabled=true nacos.core.auth.system.type=nacos nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 # 访问 Nacos 敏感接口的白名单,key 和 value 必须要有值 nacos.core.auth.server.identity.key=nacos nacos.core.auth.server.identity.value=nacos4)数据库更换信息:更换完成以后你可以创建一个用户,然后再MYSQL中进行查询
5)开始配置
6)新建项目:选择JDK17和start.aliyun.com
7)选择SpringBoot的版本是最新版本3.0.2,输入nacos进行搜索
第一个代表注册中心,第三个表示配置中心
第二个用于给限流熔断的时候要存储限流的规则和数据,A接口限流多少,B接口限流多少,Sentinel使用内存来存储,重启以后就没了,他本身不支持MYSQL,给Sentinel做数据源;
最后删除无效文件md和阿里给的示例
8)设置nacos配置信息
如果有分组的需求可以设置分组,spring.config.import后面的值必须等于配置信息中的DataID
9)读取信息
微服务和微服务之间如何进行通讯,很多服务连成一个应用,也就是内部组件之间的通信,不能将IP写死,去进行调用,如果对应的服务挂了,此时就不能修改,因为服务很多的,不光写法麻烦,还没有健康检测机制,所以引入了注册中心;
还有前端模块是如何和微服务之间进行通讯的问题
Nacos注册中心:
1)服务注册(服务的提供方将服务存储起来):将统一的服务注册到注册中心里面,好处就是我将A服务,B服务注册到注册中心里面,A服务挂了,那么此时注册中心是可以检测到服务的健康状态的(基于健康检测机制),挂掉的服务此时注册中心就不会将这个IP进行对外暴露了
2)服务发现(将服务的注册的健康节点列表给需要调用的消费者)将注册中心的健康节点给别人
一)将服务注册到nacos:
1.1)启动nacos服务器
1.2)添加nacos注册中心配置,Nacos discovery
1.3)配置Nacos链接信息
1.4)编写调用接口(开发接口)
当项目启动以后,当前项目就会自动注册到注册中心Nacos中
SpringBoot多模块项目:
需要选中的依赖:OpenFeign(消费者调用生产者接口,负责服务之间发送HTTP请求的),Cloud LoadBalancer(负载均衡器),Nacos Service Discovery(nacos注册中心)