当前位置:   article > 正文

微服务框架SpringCloud

微服务框架

目录

1.专业名词解释

2.100并发 -> 千万并发,阿里淘宝的 14 次架构演进之路!

3.提出问题

4.微服务

4.1.微服务概述

4.2.微服务的架构特征

4.3.微服务的优缺点

5.SpringCloud微服务框架

5.1.SpringCloud微服务框架学习官网

5.2.SpringCloud微服务框架组件对应常用技术

5.3.SpringCloud微服务框架兼容问题

5.4.项目父工程需要导入SpringCloud父工程依赖并需满足兼容

6.服务拆分和远程调用

6.1.服务拆分原则

6.2.远程过程调用: RPC(Remote Procedure Call)

6.2.1.远程调用实质

6.2.2.远程调用步骤(以SpringBoot web中封装的RestTemplate为工具)

6.2.3提供者与消费者


1.专业名词解释

单体架构:

概述:将业务的所有功能集中在一个项目中开发,打成一个包部署。

优点:
	1.架构简单
	2.部署成本低

缺点:
	1.耦合度高(维护困难、升级困难)
	2.技术栈受限(技术栈就是技术集,技术选型就是开发的语言)
	3.一旦宕机无法提供服务

适合小型项目
	例如:学生管理系统

分布式架构:微服务也是分布式架构

概述:系统中的多个模块在不同服务器上部署

优点:
    1.降低服务耦合
    2.有利于服务升级和拓展
    3.技术栈不受限

缺点:
    1.服务调用关系错综复杂
    
适合大型互联网项目
    例如:京东、淘宝

集群:

概述: 多台服务器做相同的事情

解决的问题:
	1.提高并发量
        2.解决单点故障(单点,单台指只有一台服务器,一旦宕机,整个项目将会瘫痪)
        3.保证服务的高可用
 
 原则:半数原则,集群中只允许宕机数不超过总数的一半

分布式:

概述: 不同的服务器做不同的事情,协作起来完成一个完整的业务

好处:
    1、资源合理利用;访问频率高的使用配置高的服务器,访问频率低的使用配置低的服务器;
    2、耦合度降低;每个模块独立出来,各做个事,便于以后的扩展

正向代理:

概述: 代理服务器代替系统内部来访问外部网络的过程

好处:
    1.为在防火墙内的局域网客户端提供访问Internet的途径
    2 可以做缓存,加速访问资源
    3 对客户端访问授权,上网进行认证
    4 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理:

概述: 外部请求访问系统时通过代理服务器转发到内部服务器的过程。

好处:
    1.防止主服务器被恶意攻击:反向代理的客户端只能通过外网访问代理服务器,并且用户不知道自己访问的是一个代理服务器,反向代理将真正的处理放在内网中,有效的提高了网络安全  
    2.为负载均衡和动静分离提供实现支持:反向代理是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡、缓存功能等

负载均衡:

概述: 将并发过来的请求,均匀的分发给不同的服务器

作用:
    1、负载均衡可以优化访问请求在服务器组之间的分配,以此消除服务器之间的负载不平衡,从而达到提高系统的反应速度和总体性能的目的。
    2、负载均衡能够监控服务器的运行状态,如果发现运行有异常情况的服务器,将会及时将访问的请求转移到其他可以正常工作的服务器上,以此提高整个服务器组的可靠性。因此采用了负载均衡设备之后,可以根据业务量的大小灵活增加服务器的数量,将系统的扩展能力提高,同时也能简化管理。
    3、可以避免各种单点失效.

2.100并发 -> 千万并发,阿里淘宝的 14 次架构演进之路!

资料链接

3.提出问题

1.什么是微服务?

微服务架构就是给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。(微服务是一种经过良好架构设计的分布式架构方案 。)

2.怎么实现微服务分布式架构项目开发?

SpringCloud框架集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,开箱即用,SpringCloud框架组件进行开发

3.SpringCloud微服务框架有哪些功能和常用组件?

分布式配置:Nacos

服务注册/发现:Eureka(低版本的SpringCloud使用)\ Nacos

服务熔断:Sentinel

服务调用:OpenFeign RestTemplate

服务路由:Spring Cloud Gateway

分布式消息:SCS RabbitMQ

负载均衡:Ribbon

分布式事务:Seata

4.微服务

4.1.微服务概述

微服务是一种经过良好架构设计的分布式架构方案 。 能解决单体架构的缺点.

4.2.微服务的架构特征

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
  • 自治:团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:服务提供统一标准的接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

4.3.微服务的优缺点

优点:拆分粒度更小、服务更独立、耦合度更低

缺点:架构非常复杂,运维、监控、部署难度提高(SpringCloud是微服务架构的一站式 解决方案)

5.SpringCloud微服务框架

5.1.SpringCloud微服务框架学习官网

SpringCloud官网

5.2.SpringCloud微服务框架组件对应常用技术

5.3.SpringCloud微服务框架兼容问题

SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配

5.4.项目父工程需要导入SpringCloud父工程依赖并需满足兼容

<!-- springCloud父工程依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR10</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

6.服务拆分和远程调用

6.1.服务拆分原则

  • 不同微服务,不要重复开发相同业务
  • 微服务数据独立,不要访问其它微服务的数据库
  • 微服务可以将自己的业务暴露为接口,供其它微服务调用

6.2.远程过程调用: RPC(Remote Procedure Call)

6.2.1.远程调用实质

两台计算机之间相互访问 tomcat(客户端) ---> tomcat(服务端)

6.2.2.远程调用步骤(以SpringBoot web中封装的RestTemplate为工具)

1.在Boot工程配置类中注册一个RestTemplate实例到Spring容器

 @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

2.在service层使用RestTemplate对象对远程对象发起调用

3.再把远程返回的数据和本身的数据合并返回给外界

6.2.3提供者与消费者

服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言。

服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)

服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号