Java 界最好的 API 网关 Soul

soul网关发布2.1.0版本 (做JAVA界最好的API-Gateway)

  • 这是soul网关开源以来的最大的一次更新,收集了很多社区反馈的问题,进行了更新.
  • 之前的文档不是很完善,使用成本较高,这里先说声抱歉,这一个版本中,同时更新了相关文档.
  • 在这个版本中,提供 http,dubbo,springcloud等服务快速接入网关的功能.
  • 在这个版本中一切都是可扩展的,具体的可以看开发者文档.
  • 修护了很多问题,优化了很多性能,包括线程模型,异步模型等等.
  • 新增一个元数据的概念 。
  • 以后的版本更新,基本上以这个版本为基础原型,来进行更新了.
  • 使用之前版本的用户,如果要升级的话,可以在群里问 。。
  • 更新了太多太多地方,无法一一列举,大家只能去看文档了.
 
快速启动 soul-admin> wget https://yu199195.github.io/jar/soul-admin.jar> java -jar soul-admin.jar --spring.datasource.url="jdbc:MySQL://你的url:3306/soul?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_&failOverReadOnly=false&autoReconnect=true&useSSL=false"--spring.datasource.username='you username' --spring.datasource.password='you password' 
快速启动 soul-bootstrap> wget https://yu199195.github.io/jar/soul-bootstrap.jar> java -jar soul-bootstrap.jar
  • 这样soul网关就启动了
 
springMvc服务接入参考文档: https://dromara.org/zh-cn/docs/soul/joinUp-mvc.html
 
dubbo服务接入参考文档: https://dromara.org/zh-cn/docs/soul/joinUp-dubbo.html
 
springCloud服务接入参考文档: https://dromara.org/zh-cn/docs/soul/joinUp-springcloud.html
 
代码与文档github : https://github.com/Dromara/soul
gitee : https://gitee.com/shuaiqiyu/soul
文档: https://dromara.org/zh-cn/docs/soul/soul.html
 
Soul网关发布2.1.X之后,它到底有多方便?Soul网关自从去年10月我开源以来,经历了一年的事情,接受到了来自社区很多朋友的建议,并进行持续不断的优化,已经提供了非常丰富的功能,很多功能都是高度自定义,可视化,高度可扩展的,现在做一个归纳总结 。
插件
  • 提供了系统自带的各种插件,比如签名,监控,限流,熔断,http代理,dubbo代理,websocket等等 。
  • 支持用户快速的进行插件的自定义开发 。
  • 插件的所有数据,开关状态支持动态变更 。
数据同步
  • 提供了 http长轮询zookeeperwebsocket三种不同的数据同步策略,让用户自由选择 。
  • 推荐用户使用websocket方式,最轻量,在集群环境下,效率更高 。
对于用户
  • 首先我们提供了便于用户接入的 client包,用户可以把快速的把自己的项目接入到soul网关 。
  • 默认情况下,用户完全不用关心 soul网关的选择器,规则等配置 。
  • 用户之前的接口完全是零侵入,不需要任何更改,只是需要把访问域名改成网关的域名即可 。
  • 比如 dubbo用户,几乎就是http的方式完成了 http协议到 dubbo协议的互相转换 。
  • soul使用的是http协议,那么注定它就是跨语言的,net程序员,php程序员等等,要和java进行数据交互,那么就大大的可行了 。
    举个列子,比如你有一个 dubbo接口 参数定义是一个java bean,
    public void insert(final DubboTest dubboTest) {}public class DubboTest implements Serializable {private String id;private String name;} 如果你使用 soul网关要发起对它的调用,你的http传参数 就是在 body 里面 传一个json字符串,和普通的http调用无差别 。
    {"id":"123","name":"xiaoyu"}
对于开发者(程序员)