soul源码阅读(二)http入门示例运行

目录

 

项目模块结构

soul-examples-http初级示例运行

soul-examples-http进阶示例运行

总结


项目模块结构

在了解怎么使用一个项目前,不妨我们先来过一下整理项目的模块结构

  • soul-admin : 插件和其他信息配置的管理后台
  • soul-bootstrap : 用于启动项目,用户可以参考
  • soul-client : 用户可以使用 Spring MVC,Dubbo,Spring Cloud 快速访问
  • soul-common : 框架的通用类
  • soul-dist : 构建项目
  • soul-metrics : prometheus(普罗米修斯)实现的 metrics
  • soul-plugin : Soul 支持的插件集合
  • soul-spi : 定义 Soul spi
  • soul-spring-boot-starter : 支持 spring boot starter
  • soul-sync-data-center : 提供 ZooKeeper,HTTP,WebSocket,Nacos 的方式同步数据
  • soul-examples : RPC 示例项目
  • soul-web : 包括插件、请求路由和转发等的核心处理包

通过了解各个模块的描述,大概有一个基本印象先,有丰富项目工程经验的可能都大概心里已经有个底了(我不是),有了整体的脉络后,不妨我们再去粗略的翻一翻代码,同样的,此时此刻,咱们的目的不在于看懂它,只要大概我们有个印象,简单了解即可。ok,以上感觉描述的挺虚无的,有种只可意会,不可演讲的感觉在内,此时我完成这一步的流程后,最起码知道从大方向看,原来我是在玩这么个东西,这就够了,接下来咱们进入具体的操作。

soul-examples-http初级示例运行

(1)编译soul-examples

从soul的pom.xml文件咱们可以看到soul-examples模块是一个完全独立的模块,而且用mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true并未编译到它,那么我们可以直接将它作为maven项目导入到idea来正常运行该模块里的各个example示例。

(2)运行soul-examples-http

咱们先看看这个模块里的代码大概做了啥事,

引入了soul-spring-boot-starter-client-springmvc,而且在两个HttpTestController、OrderController类里,用了@SoulSpringMvcClient注解,翻翻文档发现,这个注解将会将方法的元数据注册到soul-admin。那么接下来我们run SoulTestHttpApplication,看以下截图已启动成功,而且日志输出注册成功五个api。

(3)打开admin管理台,查看divide插件

已添加一个名称为/http的选择器,点开修改页面查看到,已经我们的后台服务机器注册到列表当中,并且在右边页面的选择器列表发现已成功注册成功五个选择器,也就是我们配置@SoulSpringMvcClient注解的地方。

(4)postman发送请求,查看结果

用postman访问我们的网关,还记得吧,咱们的网关端口是9195(可能是作者的心上人生日~~),正常通过访问网关请求到我们后台的服务,并返回成功的response。截图如下:

soul-examples-http进阶示例运行

咱们不妨再试试启动多个后台服务看看,网关是如何帮我们做的路由,我们该如何去使用它。

(1)在idea的run configurations配置里将SoulTestHttpApplication设置为Allow parallel run,然后修改端口号为8888并运行它,从以下截图可以看到8188和8888两个服务端口已都启动成功

(2)查看divide选择器页面,看到已配置8188和8888两个端口

(3)用postman连续发送11次请求,查看后台两个端口模拟两台机器处理的结果如何,从以下截图中可以看到由于我们的权重给的都是50,几乎是平均分配,说明soul已通过以上配置,帮我们做了路由了。

总结

通过运行一个soul-examples-http咱们了解到通过在我们工程中使用@SoulSpringMvcClient注解的方式,可以动态将我们服务注册到soul网关,而且如果是多个机器注册了该服务,soul默认会帮我们进行均衡路由。

多说一句,soul的配置可以纯靠页面配置的方式,达到后台服务的动态路由效果,咱们是一个支持动态、热插拔、易拓展的有灵魂的框架。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值