学习条件
- 了解web三层架构
- 熟练应用SSM架构
- 了解Maven管理工具的使用
- 熟练使用SpringBoot,以及了解SpringBoot基本原理。
- 了解部分术语:应用、工具、耦合、负载等
温馨提示:注意版本问题,注意细节就好,不复杂的
没有从入门开始写,满足学习条件的,这点内容基本看看应该能入门,首次编写,有疑问留言,没疑问,谢谢惠顾!喜欢就点个赞!!!
什么是微服务?谈谈个人理解....
引文:单体架构是微服务架构出现之前,最经典的软件架构类型,许多早期的项目采用的也都是单体架构。单体架构将应用程序中所有业务逻辑都编写在同一个工程中,最终经过编译、打包,部署在一台服务器上运行。
微:体积小,简单
服务:功能实现。
微服务 = 体量小,复杂程度低的功能实现模块
微服务架构:所谓“服务”,其实指的是项目中的功能模块,它可以帮助用户解决某一个或一组问题,微服务是一种全新的系统架构设计风格,每个服务只专注于做好一件事(三十六行,行行出状元)“专业的人做专业的事”。简单来说:就是把单体服务,拆了再拆,构建成体量小的模块,每个模块构成一个服务,多个服务的集合就是微服务架构。SpringCloud的诞生,就是来管理这些微小服务之间沟通的(不止于SpringCloud、Dubbo等)。
面试题:见附录
SpringCloud
引文:“工具”指一些列功能的集合体,泛指工作时所需用的器具。
Spring Cloud 被称为构建分布式微服务系统的“全家桶”,它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。更有效的实现开发应用管理的“工具”。
Spring Cloud 将市面上成熟的、经过验证的微服务框架整合起来,并通过 Spring Boot 的思想进行再封装,屏蔽调其中复杂的配置和实现原理,最终为开发人员提供了一套简单易懂、易部署和易维护的分布式系统开发工具包。(所以你至少需要先基本了解熟悉SpringBoot)
SpringCloud集成核心功能官网
- Distributed/versioned configuration 分布式/版本化的配置管理
- Service registration and discovery 服务注册与服务发现
- Routing 路由
- Service-to-service calls 端到端的调用
- Load balancing 负载均衡
- Circuit Breakers 断路器
- Global locks 全局锁
- Leadership election and cluster state 选举与集群状态管理
- Distributed messaging 分布式消息
SpringCloud与SprigBoot版本关系见附录(官网)
Spring Cloud 本身并不是一个拿来即可用的框架,它是一套微服务规范,这套规范共有两代实现。重要转折点
- 第一代实现: Spring Cloud Netflix,
- 第二代实现: Spring Cloud Alibaba
2018 年 12 月12 日,Netflix 公司宣布 Spring Cloud Netflix 系列大部分组件都进入维护模式,不再添加新特性。这严重地限制了 Spring Cloud 的高速发展,于是各大互联网公司和组织开始把目光转向 Spring Cloud 的第二代实现:Spring Cloud Alibaba。
Spring Cloud Alibaba 组件
Spring Cloud Alibaba 包含了多种开发分布式微服务系统的必需组件
- Nacos:阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。
- Sentinel:阿里巴巴开源产品,把流量作为切入点,从流量控制,熔断降级,系统负载保护等多个维度保护服务的稳定性。
- RocketMQ:Apache RocketMQ 是一款基于Java 的高性能、高吞吐量的分布式消息和流计算平台。
- Dubbo:Apache Dubbo 是一款高性能的 Java RPC 框架。
- Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
- Alibaba Cloud OSS:阿里云对象存储服务器(Object Storage Service,简称OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。
- Alibaba Cloud Schedulerx:阿里中间件团队开发的一款分布式调度产品,支持周期性的任务与固定时间点触发任务。
【学习内容】
Nacos 即 Dynamic Naming and Configuration Service(动态命名与配置服务)。由 Naming 前两个字母,Configuration 前两个字母,以及 Service 首字母组成。
Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理 以及 服务管理平台。
简单的理解:
Nacos 就是 注册中心 + 配置中心。即 Nacos = Eureka + Config + Bus。
学习条件:
为什么要学习注册中心?
微服务架构,就是很多小服务的集合体,对多个服务进行单独管理是比较麻烦。服务之间调用,A调用B,如果B因特殊需要(比如他很开心),想要频繁更换端口或IP地址,那么A服务中的代码怎么办?跟着重复更新....维护比较麻烦。注册中心可以解决这一问题。
注册中心能干什么?
服务注册,服务发现是什么东东?怎么理解?
简单理解,服务提供方把自己的服务名+端口告诉了注册中心,注册中心,统一定义,统一管理。这一过程就是“服务注册”。反之“服务发现”。小白理解:看过电影的都知道,警局是中枢,警局统筹管理犯罪案件,你可以当警局 = 注册中心。张三犯罪自首向警察说明了姓名,住址,被记录了,这就是服务注册。反之,警察去发现,确认你犯罪事实,然后在事实面前,对你“服务”,这就是服务发现。
主要功能
-
服务发现和服务健康监测
-
动态配置服务
-
动态DNS服务
-
服务及其元数据管理
【项目简介】
1. 新建Maven父工程springcloud-alibaba-parent