[重大更新] 使用 spring 新特性 HttpServiceClient 替代 Dubbo 降低框架使用难度(半成本 数据权限不好使)

This commit is contained in:
疯狂的狮子Li
2026-03-20 19:56:09 +08:00
parent 9cd198d99d
commit b6d2274b53
127 changed files with 1894 additions and 1496 deletions

View File

@@ -1,25 +0,0 @@
package org.dromara.common.loadbalance.config;
import org.springframework.boot.EnvironmentPostProcessor;
import org.springframework.boot.SpringApplication;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
/**
* dubbo自定义负载均衡配置注入
*
* @author Lion Li
*/
public class CustomEnvironmentPostProcessor implements EnvironmentPostProcessor, Ordered {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
System.setProperty("dubbo.consumer.loadbalance", "customDubboLoadBalancer");
}
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;
}
}

View File

@@ -1,30 +0,0 @@
package org.dromara.common.loadbalance.core;
import cn.hutool.core.net.NetUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.cluster.loadbalance.AbstractLoadBalance;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
/**
* 自定义 Dubbo 负载均衡算法
*
* @author Lion Li
*/
@Slf4j
public class CustomDubboLoadBalancer extends AbstractLoadBalance {
@Override
protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {
for (Invoker<T> invoker : invokers) {
if (NetUtil.localIpv4s().contains(invoker.getUrl().getHost())) {
return invoker;
}
}
return invokers.get(ThreadLocalRandom.current().nextInt(invokers.size()));
}
}

View File

@@ -1 +0,0 @@
customDubboLoadBalancer=org.dromara.common.loadbalance.core.CustomDubboLoadBalancer

View File

@@ -1,2 +0,0 @@
org.springframework.boot.env.EnvironmentPostProcessor=\
org.dromara.common.loadbalance.config.CustomEnvironmentPostProcessor