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
-
<option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于