可能是国内最好的网关开源项目,支持 Dubbo、SpringCloud,经历多年双11高并发的场景验证...

Dubbo-go v3.0 正式发布 ——打造国内一流开源 Go 服务框架 简介:Dubbo-go 是常新的,每年都在不断进化。介绍 Dubbo-go 3.0 工作之前,先回顾其过往 6 年的发展历程,以明晰未来的方向。 作者 | 李志信 来源 | 阿里技术公众号 作者介绍: 李志信(github @laurencelizhixin),dubbo-go 3.0 负责人,Apache Dubbo PMC,来自阿里云中间件团队,从事 Go 语言中间件的研发和开源工作。 于雨 (github @AlexStocks),dubbo-go 社区负责人,Apache Dubbo PM 阅读详情

点击上方“芋道源码”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

 

Soul 网关自从去年10月我开源以来,经历了一年的事情,接受到了来自社区很多朋友的建议,并进行持续不断的优化,已经提供了非常丰富的功能,很多功能都是高度自定义,可视化,高度可扩展的,现在做一个归纳总结。

  • 插件

    • 提供了系统自带的各种插件,比如签名,监控,限流,熔断,http代理,dubbo代理,websocket等等。

    • 支持用户快速的进行插件的自定义开发。

    • 插件的所有数据,开关状态支持动态变更。

  • 数据同步

    • 提供了 http长轮询,zookeeper,websocket  三种不同的数据同步策略,让用户自由选择。

    • 推荐用户使用websocket方式,最轻量,在集群环境下,效率更高。

  • 对于用户

    举个列子 ,比如你有一个 dubbo接口 参数定义是一个java bean,

    public void insert(final DubboTest dubboTest) {
    
      }
    
    public class DubboTest implements Serializable {
    
         private String id;
    
         private String name;
    }
    
    • 首先我们提供了便于用户接入的 client包,用户可以把快速的把自己的项目接入到soul 网关。

    • 默认情况下,用户完全不用关心 soul网关的选择器,规则等配置。

    • 用户之前的接口完全是零侵入,不需要任何更改,只是需要把访问域名改成网关的域名即可。

    • 比如 dubbo用户,几乎就是http的方式完成了 http协议到 dubbo协议的互相转换。

    • soul 使用的是http协议,那么注定它就是跨语言的,net程序员,php程序员等等,要和java进行数据交互,那么就大大的可行了。

如果你使用 soul网关要发起对它的调用,你的http传参数 就是在 body 里面 传一个json字符串 ,和普通的http调用无差别。

{"id":"123","name":"xiaoyu"}
  • 对于开发者(程序员)

    我们知道,soul 网关默认的返回结果是:

    {"code":200, "message ": "成功!","data" :"helloWorld!"}
    

    但是,在运用 soul 网关对你的业务系统进行调用的时候,你的业务系统可能定义的结果并不是上述结构,可能你的 字段叫  msg,这样就会造成结构不一样,给前端处理带来了困扰。我们注意到了这个事情 :https://github.com/Dromara/soul/issues/109 , 现在已经优化,用户可以定制化的来定义返回结果,具体的要看 soul 文档。

    • 随着使用者越来越多,每个公司使用情况又不一样,soul 网关在2.1.X版本,处处留出来更多的高度自定义扩展性,让开发者,更加方便或者有信心融入进来。

    • 比如,自定义插件,过滤器,dubbo参数解析器,iphost解析器,返回结果等等。。这里我着重说一下自定义返回结果。

说了这么多,吹了这么多牛逼,那么我们来看看 soul网关到底可以在什么场景下能发挥大作用。

  • 后台管理web

    • 首先随便微服务的流行,我们的后台都划分成很多的微服务,我相信你们每个公司都有一个后台管理系统吧,如果我没猜错的话,他们大体上是如下架构。

    • 很简单对吧,就是有个运营管理平台的web项目,去调用每个微服务,来进行后台的查看等等。随着你们业务需要的加大,可能这里需要调用的微服务越来越多,你的 controller越来越多,现在比如你修改了 商品模块的 接口,你要发版会造成所有其他的模块也操作不了(就是你发版影响了其他模块的使用,别杠这里只是比方,不要整蓝绿发版啥的,明白意思吧)。如果有运营人员在操作其他模块,会不会吐槽你?

    • 假如你是公司架构师,我说的是假如,那么你要怎么解决这个问题呢?当然,我们把这样一个大的web系统,拆分成很多小web系统,单独的进行发布,但是这样会引入一个问题,怎么统一登陆,鉴权?(很多后台管理系统还有权限的划分) ,这个时候,soul 网关 就能发挥重要的作用了,下面我只是列举了一下简单的调用图。

    • 这样多方便,集成了网关,每个微服务注册到网关,网关根据路由规则来进行调用。自动发现服务,连运维配置 nginx的工作都省了,把运维的工资给你,美滋滋。

  • 公司入口网关(开放平台)

    • 如果一个公司要做开放平台或者入口网关,鉴权,限流,监控,熔断肯定少不了。

    • 如果贵公司是dubbo体系,开发人员写了dubbo服务后,还要傻乎乎的新增一个web项目,来提供接口给别人调用吗?

    • 如果一个接口被攻击,你怎么处理呢?如果被大流量攻击,你怎么处理呢?

    • 不巧,soul 在设计之初就是来干这种事情的,我们来看一下整体的架构图。

