news 2026/3/1 4:51:30

Spring Cloud 服务接入到 Apache ShenYu 网关完整案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Cloud 服务接入到 Apache ShenYu 网关完整案例

Spring Cloud快速开始

本文档演示如何将Spring Cloud服务接入到Apache ShenYu网关。您可以直接在工程下找到本文档的示例代码 。

环境准备

请参考运维部署的内容,选择一种方式启动shenyu-admin。比如,通过 本地部署 启动Apache ShenYu后台管理系统。

启动网关,如果是通过源码的方式,直接运行shenyu-bootstrap中的ShenyuBootstrapApplication

启动顺序

  • 启动shenyu-admin
  • 启动shenyu-bootstrap
  • 启动注册中心,例如shenyu-examples下的eureka项目
  • 配置shenyu-examples-springcloud注册发现
shenyu:discovery:enable:truetype:eurekaserverList:${eureka.client.serviceUrl.defaultZone}registerPath:${spring.application.name}props:nacosNameSpace:ShenyuRegisterCenter

运行shenyu-examples-springcloud

示例项目中我们使用eureka作为Spring Cloud的注册中心。你可以使用本地的eureka,也可以使用示例中提供的应用。

下载 shenyu-examples-eureka 、shenyu-examples-springcloud .

启动eureka服务,运行org.apache.shenyu.examples.eureka.EurekaServerApplicationmain方法启动项目。

启动spring cloud服务,运行org.apache.shenyu.examples.springcloud.ShenyuTestSpringCloudApplicationmain方法启动项目。

成功启动会有如下日志:

2021-02-1014:03:51.301 INFO2860---[main]o.s.s.concurrent.ThreadPoolTaskExecutor:Initializing ExecutorService'applicationTaskExecutor'2021-02-1014:03:51.669 INFO2860---[pool-1-thread-1]o.d.s.client.common.utils.RegisterUtils:springCloud client register success:{"appName":"springCloud-test","context":"/springcloud","path":"/springcloud/order/save","pathDesc":"","rpcType":"springCloud","ruleName":"/springcloud/order/save","enabled":true}2021-02-1014:03:51.676 INFO2860---[pool-1-thread-1]o.d.s.client.common.utils.RegisterUtils:springCloud client register success:{"appName":"springCloud-test","context":"/springcloud","path":"/springcloud/order/path/**","pathDesc":"","rpcType":"springCloud","ruleName":"/springcloud/order/path/**","enabled":true}2021-02-1014:03:51.682 INFO2860---[pool-1-thread-1]o.d.s.client.common.utils.RegisterUtils:springCloud client register success:{"appName":"springCloud-test","context":"/springcloud","path":"/springcloud/order/findById","pathDesc":"","rpcType":"springCloud","ruleName":"/springcloud/order/findById","enabled":true}2021-02-1014:03:51.688 INFO2860---[pool-1-thread-1]o.d.s.client.common.utils.RegisterUtils:springCloud client register success:{"appName":"springCloud-test","context":"/springcloud","path":"/springcloud/order/path/**/name","pathDesc":"","rpcType":"springCloud","ruleName":"/springcloud/order/path/**/name","enabled":true}2021-02-1014:03:51.692 INFO2860---[pool-1-thread-1]o.d.s.client.common.utils.RegisterUtils:springCloud client register success:{"appName":"springCloud-test","context":"/springcloud","path":"/springcloud/test/**","pathDesc":"","rpcType":"springCloud","ruleName":"/springcloud/test/**","enabled":true}2021-02-1014:03:52.806 WARN2860---[main]ockingLoadBalancerClientRibbonWarnLogger:You already have RibbonLoadBalancerClient on your classpath. It will be used by default. As Spring Cloud Ribbon isinmaintenance mode. We recommend switching to BlockingLoadBalancerClient instead. In order to use it,setthe value of`spring.cloud.loadbalancer.ribbon.enabled`to`false`or remove spring-cloud-starter-netflix-ribbon from your project.2021-02-1014:03:52.848 WARN2860---[main]iguration$LoadBalancerCaffeineWarnLogger:Spring Cloud LoadBalancer is currently working with default default cache. You can switch to using Caffeine cache, by adding it to the classpath.2021-02-1014:03:52.921 INFO2860---[main]o.s.c.n.eureka.InstanceInfoFactory:Setting initial instance status as: STARTING2021-02-1014:03:52.949 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Initializing Eurekainregion us-east-12021-02-1014:03:53.006 INFO2860---[main]c.n.d.provider.DiscoveryJerseyProvider:Using JSON encoding codec LegacyJacksonJson2021-02-1014:03:53.006 INFO2860---[main]c.n.d.provider.DiscoveryJerseyProvider:Using JSON decoding codec LegacyJacksonJson2021-02-1014:03:53.110 INFO2860---[main]c.n.d.provider.DiscoveryJerseyProvider:Using XML encoding codec XStreamXml2021-02-1014:03:53.110 INFO2860---[main]c.n.d.provider.DiscoveryJerseyProvider:Using XML decoding codec XStreamXml2021-02-1014:03:53.263 INFO2860---[main]c.n.d.s.r.aws.ConfigClusterResolver:Resolving eureka endpoints via configuration2021-02-1014:03:53.546 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Disable delta property:false2021-02-1014:03:53.546 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Single vip registry refresh property:null2021-02-1014:03:53.547 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Force full registry fetch:false2021-02-1014:03:53.547 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Application is null:false2021-02-1014:03:53.547 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Registered Applications size is zero:true2021-02-1014:03:53.547 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Application version is -1:true2021-02-1014:03:53.547 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Getting all instance registry info from the eureka server2021-02-1014:03:53.754 INFO2860---[main]com.netflix.discovery.DiscoveryClient:The response status is2002021-02-1014:03:53.756 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Starting heartbeat executor: renew interval is:302021-02-1014:03:53.758 INFO2860---[main]c.n.discovery.InstanceInfoReplicator:InstanceInfoReplicator onDemand update allowed rate per min is42021-02-1014:03:53.761 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Discovery Client initialized at timestamp1612937033760with initial instances count:02021-02-1014:03:53.762 INFO2860---[main]o.s.c.n.e.s.EurekaServiceRegistry:Registering application SPRINGCLOUD-TEST with eureka with status UP2021-02-1014:03:53.763 INFO2860---[main]com.netflix.discovery.DiscoveryClient:Sawlocalstatus change event StatusChangeEvent[timestamp=1612937033763,current=UP,previous=STARTING]2021-02-1014:03:53.765 INFO2860---[nfoReplicator-0]com.netflix.discovery.DiscoveryClient:DiscoveryClient_SPRINGCLOUD-TEST/host.docker.internal:springCloud-test:8884: registering service...2021-02-1014:03:53.805 INFO2860---[main]o.s.b.w.embedded.tomcat.TomcatWebServer:Tomcat started on port(s):8884(http)with context path''2021-02-1014:03:53.807 INFO2860---[main].s.c.n.e.s.EurekaAutoServiceRegistration:Updating port to88842021-02-1014:03:53.837 INFO2860---[nfoReplicator-0]com.netflix.discovery.DiscoveryClient:DiscoveryClient_SPRINGCLOUD-TEST/host.docker.internal:springCloud-test:8884 - registration status:2042021-02-1014:03:54.231 INFO2860---[main]o.d.s.e.s.ShenyuTestSpringCloudApplication:Started ShenyuTestSpringCloudApplicationin6.338seconds(JVM runningfor7.361)
  • 启动shenyu-examples-springcloud之后
  • 在admin的系统的divide插件上即可看到刚注册上来的数据

