微服务架构(一)

一、微服务简介

微服务架构解决方案

二、SpringCloud Alibaba

解决方案架构设计

三、创建Spring Cloud项目

1.创建空项目 GitCGB2110IVProjects 

2.项目初始化

配置Maven 3.8.4

 配置jdk编译环境

3.创建工程

创建聚合父工程 编辑共享资源

 删除父工程src目录

修改pom文件

创建测试类

四、常见问题整合

1.Maven打包 package install deploy区别

2.maven报错

3.项目删除

一、微服务简介

        通俗的讲,微服务就是将一个大的系统拆分为多个小系统(分而治之),从而便于开发,降低代码冲突的概率。

        微服务架构(MSA)的基础是将单个应用程序拆分成多个独立的小服务,这些服务可以独立开发、部署和运行,由多个组件组成eg.(将一个大型火车站拆分为多个火车站,不同的车站管理不同的线路)

        在开发中,微服务就是将多个业务的共性进行抽取,做成独立的服务模块。eg.(登录模块、支付模块)

比较:

MVC  纵向分配  Controller控制层  Service业务层  Mapper数据层

微服务  横线分配 按服务进行分配

微服务架构解决方案

大厂:自主研发

中小公司:使用Spring Cloud,Netflix,Alibaba,…

二、SpringCloud Alibaba

        Spring Cloud Alibaba 是Spring Cloud(微服务头牌)的一个子项目,致力于提供微服务开发的一站式解决方案。只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

默认核心功能(先了解):

  • 服务限流降级:

        默认支持 WebServlet、OpenFeign、RestTemplate、Spring Cloud Gateway, RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。

  • 服务注册与发现:

        基于Spring Cloud 服务注册与发现标准,借助Nacos进行实现,默认还集成了 Ribbon 的支持。

  • 分布式配置管理:

        基于Nacos支持分布式系统中的外部化配置,配置更改时自动刷新。

  • 消息驱动能力:

        基于Spring Cloud Stream 为微服务应用构建消息驱动能力。

  • 分布式事务:

        使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。

  • 分布式任务调度:

        提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker上执行。

解决方案架构设计

基于Spring Cloud Alibaba实现的微服务,解决方案设计架构如图所示:

微服务架构(一)_第1张图片

三、创建Spring Cloud项目

微服务项目一般都会采用聚合工程结构,可通过聚合工程结构实现共享资源的复用,简化项目的管理方式。

GitCGB2110IVProjects (工作区/空项目)
├── 01-sca   //(微服务父工程)
     ├── sca-provider            //服务提供方法
     ├── sca-consumer         //服务消费方法
     ├── sca-gateway            //网关服务

1.创建空项目 GitCGB2110IVProjects 

在这里插入图片描述

2.项目初始化

配置Maven 3.8.4

下载:在Maven的官网即可下载,点击访问Apache Maven。

微服务架构(一)_第2张图片

微服务架构(一)_第3张图片

 配置jdk编译环境

微服务架构(一)_第4张图片

微服务架构(一)_第5张图片

微服务架构(一)_第6张图片

3.创建工程

  • 创建聚合父工程 编辑共享资源

微服务架构(一)_第7张图片

在这里插入图片描述

  •  删除父工程src目录

  • 修改pom文件



    4.0.0
    com.jt
    01-sca
    
    pom
    1.0-SNAPSHOT
    
    
        sca-provider
        sca-consumer
        sca-gateway
        sca-ui
    
    
    
        
            
            
                org.springframework.boot
                spring-boot-dependencies
                2.3.2.RELEASE
                pom
                import
            
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.SR9
                pom
                import
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.6.RELEASE
                pom
                import
            
        
    
    
    
        
            org.projectlombok
            lombok
            provided
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    8
                    8
                    UTF-8
                
            
        
    

  • 创建具体模块  Model工程 

微服务架构(一)_第8张图片

  • 修改sca-ui的pom.xml文件

        添加spring-boot-starter-web依赖


    
        org.springframework.boot
        spring-boot-starter-web
    

  • 创建启动类

微服务架构(一)_第9张图片

package com.jt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoUIApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoUIApplication.class, args);
    }
}

  • 创建测试类

在这里插入图片描述




    
    Title


    

Hello Spring Cloud Alibaba

  • 启动项目 浏览器访问http://localhost:8080/index.html

微服务架构(一)_第10张图片

四、常见问题整合

1.Maven打包 package install deploy区别

package 打包:

打包到本项目,一般在项目target目录下。

完成项目编译、单元测试、打包功能,不对项目进行部署。

install 打包:

打包到本地仓库,如果没设置在系统默认Maven仓库(File => settings => Build... => Build Tools => Maven中设置和查看)

完成项目编译、单元测试、打包功能,将项目部署到本地仓库。

deploy 打包:

打包并上传到远程仓库

完成项目编译、单元测试、打包功能,将项目部署到本地和远程仓库。

2.maven报错

方案一:maven => clean

方案二:重启idea

        (不要手动重启!!! file => invalidate Caches/Restart => invalidate  and Restart)

3.项目删除

  • 在项目结构中删除

微服务架构(一)_第11张图片

微服务架构(一)_第12张图片

  • 从idea工作区中删除

在这里插入图片描述

  • 将项目从父工程的pom文件中删除

在这里插入图片描述

  • 移除重建项目module中的pom文件删除线

在这里插入图片描述

3.如果不使用tomcat怎么办

在pom.xml文件中排除 添加需要使用的服务器

微服务架构(一)_第13张图片

你可能感兴趣的:(微服务,微服务,架构,microservices)