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 ExecutorServiceapplicationTaskExecutor2021-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 ofspring.cloud.loadbalancer.ribbon.enabledtofalseor 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[timestamp1612937033763,currentUP,previousSTARTING]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 path2021-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