代码实现创建动态网关实现 | 学习笔记

简介: 快速学习 代码实现创建动态网关实现

开发者学堂课程【精通 Spring Cloud Alibaba代码实现创建动态网关实现学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/634/detail/10122


代码实现创建动态网关实现


目录:

一、核心代码

二、相关代码


一、核心代码

@RestController

public class GatewayController {

@Autowired

private GatewayService gatewayService;

/**

*同步网关配置

*

*@return

*/

@RequestMapping("/synGatewayConfig")

public String synGatewayConfig()( return gatewayService.loadRoute();

}}


二、相关代码

@Service

public class GatewayService implements ApplicationEventPublisherAware {

private ApplicationEventPublisher publisher;

@Autowired

Private RouteDefinitionwriter routeDenfinitionWriter;

@Override

public void setApplicationEventPublisher(ApplicationEventPublisherapplicationEventPublisher) {

this.publisher = applicationEventPublisher;}

public String loadRoute() {

RouteDefinition definition = new RouteDefinition();

Map<String, String>predicateParams = new HashMap<>( initialCapacity:8);

PredicateDefinition predicate =new PredicateDefinition();

FilterDefinition filterDefinition = new FilterDefinition();

Map<String, String> filterParams= new HashMap<>( initialCapacity:8);

//如果配置路由 type 0的话 则从注册中心获取服务

URI uri ==UriComponentsBuilder.fromUriString("1b://"+ gateWayEntity.getRouteUr1()+ "/").b

//定义的路由唯一的 id

definition.setId("member");

predicate.setName("Path");

//路由转发地址

predicateParams.put("pattern","/member/**");

predicate.setArgs(predicateParams);

// 名称是固定的,路径去前缀

filterDefinition.setName("StripPrefix");

filterParams.put("_genkey_0""1");

filterDefinition.setArgs(filterParams);

definition.setPredicates(Arrays.asList(predicate));

definition.setFilters(Arrays.asList(filterDefinition));

definition.setUri(uri);

routeDefinitionWriter.save(Mono.just(definition)).subscribe();

@override

public void setApplicationEventPublisher(ApplicationEventPublisherapplicationEventPublisher){

this.publisher = applicationEventPublisher;

}

public String loadRoute(){

RouteDefinition definition = new RouteDefinition();

Map<String,String>predicateParams=newHashMap<>( initialCapacity:8);

PredicateDefinition predicate = new PredicateDefinition();

FilterDefinition filterDefinition = new FilterDefinition();

Map<String,String> filterParams = new HashMap<>(initialCapacity:8);

//如果配置路由 type 0的话 则从注册中心获取服务

URI uri = UriComponentsBuilder.fromUriString("lb://mayikt-member/").build().toUri();

// 定义的路由唯一的 id

definition.setId("member");

predicate.setName("Path");

//路由转发地址

predicateParams.put("pattern","/member/**");

predicate.setArgs(predicateParams);}

相关文章
|
7月前
|
API
阿里云微服务引擎及 API 网关 2024 年 2 月产品动态
阿里云微服务引擎及 API 网关 2024 年 2 月产品动态
687 12
|
6月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2024 年 05 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
4月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18843 24
|
3月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
|
5月前
|
人工智能 API
阿里云微服务引擎及 API 网关 2024 年 6 月产品动态
阿里云微服务引擎及 API 网关 2024 年 6 月产品动态
161 20
|
6月前
|
API
阿里云微服务引擎及 API 网关 2024 年 5 月产品动态
阿里云微服务引擎及 API 网关 2024 年 5 月产品动态。
879 20
阿里云微服务引擎及 API 网关 2024 年 5 月产品动态
|
7月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
306 0
|
4月前
|
应用服务中间件 API nginx
微服务从代码到k8s部署应有尽有系列(二、网关)
微服务从代码到k8s部署应有尽有系列(二、网关)
|
5月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2024 年 06 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
7月前
|
人工智能 API
阿里云微服务引擎及 API 网关 2024 年 4 月产品动态
阿里云微服务引擎及 API 网关 2024 年 4 月产品动态。
394 23