零零总总还有很多其他功能

  • 比如支持 websocket 代理。

  • 比如支持文件上传下载。

  • 比如你可以自定义的开发你的插件啊。

最后最后

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

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

  • 文档:https://dromara.org/zh-cn/docs/soul/soul.html

  • 欢迎大家关注,如果贵公司有使用到,或者需要学习交流,或者提供代码参与开发的朋友也可以加群来进行讨论 ,qq群(429951241)

  • 最后 3.0 已经在进行开源了,3.0是经历过2年双11大并发场景验证过的,现在一步一步将它开源出来,希望给大家带来帮助.



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:


最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、Elasticsearch、分库分表、读写分离、SpringMVC、SpringWebflux、WebSocket、Dubbo、RocketMQ、Kafka、性能测试等等内容。

提供近 2W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

如果你喜欢这篇文章,喜欢,转发。

生活很美好,明天见(。・ω・。)ノ♡

Soul源码分析--模块介绍 Soul源码分析--模块介绍 soul 项目下面有多个子模块,现在来看一下各个子模块的作用,soul 的整体模块如下图。模块比较多,先挑几个主要的介绍一下,其它的后面再慢慢补充 soul-admin 网关管理后台,负责插件、规则数据动态的维护,修改后可以通过 websocket、http、zookeeper、nacos 等方式同步数据到 sou-boostrap 网关 soul-boostrap 真正的网关项目,规则数据通过 soul-admin 网关管理后台同步,里面的实现也很简单,基于Netty做为 阅读详情

相关推荐

Spring Cloud 与 Apache Dubbo 深度对比

Apache Dubbo与Spring Cloud对比摘要: 核心定位 Dubbo:高性能Java RPC框架,专注服务调用与治理,核心为高效通信(默认Dubbo协议)。 Spring Cloud:微服务生态解决方案,集成配置管理、服务发现等全套组件,默认HTTP通信。 关键差异 性能:Dubbo基于TCP长连接,性能优于HTTP;Spring Cloud通用性强,支持多语言。 开发模式:Dubbo需共享API模块,侵入性高;Spring Cloud(如OpenFeign)侵入性低,更灵活。 生态:Dubb

技术引领业务创新 1346

Soul 极简入门(国产微服务网关)

1. 概述 Soul是基于WebFlux实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。 作者:我希望能够有一样东西像灵魂一样,保护您的微服务。在参考了 Kong、Spring Cloud Gateway等优秀的网关后,站在巨人的肩膀上,Soul 由此诞生! 作者是艿艿的大表弟,胖友信么?! 目前 Soul 功能列表如下: 支持各种语言,无缝集成到 Dubbo、Spring Cloud、Spring Boot 中。 Soul 是极其少支持 Dubbo 的 AP...

weixin_42073629的博客 4935

Springboot+Redis+Dubbo+Rocketmq

Springboot+Redis+Dubbo+Rocketmq Springboot+Redis+Dubbo+Rocketmq Springboot+Redis+Dubbo+Rocketmq

Soul 网关极简入门指南

本文介绍了国产云原生API网关Soul(现名ShenYu)的核心特性和使用方法。作为高性能微服务网关,它支持HTTP、SpringCloud、Dubbo等多协议,采用插件化架构和异步非阻塞设计。文章详细讲解了网关的快速启动步骤、插件机制实现原理,并通过HTTP和Dubbo服务集成示例展示具体配置方法。此外,还涵盖了流量控制、自定义插件开发、数据同步等高级特性,以及生产环境配置和性能优化建议。Soul网关凭借其易用性、扩展性和活跃的国内开发者社区,已成为微服务架构中的重要组件。

油墨香^-^的博客 1071

TikTok达人私信自动化:用Node.js和纯JavaScript实现WSS协议通信(附完整代码结构)

本文详细介绍了如何使用Node.js和WSS协议实现TikTok达人私信自动化系统。通过分层架构设计、WSS连接管理、消息加密策略及频率控制,开发者可以构建稳定高效的私信工具,突破平台API限制,适用于跨境电商和社交媒体运营场景。

