微服务概述
企业级应用和互联网应用
企业级应用 一般指一个企业内部使用的网站或程序
医院,金融,商业,专业领域,军事,教育
这样的项目特征是使用的人数较少
对性能没有特别强烈的要求
对业务的复杂度要求比较高
互联网应用 一般指的是全国甚至全世界范围内所有因特网的使用者都可以访问的应用程序
这样的项目特征是业务相对简单,但是由于访问人数很多
对性能有强烈要求,
这种强烈的要求可以分为3种:高并发,高可用,高性能
什么是微服务
2014年,Martin Fowler(马丁·福勒)提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTPAPI 通信。同时服务会使用最小的规模的集中管理能力,服务可以用不同的编程语言与数据库等组件实现。
微服务的优势
简单来说,微服务 就是将现有项目中的所有业务,根据一定规则拆分成 多个小项目,每个项目负责不同的业务,导致每个项目的代码量都减少了,达到更加易扩展易维护的效果
更重要的是 应对互联网,高性能,高可用,高并发的特性 能方便的进行服务器的扩展和变化
对比:
小餐厅:
老板一个人,负责 点菜、做菜、收钱三个业务;
如果人多了,雇一个员工,也是负责 点菜、做菜、收钱三个业务
小餐厅成本低,但是能够接受的请求量是非常有限的
大餐厅:
专人 服务员 负责点菜,专人厨师 负责做菜,专人 收银员负责收钱
大餐厅成本高,但是能够接受的请求量是可以扩展的,只要配置合理,就可以承载像双11那样的高并发请求
放到微服务就是,多台服务器 处理一个点餐业务,另外 多台服务器 处理 做饭 …
靠我们自己来编写多个微服务项目的配置是不现实的
要使用 快速搭建微服务程序架构的框架集—SpringCloud
SpringCloud 搭建微服务项目
SpringCloud不是一个框架,而是一些 能够完成搭建微服务项目的框架 \ 组件 \ 软件的集合
有人将 springcloud 称之为"Spring全家桶"
SpringCloud 包含很多 可以完成微服务架构项目的组件,主要有两套:
- Netflix:奈非
- Alibaba:阿里巴巴
国内的趋势是阿里巴巴的组件越来越多
SpringCloud 主要包含以下几方面的功能:
- 微服务的注册
- 微服务的网关
- 微服务的调用
- 微服务的安全和权限管理 等
要搭建微服务项目,首先要创建注册中心
Nacos 注册中心
Nacos是SpringCloud Alibaba提供的软件
它具有使微服务组件的注册功能运行,它需要 java的环境变量
Windows系统 java 环境变量配置:
- 计算机\此电脑 图标上点击右键 属性
点击高级系统设置
点击环境变量
检查系统变量 是不是有JAVA_HOME的配置,并且配置的路径确实有 jdk 的文件内容
如果没有JAVA_HOME点击新建 并按要求配置即可
有了java环境,在运行nacos
nacos的安装
下载nacos :
https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-server-1.4.2.zip
光标放到路径上,复制路径
Win+R 输入cmd 进入dos
启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone
启动之后访问:localhost:8848/nacos , 进行登录
用户名和密码都是: nacos
到此为止,nacos的安装和启动就完成了
项目注册到nacos
今后的所有微服务项目 都要注册到nacos
现在我们的项目中有knows-resource项目,我们可以通过配置 让这个项目先注册到nacos
首先要新增很多父项目中的配置,用于支持SpringCloudAlibaba的各种版本 和 我们今后微服务中使用到的这种版本
已经用PDF文件的方式发送给大家
knows父项目的pom.xml文件要和老师的同步
knows-resource项目的pom.xml文件也要同步
同步之后去设置 knows-resource项目的application-properties
knows-resource项目的SpringBoot启动类
以上就是配置一个项目注册到nacos的整个过程
今后再有项目需要进行nacos的注册
步骤简单就是:
1.当前子项目添加pom.xml的依赖
2.到application.properties配置文件中配置名称和注册地址
3.在当前子项目的SpringBoot启动类添加注解
这三个配置经常出现和使用,我们称之为配置的"三板斧"