SpringCloud概念
微服务概述
服务
- 为别人做事情,满足别人需要
- 在代码中我们写一段代码,提供一个接口供别人使用服务。
集群&分布式概述
单机结构
- 一个系统业务量很小的时候,代码全放在一个项目中。然后项目部署在一个服务器上,就是单机结构。
- 缺点:就一台服务器处理能力有限,当访问量大量增加时。单机就不够用了
集群结构
-
简述:将多份相同的代码,部署在不同的服务器上。这些服务器构成在一起,就是一个集群。
-
当单机结构 处理达到瓶颈的时候。就打单机代码复制几份,就构成一个“集群”。 集群中每台服务器就叫做 这个集群中的 一个 “节点”。
-
每个几点提供相同的服务,这样系统的处理能力就提升好几倍。
-
负载均衡服务器会根据当前所有节点的负载情况,再决定将请求交给 负载比较小的节点进行处理。
分布式结构
-
简述:分布式将一个完整的系统,按照业务功能,拆分成多个独立的子系统,每个子系统被称为“服务”,服务之间通过RPC通信
-
举个例子,假设需要开发一个在线商城。按照微服务的思想,我们需要按照功能模块拆分成多个独立的服务,如:用户服务、产品服务、订单服务、后台管理服务、数据分析服务等等。这一个个服务都是一个个独立的项目,可以独立运行。如果服务之间有依赖关系,那么通过RPC方式调用。
-
好处:
- 系统之间的耦合度大大降低,可以独立开发、开发效率大大提升。
- 系统更易于扩展。
- 服务的复用性更高。
图片解释
高可用
-
高可用:强调服务的可用性,就算非常极端的情况下,也可以稳定的提供服务。
-
集群 是实现高可用的必须方式
分布式,集群,负载均衡的关系
-
分布式:将一个大服务拆分成N个小服务,每个小服务都是独立的,开发独立,部署独立
-
集群:将同一项目代码部署在N台服务器上
-
负载均衡:将N多请求分摊在各个服务器上; 如果集群,必然要负载均衡;如果负载均衡,必须要集群
-
集群至少需要3台服务器,即是挂了一台,剩下两台还能继续集群
微服务
-
概述: 将一个完整的系统,按照业务功能,拆分成多个独立的子系统,每个子系统被称为“服务”
-
微服务与分布式的架构 基本相同。 区别在于部署。
- 微服务可以能部署在一台服务器上
- 分布式是部署在多台服务器上
- 微服务是架构设计方式,分布式是系统部署方式
微服务特点:
- 单一职业:微服务中每一个服务都对应唯一的业务能力,做到单一职责
- 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。
- 独立:自治是说服务间互相独立,互不干扰
- 团队独立:每个服务都是一个独立的开发团队,人数不能过多。
- 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉
- 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动端开发不同接口
- 数据库分离:每个服务都使用自己的数据源
- 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护 Docker部署服务
SpringCloud
- 微服务是一种架构方式,需要技术架构去实施。
- SpringCloud是一种用来 架构微服务思想的 技术工具
简述
-
SpringCloud是Spring旗下的项目之一,官网地址:http://projects.spring.io/spring-cloud/
-
SpringCloud微服务主要涉及的组件:
- Eureka : 注册中心
- Zuul : 服务网关
- Ribbon : 负载均衡
- Feign : 服务调用
- Hystrix : 熔断器
版本
- SpringCloud的版本命名比较特殊,因为它不是一个组件,而是许多组件的集合,它的命名是以A到Z的为首字母的一些单词组成:
- SpringCloud的版本需要与Springboot的版本进行对应,不然会出现问题
YAML语法
- application.yaml文件为替换 properties格式文件的
- 进行各项配置,全称 yet another markup language 另一种标记语言
书写格式
-
大小写敏感
-
使用缩进表示层级关系
-
禁止使用tab缩进,只能使用空格键
-
缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
-
使用#表示注释
-
字符串可以不用引号标注
# 配置端口号,和四大金刚 server: port: 10100 spring: datasource: url: jdbc:mysql://localhost:3306/vue_2019-12-5 username: root password: root driverClassName: com.mysql.jdbc.Driver
打开RunDashBoard窗口
-
在idea中展示所有服务的启动类
-
在Project项目中,找到.idea的目录下的workspace
-
打开文件,查找RunDashBoard
-
将一下代码copy到标签中
<option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option>
nfigurationTypes">