weixin_30352645的博客 522

工程师必看:如何用MINITAB快速计算传感器寿命(附详细步骤)

本文为工程师提供了使用MINITAB软件快速计算传感器寿命的详细实战指南。文章重点阐述了如何通过数据预处理、回归分析拟合阿伦尼斯模型,并最终预测平均寿命与置信区间,帮助工程师高效处理加速寿命试验数据,提升可靠性分析工作的准确性与效率。

weixin_29296241的博客 248

Dubbo想要个网关怎么办?试试整合Spring Cloud Gateway

在以Dubbo框架体系来构建的微服务架构下想要增加API网关,如果不想自研开发的情况下在目前的开源社区中几乎没有找到支持dubbo协议的主流网关,但是Spring Cloud体系下却有两个非常热门的开源API网关可以选择;本文主要介绍如何通过Nacos整合Spring Cloud Gateway与Dubbo服务。

zlt2000的博客 1万+

使用MID360在室内快速定位

在预构建的点云地图中实现实时3D全球定位。通过融合FAST-LIO的低频全局定位(约0.5~0.2Hz)和高频里程计,整个系统的计算效率很高。消除里程计的累计误差初始定位可以通过RVIZ的粗略手动估计或来自另一个传感器/算法的姿势来提供。

CTwinkle的博客 1164

kong网关从入门到精通_可能国内最好的网关开源项目,支持 Dubbo、SpringCloud,经历多年双11高并发的场景验证

Soul 网关自从去年10月我开源以来,经历了一年的事情,接受到了来自社区很多朋友的建议,并进行持续不断的优化,已经提供了非常丰富的功能,很多功能都是高度自定义,可视化,高度可扩展的,现在做一个归纳总结。插件提供了系统自带的各种插件,比如签名,监控,限流,熔断,http代理,dubbo代理,websocket等等。支持用户快速的进行插件的自定义开发。插件的所有数据,开关状态支持动态变更。数据同步提...

weixin_39747595的博客 479

Comsol 弧形声学换能器声聚焦仿真

1. 弧度和曲率半径:弧形声学换能器的形状和曲率半径对声聚焦效果有重要影响。通常,较小的曲率半径和较大的弧度可以实现更强的声聚焦效果。弧形声学换能器声聚焦是指将声波能量集中在弧形声学换能器的特定区域内,以实现更强的声场强度和分辨率。4. 数值仿真和优化:使用声学仿真软件进行数值仿真可以帮助设计和优化弧形声学换能器的声聚焦效果。通过调整几何参数、材料特性和激励信号等参数,可以模拟和优化声聚焦效果。2. 激励信号:通过调整激励信号的频率和幅值,可以实现声波在弧形声学换能器中的聚焦效果。

声学黑洞仿真工作室 1619

TI官方PSpice for TI安装避坑指南:从申请Key到解决器件搜索栏空白(附详细步骤)

本文详细介绍了PSpice for TI的安装与配置全流程,包括申请Key、解决器件搜索栏空白等常见问题。通过分步指南和实战避坑技巧,帮助工程师高效完成安装并优化性能,确保电路仿真工具的正常使用。

weixin_29299807的博客 1105

一个困扰程序员很多年的问题:微服务领域SpringCloud这么火,为何还要学习SpringCloud Alibaba?

大家都知道,SpringCloud Alibaba是在SpringCloud基础上开发并开源的一套微服务架构体系。那么,肯定会有小伙伴要问:在微服务领域,SpringCloud已经很火了,为何还要弄出个SpringCloud Alibaba?这不是又要增加我的学习成本吗?今天,我们就来一起聊聊这个话题。

冰河的专栏 7705

apollo-慢速车向左绕行

当主车前方出现其他车辆时,通过左侧车道对前车绕行。

是菜鸟o的博客 313

细听分说Dubbo、SpringCloud、Istio微服务框架

文章目录前言一、Dubbo、SpringCloud、Istio框架简介1.Dubbo2.SpringCloud2.Istio新晋微服务框架二、Dubbo、SpringCloud、Istio架构图1.Dubbo架构图2.SpringCloud架构图2.Istio架构图三、Dubbo、SpringCloud、Istio数据对比总结 前言   随着互联网时代的快速发展、产品更新迭代的同时,也产生了很多优秀的框架,可谓是时势造英雄啊,今天就让我们来一起看看各大互联网企业最爱使用的几个框架(Dubbo、Spring

main方法 1792

996引擎 - 读写变量性能测试

单轮100万次读写,取3轮平均耗时(毫秒),有效读取率均为100%,数值越小性能越优。

灵台方寸山斜月三星洞 246

R语言机器学习:XGBoost线性回归模型的SHAP值

SHAP(SHapley Additive exPlanations)值是一种基于博弈论Shapley值的机器学习模型解释方法,能够解释任何模型的预测结果。其主要用途包括:1)提高模型的可解释性,帮助非技术用户理解模型预测;2)识别对模型预测最重要的特征,辅助特征选择;3)调试模型,发现预测中的异常;4)评估模型公平性,避免偏见。SHAP值的计算方法包括初始化、迭代计算、归一化和解释,常用工具如Python的shap库支持多种计算方式(如TreeSHAP、KernelSHAP等)。本文还提供了基于R语言计算