测试Http请求

shenyu-examples-springcloud项目成功启动之后会自动把加@ShenyuSpringMvcClient注解的接口方法注册到网关。

下面使用postman模拟http的方式来请求你的SpringCloud服务:

使用IDEA HTTP Client插件模拟http的方式来请求你的SpringCloud服务[本地访问,不使用shenyu代理]:

使用IDEA HTTP Client插件模拟http的方式来请求你的SpringCloud服务[使用shenyu代理]:


Spring Cloud快速开始 | Apache ShenYu

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 21:44:26

Bayes-CNN贝叶斯优化卷积神经网络多输入单输出回归预测(Matlab) 1

Bayes-CNN贝叶斯优化卷积神经网络多输入单输出回归预测(Matlab)1.命令窗口输出MAE、MSE、RMSEP、R^2、RPD和MAPE 2.贝叶斯优化算法优化参数为学习率、批处理样本大小和、正则化参数。 3.输入6个特征,输出1个变量直接上干货,今天咱…

作者头像 李华
网站建设 2026/2/22 3:18:56

聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位

为加强扬州市网络和数据安全技术支撑体系建设,提升网络和数据安全应急处置和风险防范能力,扬州市委网信办公开遴选2026年度网络和数据安全服务资源池单位。经自主申报、资质审查、专家评议等环节,最终确定包括聚铭网络在内的24家企业入选《20…

作者头像 李华
网站建设 2026/2/27 0:11:24

AI实战:念念不忘小程序上线啦,带你重温美好时光

还在担心珍贵瞬间被遗忘?微信小程序「念念不忘」正式上线!AI智能分析你的照片,自动生成百字回忆——时间、地点、人物、故事,一键呈现。首页每日推送一张专属老照片,生日前两周自动展示靓照,纪念日临近也能…

作者头像 李华
网站建设 2026/2/16 7:19:02

2026别错过!8个降AI率软件降AIGC网站评测:自考论文降重全攻略

在2026年,随着AI技术的不断进步,学术论文中AI生成内容(AIGC)的比例也在逐年上升。对于自考学生而言,如何有效降低论文的AIGC率、去除AI痕迹并优化查重率,已成为一项关键任务。传统的人工修改方式不仅耗时耗…

作者头像 李华