在自定义开发前,请先自定义搭建好网关环境,请参考: 自定义部署
本文介绍如何对 org.apache.shenyu.plugin.divide.balance.LoadBalance
进行自定义扩展。
${you class}
,实现 org.apache.shenyu.plugin.divide.balance.LoadBalance
public class ${you class} implements LoadBalance { /** * 从上游列表中选择一个服务返回 * * @param upstreamList 上游列表 * @param ip 请求的远程地址 * @return divide upstream */ @Override public DivideUpstream doSelect(final List<DivideUpstream> upstreamList, final String ip) { //开发你的选择逻辑,返回结果 } }
resources
目录下,新建 META-INF/shenyu
目录, 并且新增文件名为 : org.apache.shenyu.plugin.divide.balance.LoadBalance
. 内容新增 ${you spi name}
= ${you class path}
:${you spi name} = ${you class path}
Admin
后台 ---> 基础管理 ---> 字典管理 , 找到字典编码为 LOAD_BALANCE
,新增一条数据,注意字典名称要为: ${you spi name}
。SQL
语句:INSERT IGNORE INTO `shenyu_dict` ( `id`, `type`, `dict_code`, `dict_name`, `dict_value`, `desc`, `sort`, `enabled`, `date_created`, `date_updated` ) VALUES ( 'you id', 'matchMode', 'MATCH_MODE', 'you spi name', 'you value', 'you spi name', 0, 1, '2021-08-30 19:29:10', '2021-08-30 20:15:23' );