专注生信领域 3444

SpringCloud学习总结

SpringCloud 一,微服务架构 1 架构演变 单体架构 =》垂直应用架构 =》SOA架构 =》 微服务架构 2 微服务架构: 微服务架构和SOA架构很明显的一个区别就是服务拆分粒度的不同,但是对于拉勾的架构发展来说,我们所看到的SOA阶段其实服务拆分粒度相对来说已经⽐较细了(超前哦!),所以上述拉勾SOA到拉勾微服务,从服务拆分上来说变化并不⼤,只是引入了相对完整的新⼀代Spring Cloud微服务技术。⾃然,上述我们看到的都是拉勾架构演变的阶段结果,每⼀个阶段其实...

jtsd2008lm的专栏 828

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大厂面试系列(五):Dubbo和Spring Cloud

Dubbo和Spring Cloud相关 Dubbo 你说你了解dubbo,能讲一下dubbo的基本原理吗? dubbo支持的通信协议和序列化协议? dubbo负载均衡和集群容错策略有哪些?dubbo的spi思想dubbo进行的服务治理、服务降级、失败以及重试。服务端怎么知道客户端要调用的算法的? 阐述下dubbo的架构 dubbo支持的注册中心有哪些,分别的优缺点 dubbo执行流程? dubbo和springclond的架构区别和优劣? 说一下dubbo的实现过程?注册中心挂了可以继续通信吗? d

微瞰技术的博客 615

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java微服务篇2——SpringCloud

Java微服务篇2——SpringCloud 1、微服务架构 1.1、单体应用架构 的⽤户量、数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码、 编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构,这样的架构既简单实 ⽤、便于维护,成本⼜低,成为了那个时代的主流架构⽅式。 优点 高效开发:项⽬前期开发节奏快,团队成员少的时候能够快速迭代 架构简单:MVC架构,只需要借助IDE开发、调试即可 易于测试:只需要通过单元测试或者浏览器完成 易于部署:打包成单⼀可执⾏的jar或者打

qq_43842093的博客 846

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java高级工程师进阶学习,移动架构师成长路线

前言 高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。 在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多,大概分成这样几类: 1、对数据化的指标没有概念:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和QPS,甚至不知道自己系统的总用户量、活跃用户量,平峰和高峰时的QPS和TPS

m0_56662547的博客 135

【分布式利器:腾讯TSF】11、腾讯TSF微服务框架深度对比:全面解析TSF vs Spring Cloud vs Dubbo vs Service Mesh

腾讯TSF微服务框架深度对比分析 本文从架构演进、核心特性、部署运维等维度全面对比了腾讯TSF与Spring Cloud、Dubbo等主流微服务框架。TSF作为云原生全托管解决方案,采用分层架构设计,集成服务治理、配置管理、监控告警等核心能力,相比开源框架具有显著优势:1)一体化平台简化了组件集成复杂度;2)全托管服务降低运维成本;3)统一控制面提升管理效率。性能测试显示,TSF在资源消耗和服务治理能力上优于传统方案,特别适合上云企业快速构建微服务体系。文章通过架构图、流程图和对比表格,为技术选型提供了清晰

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 2358

用户测评 | EDAS Serverless 上手体验

背景最初, 是因为对 Serverless 这一概念感兴趣, 所以开始试用阿里云函数计算,使用过程中感受到了函数计算快速、按需付费和弹性伸缩等方面的优势,随后我在天气预报、发送短信等场景下开始了更深的体验,并开始接触 EDAS Serverless。 初次尝鲜看文档文档地址:https://help.aliyun.com/docum......

weixin_34018202的博客 81

玩转Spring Cloud微服务架构之微服务架构初探

玩转Spring Cloud微服务架构之微服务架构初探,分析了软件架构从单体架构到分布式架构的发展历程,并列出了Spring Cloud微服务架构的完整技术栈以和分享计划,值得期待。

编程小蜜蜂 2229
上一篇: Mybatis 使用的 9 种设计模式,真是太有用了
下一篇: 快速入手 Spring Boot 参数校验
公众号-芋道源码
博客等级 码龄10年 1636粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值