springcloudalibaba 架构图_Spring Cloud Alibaba 架构实战

本文介绍了Spring Cloud Alibaba如何应用于生产实践,提供了一种架构方案,结合Dubbo和Spring Cloud的优势。系统架构包括API网关、应用层和服务层,使用Zuul作为API网关,各服务通过Dubbo进行通信。详细讲述了从创建父工程到实现各个服务的步骤,包括服务的注册、发现和调用过程。
摘要由CSDN通过智能技术生成

f3c05c87f14519ea645b1d4f1ee2f400.png

​序言

Dubbo在国内有着非常大的用户群体,但是其周边设施与组件相对来说并不那么完善。很多开发者用户又很希望享受Spring Cloud的生态,因此也会有一些Spring Cloud与Dubbo一起使用的案例与方法出现,但是一直以来大部分Spring Cloud整合Dubbo的使用方案都不完善。直到Spring Cloud Alibaba的出现,才得以解决这样的问题。

​ SpringCloud Alibaba是阿里巴巴公司基于Spring Cloud所开发的一套微服务框架集,本文阐述了SpringCloud Alibaba应用于生产实践的一种架构方案,此方案即可享有Dubbo RPC服务通信的优势,也可使用Spring Cloud RESTful接口的通用性。

1 总体结构

系统架构图如下:

40a420cc4438ba003bb7b6eefb9c9829.png

组件说明:

API网关 :系统统一入口,屏蔽架构内部结构,统一安全拦截,采用Zuul实现。

application-1 :应用1,模拟应用,提供http接口服务。

service-1 :微服务1,模拟微服务,提供dubbo接口服务。

service-2 :微服务2,模拟微服务,提供dubbo接口服务。

调用流程:

​ 所有访问系统的请求都要经过网关,网关转发Http请求至application-1,application-1使用dubbo调用service1完成自身业务,而后sevice1调用service2完成自身业务。至此,完成所有组件贯穿。

架构中application与sevice的区别是什么?

  • service提供了基础服务功能;application组装基础服务功能,提供给用户直接可用的业务。
  • service服务粒度小、功能基础,不易发生改变;application提供上游业务功能,紧贴业务需求,容易发生改变。
  • 形成service支撑application的整体架构,增加多变的application甚至不需要变动service。

2 工程结构说明

采用maven工程,结构如下:

nacos-micro-service   整体父工程

├─api-gateway         API网关,端口:56010

├─application-1		  应用1,端口:56020

├─service-1			 服务1父工程

│  ├─service-1-api	  服务1API

│  └─service-1-server 服务1实现,端口:56030	

└─service-2			 服务2父工程

   ├─service-2-api	  服务2API

   └─service-2-server 服务2实现,端口:56040

3 创建父工程

​ 创建 artifactId 名为 nacos-micro-service 的 Maven 工程,此父工程继承nacos-discovery父工程,间接指定了Spring boot、spring cloud 以及spring-cloud-alibaba的依赖版本。

<parent>
        <artifactId>nacos-discovery</artifactId>
        <groupId>com.pbteach.nacos</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>nacos-micro-service</artifactId>
    <packaging>pom</packaging>

nacos-discovery的pom.xml如下:

<groupId>com.pbteach.nacos</groupId>
<artifactId>nacos-discovery</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

4 实现application1

application1属于应用层,提供http接口服务。

(1)初始化 application-1 Maven 工程

<artifactId>application-1</artifactId>
<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discov
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值