关于java:Soul学习笔记运行-soulexampleshttp二

3次阅读

共计 1793 个字符,预计需要花费 5 分钟才能阅读完成。

明天筹备跑下 soul 官网的 example,首先从 soul-examples-http 开始。这个 examplesoul 解决的是 http 申请,应用的插件是 divide

刚开始 soul-examples-http 下的 SoulTestHttpApplication 没有运行选项,起初群里敌人揭示才晓得,右键 soul-examples-httppom.xml,抉择 add as maven project,就能够执行这个模块了。

能够看到,这个模块里,soul 相干的配置次要有 3 个中央。

  1. soul-example-http 引入的包
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>soul-spring-boot-starter-client-springmvc</artifactId>
    <version>${soul.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

2.yml 配置

soul:
  http:
    adminUrl: http://localhost:9095
    port: 8288
    contextPath: /http
    appName: http
    full: false

# adminUrl: 为你启动的 soul-admin 我的项目的 ip + 端口,留神要加 http://
# port: 你本我的项目的启动端口
# contextPath: 为你的这个 mvc 我的项目在 soul 网关的路由前缀,网关会依据你的这个前缀来进行路由.
# appName:你的利用名称,不配置的话,会默认取 `spring.application.name` 的值
# full: 设置 true 代表代理你的整个服务,false 示意代理你其中某几个 controller

3. controller 层的注解,如果想代理整个 controllerpath="/order/**" ,这样每个办法上就不须要加注解了。

能够看到,我的项目里引入 soul 网关,真是非常简单,对代码的侵入很少。

怎么开启网关代理咱们的我的项目呢?

首先,启动 SoulAdminBootstrap , SoulBootstrapApplication ,登录 soul-admin,在插件治理菜单,把 divide 插件开启,运行 SoulTestHttpApplication soul 曾经帮咱们把选择器和规定的数据都插入数据库了。在这里,还能够很灵便的批改匹配规定,以后应用的是 uri,能够改为用 header,ip,post 匹配,这样的配置能够实用很多场景。

启动 SoulBootstrapApplication 端口号是 9195,咱们我的项目地址是:http://localhost:8188/order/findById?id=4,通过网关拜访,地址就是 http://localhost:9195/http/order/findById?id=4。

soul 还能够配置负载平衡,权重越高,命中率也就越高。

我试了下,进行端口 8288 的服务,立马去申请网关时,打到 8288 端口时,服务报 500 谬误,随后再拜访,申请都打到 8188 端口了;如果进行端口 8288 的服务,过几分钟再去拜访,soul 就不会再把申请打到 8288 端口了,因为 soul-admin 有个探活机制,在 UpstreamCheckService,会定时移除不可用的服务。这个在 soul-admin 是可配置的。

soul.upstream.scheduledTime:10  定时检测时间距离,默认 10 秒
soul.upstream.check:true  默认为 ture,设置为 false,不检测

这个设计切实太不便了。一台服务挂了,soul 就立马把这个服务摘除,齐全不须要手动去配置任何货色。

压测了一下,没有网关,RPS 是 1457.2,加了一层网关做转发后,RPS 变成 599.2。

明天运行 example 时,最大的感触是 soul 用着很不便,很全面,一切都是可配置的,而且很好上手。不过代码里用了很多设计模式,响应式编程,为了接下来可能顺畅的看源码,最近要恶补下这块的常识。

正文完
 0