Spring cloud alibaba 架构在项目中的运用
source link: http://www.hechunbo.com/index.php/archives/324.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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一样调用 。
网关:对请求的过滤和拦截。
debug 设置为false, 可以减少日志输出。
本文参考腾讯课堂视频记录相关内容
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK