开源高性能异步网关:Soul

作者:xiaoyu  

来源:Dromara分布式事务


微服务为什么需要网关?


  • 微服务的流行,服务之间的调用,需要统一的请求标准。

  • 微服务接口,需要监控,限流,熔断,等等。

  • 微服务接口需要统一的鉴权。

  • 接口问题定位 A/B test等等。太多功能了,就不一一列举了。


Soul是什么?


  * soul 是一款高性能,响应式的网关。我在参考Kong 的插件设计思想,高性能的webflux后,开发而来。

 * 官网 : https://dromara.org 如果打不开,改成http即可.

 * github地址 :https://github.com/Dromara/soul

 * gitee地址: https://gitee.com/shuaiqiyu/soul

 * 架构设计

 

Soul功能

  • 支持各种语言,无缝集成Dubbo,SpringCloud,以及http服务。

  • 丰富的插件支持,监控,鉴权,限流,熔断,代理,防火墙等等。

  • 网关多种规则动态配置,支持各种策略配置。

  • 插件热插拔,易扩展。

  • 支持集群部署,支持A/B Test。

  • 当然也有很多其他的功能,就不一一说了。


Soul 最大的亮点?


* 插件的热插拔,规则的动态配置。举个列子,比如一个接口你限流是1秒50次,但是你想调小点,像Springcloud-gateway 或者zuul 是不是还得改动配置 然后重启。 soul则不需要,直接在soul-admin找到对应的接口修改即可.

* soul提供了比较丰富的插件功能,插件与插件规则,选择器,用户可以自由定义 不想用就停用或者删除就行。想用就开启或者新增。

* soul 是基于webflux的, 依赖rxJava ,其实高性能的,响应式的网关。

* soul 提供了dubbo ,springcloud rpc框架的支持。


Soul适合人群


* 是适合所有的微服务系统。

* 后端是java,使用了一些rpc框架(dubbo,springcloud), 然后前端或者其他系统是 .net php  然后需要对接? 

  然后你问java 后端开发者,dubbo接口怎么调用?  java 狗肯定不愿意给你提供http接口,或者直接回一句,你去找领导吧? 这个时候,你只需要告诉它,使用soul,你后端代码一句都不要动,只需要告诉我你zookeeper的地址就好!


* 当然也适合一些其他语言的系统,或者是老系统。 只要你是http服务就行,soul会进行代理请求调用。


篇幅原因,此文只是一个简单介绍,Soul有很大的价值,喜欢的朋友可以去官网详细介绍。

-END-

 近期热文:

  • Logback中使用TurboFilter实现日志级别等内容的动态修改

  • 为什么前后端分离了,你比从前更痛苦?

  • 不改一行代码定位线上性能问题

  • Logback中如何自定义灵活的日志过滤规则

  • HBase优化实战

  • MySQL的索引

  • 漫话:如何给女朋友解释为什么双11无法修改收货地址?

  • Java中生产者与消费者问题的演变

  • 分库分表技术演进&最佳实践

关注我

640?wx_fmt=jpeg

点击“阅读原文”,看本号其他精彩内容

你可能感兴趣的:(开源高性能异步网关:Soul)