Spring cloud alibaba 架构在项目中的运用

Spring Cloud alibaba架构

image-20201014095049440

总体系统架构

image-20201014095525820

对客户端还是暴露http协议 ,同时微服务之间交互采用dubo协议,以及应用 程序调用微服务也采用dubbo协议。迷补了微服务之间采用http协议性能问题。

每一层都把自己注册到nacos的服务配置中心。

nacos集服务管理和配置于一身,

组件说明

image-20201014100956297

工程结构说明

注意:应用程序1 对外暴露的是http接口, service1,Service2对外暴露的是doubbo协议接口。 为了方便 调用 ,各service会包含一个接口和接口实现。

image-20201014101037382

创建工程

image-20201014101312201

父工程

image-20201014101403571

image-20201014101437264

创建父工程

创建父工程nacos-micro-service. 继承nacos-discovery,

image-20201014101601553

创建应用层application1

继承nacos-micro-service

image-20201014101742479

image-20201014101930367

创建service1

image-20201014102054320

在下一步要变更下位置 content root

image-20201014102128222

image-20201014102205297

网关创建

继承nacos-micro-service

image-20201014102305182

image-20201014102327485

创建Service1下面的api

父工程选service1

image-20201014102530381

image-20201014102549678

创建service1下面的实现

父工程选service1

image-20201014102656701

image-20201014102726493

整体工程结构

image-20201014102919579

应用层实现

application应用层,只需要编写controller对外暴露http接口就可以。

引用nacos配置管理包和服务发现包,另外主要使用spring mvc来开发controller ,基于http的接口,所以要使用spring-boot-starter-web 这个包。

所以在application中的pom.xml引用用这些依赖。

image-20201014103126349

编写controller

image-20201014103424729

因为应用程序,同时要调用微服务,所以在这里也需要对服务进行注入。 等service接口写完以后,再注入。

image-20201014103625511

编写应用程序application的配置

定义bootstrap.yml

image-20201014103811964

nacos中的配置新加

id是name.yaml -图片写错

group:config下的group.

namcespace:各环境id, 这里有的是开发环境 。

image-20201014104119974

增加启动类

image-20201014104325796

当前应用程序结构

image-20201014104425797

启动应用程序

image-20201014104511716

服务层实现

基于dubbo

定义api接口

创建一个包,并定义一个接口

包名:com.microservice.service1.api

新建接口:ConsumerService

image-20201014104830804

接口实现

要实现services1 api

要先引用service api,先引用service api的引用

引用spring-cloud-starter-dubbo,为什么要引用这个呢。因为我们最后要把service实现暴露为dubbo服务接口。

image-20201014172119057

开发接口实现

先建立一个包。

要引用一个duobo的注解, 表示将来的方法 暴露为dubbo接口。

image-20201014172609845

配置信息

dubbo:base-package表示包下有dubbo注解的。使用的是dubbo协议,协议也需要有端口。

一个是http端口,一个是dubbo端口。

可以指定多个协议 ,

image-20201014172812025

image-20201014172837300

启动服务

新建一个启动类Servoce1Bootstrap

image-20201015135927217

实现类增加dubbo注解

把接口统一写在api接口,以后只要依赖 这个jar包就可以。

实现类统一写在service1的实现工程,最后要暴露给dubbo接口,要加一个dubbo注解 。

image-20201015140240903

查看Nacos,
查看nacos中service1,详情中可以看到dubbo的端口。

image-20201015140507195

参考

1.duobo

只是服务治理和rpc实现方案。

spring cloud整合了较多的netflix 好多项目 , 是一套标准的实现 。

nacos是服务发现中心和配置中心, 可以让微服务像dubbo进行rpc一样调用 。

网关:对请求的过滤和拦截。

2.配置

debug 设置为false, 可以减少日志输出。

image-20201014094537519

本文参考腾讯课堂视频记录相关内容

https://ke.qq.com/course/466125?taid=4158992926842061


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论