重磅消息:Dromara团队正式开源高性能异步API网关-Soul
原
荐
字数 944
阅读 26
收藏 0
RxJava Java Dubbo Zuul Spring Cloud
微服务为什么需要网关?
-
微服务的流行,服务之间的调用,需要统一的请求标准。
-
微服务接口,需要监控,限流,熔断,等等。
-
微服务接口需要统一的鉴权。
-
接口问题定位 A/B test等等。太多功能了,就不一一列举了。
Soul是什么? soul 是一款高性能,响应式的网关。我在参考Kong 的插件设计思想,高性能的webflux后,开发而来。
-
官网 : https://dromara.org 如果打不开,改成http即可.
-
github地址 : https://github.com/Dromara/soul
-
gitee地址: https://gitee.com/shuaiqiyu/soul
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性能
- soul 天然支持集群部署,底层采用webflux。
- soul 所有的配置走的都是本地缓存。
- 双11,我们的高峰单台QPS 1W左右。
Soul VS java体系的Zuul,springcloud-gateway
- 性能上来说,soul和sc-gateway 都采用webflux,性能相当
- sc-gateway 或者zuul 基于配置的,接口很多很难集成,而且配置规则不是动态化的。
- soul是插件化的思想,插件热插拔,配置灵活并且是动态化的。
- soul还可以用来排除问题,A/B test。
- soul提供了监控插件来统计qps等等信息。
- soul提供了waf,sign插件,来阻止外来攻击
soul vs kong
- kong 也是非常优秀的框架,但是其实 lua 语言,开发维护成本高,但是soul完全是java,所以javaer你懂的。
篇幅原因,此文只是一个简单介绍,Soul有很大的价值,喜欢的朋友可以去官网详细介绍。也欢迎大家进行star 和fork
© 著作权归作者所有
共有人打赏支持
相关文章 最新文章
每周技术抢先看,总有你想要的! 开源资讯 开源中国安卓客户端 2.X 系列版本正式开源 为什么你说“就差一个 码农 了”,我们是拒绝的 2015年5月 TIOBE 编程语言排行榜单 微软全新的 Edge 浏览器...
OSC编辑部
2015/05/17
3.2K
1
1、引言 京东的京麦商家后台2014年构建网关,从HTTP网关发展到TCP网关。在2016年重构完成基于Netty4.x+Protobuf3.x实现对接PC和App上下行通信的高可用、高性能、高稳定的TCP长连接网关。 早期...
JackJiang2011
2017/12/01
0
0
消息队列调研 消息系统简介 本次主要调研业界使用广泛的两款消息队列——RabbitMQ, Kafka, 以及阿里云的提供的两个服务, MNS和ONS. RabbitMQ RabbitMQ 是使用Erlang编写的一个开源的消息队...
该如何是好
2016/08/16
272
0
HornetQ是一个支持集群和多种协议,可嵌入、高性能的异步消息系统。HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同时也定义属于自己的消息API,这可以最大限度的提升HornetQ的性能和灵活性...
红薯
2009/12/08
267
0
HornetQ 2.3.0.CR1 发布了,该版本修复了很多 bug,另外如果没有再发现其他问题,将在短时间内直接将 CR1 版本标注为 Final 正式版。 HornetQ是一个支持集群和多种协议,可嵌入、高性能的异步...
红薯
2013/01/31
663
1
没有更多内容
加载失败,请刷新页面
加载更多SpringBoot 1.Profiles Spring Profiles能够在不同的环境中使不同的应用配置生效。@Component和@Configuration两个注解都能够通过@Profiles来标记。下面是例子: @Configuration@Profile("b...
不学无数的程序员
5分钟前
1
0
在http 中添加如下 fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s;...
hansonwong
6分钟前
0
0
如题,升级了一下mybatis版本后出现循环引用的问题。 具体异常如下 ***************************APPLICATION FAILED TO START***************************Description:The depen...
HeyS1
7分钟前
0
0
最近在测试 MongoDB 4.0 分片集群 ,搭建好所有节点后,往mongos添加分片的时候,一直报错 Could not find host matching read preference { mode: \"primary\" } for set ,如下 mongos> sh...
xxj123gogo
11分钟前
0
0
# tar -zxvf jdk-8u144-linux-x64.tar.gz vi /etc/profile export JAVA_HOME="/usr/local/java/jdk1.8.0_144" export CATALINA_HOME="/usr/local/tomcat/apache-tomcat-9.0.0.M22" export PA......
八戒八戒八戒
12分钟前
0
0
没有更多内容
加载失败,请刷新页面
加载更多以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 重磅!谷歌发布 Flutter 2
- Linkis 0.9.1 重磅发布
- 美颜重磅技术之 GPUImage 源码分析
- 360 重磅开源性能监控平台 ArgusAPM
- MLSQL v1.1.7 重磅发布
- 重磅!一文解读神策智能推荐
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。