运行项目

依次启动soul-admin,soul-bootstrap,soul-examples-apache-dubbo-service三个服务,观察apache-dubbo的日志,启动的时候就会将配置的接口注册到网关中,项目中使用**@SoulDubboClient**注解定义了网关要代理的路径,注解本身,是利用Spring的beanPostProcesstor特性进行加工处理,当然也可以通过控制台在页面进行操作。

访问网关

  • 因为网关作为所有流量的入口,我们此时配置好了网关管理的API之后,访问网关看看效果
localhost:9195/dubbo/findAll
  • 此时正确得到了结果,查看soul-bootstrap的日志,显示成功匹配了dubbo插件,网关成功对我们请求做了代理。

image.png

  • 再来试试他的hystrix限流插件,将Netflix的hystrix以插件形式做了集成,首先打开插件,然后进行如下配置。

image.png

image.pngimage.png

  • 先将请求数限制为1,然后发起2个请求触发熔断后,去看日志提示已经打开了熔断器,并且此时在访问的时候,接口已经访问不到了。

image.png

image.png

关于熔断器,也有一个疑问,如果****使用semaphore作为熔断器的时候,配置了fallbackURL,是不是意味着触发熔断时会去调用降级URL,同时这个降级的URL也会去拿semaphore,如果拿不到的话回调失败?

Q.E.D.