Spring cloud alibaba 架构在项目中的运用
Spring Cloud alibaba架构
总体系统架构
对客户端还是暴露http协议 ,同时微服务之间交互采用dubo协议,以及应用 程序调用微服务也采用dubbo协议。迷补了微服务之间采用http协议性能问题。
每一层都把自己注册到nacos的服务配置中心。
nacos集服务管理和配置于一身,
组件说明
工程结构说明
注意:应用程序1 对外暴露的是http接口, service1,Service2对外暴露的是doubbo协议接口。 为了方便 调用 ,各service会包含一个接口和接口实现。
创建工程
父工程
创建父工程
创建父工程nacos-micro-service. 继承nacos-discovery,
创建应用层application1
继承nacos-micro-service
创建service1
在下一步要变更下位置 content root
网关创建
继承nacos-micro-service
创建Service1下面的api
父工程选service1
创建service1下面的实现
父工程选service1
整体工程结构
应用层实现
application应用层,只需要编写controller对外暴露http接口就可以。
引用nacos配置管理包和服务发现包,另外主要使用spring mvc来开发controller ,基于http的接口,所以要使用spring-boot-starter-web 这个包。
所以在application中的pom.xml引用用这些依赖。
编写controller
因为应用程序,同时要调用微服务,所以在这里也需要对服务进行注入。 等service接口写完以后,再注入。
编写应用程序application的配置
定义bootstrap.yml
nacos中的配置新加
id是name.yaml -图片写错
group:config下的group.
namcespace:各环境id, 这里有的是开发环境 。
增加启动类
当前应用程序结构
启动应用程序
服务层实现
基于dubbo
定义api接口
创建一个包,并定义一个接口
包名:com.microservice.service1.api
新建接口:ConsumerService
接口实现
要实现services1 api
要先引用service api,先引用service api的引用
引用spring-cloud-starter-dubbo,为什么要引用这个呢。因为我们最后要把service实现暴露为dubbo服务接口。
开发接口实现
先建立一个包。
要引用一个duobo的注解, 表示将来的方法 暴露为dubbo接口。
配置信息
dubbo:base-package表示包下有dubbo注解的。使用的是dubbo协议,协议也需要有端口。
一个是http端口,一个是dubbo端口。
可以指定多个协议 ,
启动服务
新建一个启动类Servoce1Bootstrap
实现类增加dubbo注解
把接口统一写在api接口,以后只要依赖 这个jar包就可以。
实现类统一写在service1的实现工程,最后要暴露给dubbo接口,要加一个dubbo注解 。
查看Nacos,
查看nacos中service1,详情中可以看到dubbo的端口。
参考
1.duobo
只是服务治理和rpc实现方案。
spring cloud整合了较多的netflix 好多项目 , 是一套标准的实现 。
nacos是服务发现中心和配置中心, 可以让微服务像dubbo进行rpc一样调用 。
网关:对请求的过滤和拦截。
2.配置
debug 设置为false, 可以减少日志输出。
本文参考腾讯课堂视频记录相关内容
还不快抢沙发