文章目录
1. 微服务
1.1 微服务概括
-
单体架构有问题,所以做项目的纵向拆分,SOA面向服务的编程思想,早期的这种思想落地方案是采用ESB作为企业服务总线,但是有很多的遗留问题难以解决.后来出现了微服务概念,微服务的各种组件技术.
-
微服务=SOA思想+组件技术
-
微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API/或其它协议 直接 通信。同时服务会使用最小的规模的集中管理能力,服务可以用不同的编程语言与数据库等组件实现。
-
单体架构存在的问题,目前可以进行纵向拆分,但是依然有没解决的问题,远程调用.
-
简单来说,微服务就是将一个大型项目的各个业务模块拆分成多个互不相关的小项目,而这些小项目专心完成自己的功能,而且可以调用其他小项目的方法,从而完成整体功能.
-
实现微服务的系统项目架构落地,我们需要引入微服务的框架技术.
-
我们选择 spring cloud中的alibaba一套开源组件.
-
这种问题就是拆分之后出现的新问题(拆分的结构已经是一个分布式结构)
-
这种拆分的结果,每个独立运行的项目—微服务
-
微:小,可以拆分的更细致
-
服务: 可调用的功能
-
分布式:一件事(广义的),多个进程/节点/模块 完成.都叫做分布式.
-
微服务结构,满足灵活扩展的.引出非常多问题,比如远程调用,比如调用失败的熔断,比如分布式事务等.
-
想要解决,引入微服务架构技术,比如Spring Cloud/Spring Cloud Alibaba
2. 微服务框架
2.1 Spring Cloud
- SpringCloud是由Spring提供的一套能够快速搭建微服务架构程序,解决分布式微服务架构中各种问题的的框架集.
- 框架集表示SpringCloud不是一个框架,而是很多框架的集合.并不需要把所有内容都学完.
2.2 Spring Cloud alibaba/Spring Cloud Netflix
- Spring自己提供的开发出来的框架或软件
- Netflix(奈非):早期的很长一段时间,提供了大量的微服务解决方案
- alibaba(阿里巴巴):新版本的SpringCloudAlibaba正在迅速占领市场(推荐使用)
2.3微服务框架组件(alibaba)
-
- nacos: 注册中心 配置中心
- dubbo: 远程调用rpc框架
- sentinel: 熔断器,限流器
- rocketmq: 异步通信队列
- spring cloud gateway: 微服务网关
所有组件使用,整合到spring cloud,spring cloud出现是基于springboot完成的.
使用学习的步骤,大三步.
- 依赖
- 配置yaml
- 简单配置: 可能是配置类,可能是注解
注意:只学习其中1-2个,没有全学完,有可能不能完成一个完整的微服务架构的.
3 Nacos
3.1 Nacos介绍
- 官网文档地址: https://nacos.io/zh-cn/docs/quick-start.html
- 缩写就是 Naming Configuration service,本身nacos就是一个service服务,这个服务的功能包括命名管理,服务注册发现,和配置管理。
- 官方介绍
- Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
- Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
- 和spring cloud原生组件eureka是非常类似的,所以在eureka停更之后,nacos的活跃度非常高,无论从应用还是性能都是首选替代品。
3.3 Naocs工作结构
- nacos组件中角色划分:
- 服务端:刚刚启动的进程就是服务端,可以接收客户端的各种请求,根据不同请求处理客户端发送的请求信息.请求可以使用不同的通信协议,比如http rpc等.
- 客户端:就是我们拆分出来的每一个微服务,在我们的demo案例中,有4个服务分别是buseniss cart order stock,每一个服务都可以启动好多个客户端
3.3 Nacos功能
- 服务治理
管理纵向拆分出来的,独立运行的服务集群. 治理的主要手段 注册 发现
- 配置管理
服务中冗余,重复的项目配置比如json properties txt yaml文件几种管理,分组,分环境管理.
3.4 环境准备
下载
- jdk下载链接:https://www.oracle.com/java/technologies/downloads/
- 双击下载软件安装
- 全部默认下一步
- 关注一下安装目录,安装完成检查一下目录
- 跳转到JAVA_HOME配置
- 链接地址: https://github.com/alibaba/nacos/releases/download/1.4.3/nacos-server-1.4.3.zip
- 确保当前windows,或者系统环境变量JAVA_HOME
1). WINDOWS java安装包 安装完成自动配置
2). 配置JAVA_HOME环境变量 指向安装目录.
最后新开一个cmd 输入java -version确定环境变量生效.
安装
- 解压直接使用: 没有中文,没有空格的路径
- 如果启动运行出现Please set JAVA_HOME提示说明上一步环境变量没有配置.
- 启动这个软件,启动命令
- windows: startup.cmd -m standalone
- linux/mac: sh startup.sh -m standalone
在windows的doc环境cmd可以直接运行,前提先进入nacos的家目录中的bin文件夹里.
- 进入到nacos家目录中bin文件夹下,打开cmd
运行命令,添加一个选项,单机运行
window:bin> startup.cmd -m standalone
ios及Linux:bin> startup.sh -m standalone
注意:- cmd运行程序有个坑: 卡主,选中cmd enter回车
- 如果出现其他问题,一定是jdk版本问题
- startup.cmd 拼接,判断最终运行了一个command命令
- 查看nacos启动所有问题的日志文件
- 可访问的nacos控制台页面
访问localhost:8848/nacos地址.
通过登录用户名 密码
nacos/nacos