CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-apache-dubbo--dubbo

Apache Dubbo is a powerful RPC framework for building enterprise-grade microservices with service discovery, load balancing, and fault tolerance.

Pending
Overview
Eval results
Files

configuration.mddocs/

Configuration and Bootstrap

Apache Dubbo provides comprehensive configuration management through programmatic APIs, declarative configuration, and Spring Boot integration. The configuration system supports application lifecycle management, service definitions, and runtime behavior customization.

Capabilities

Application Bootstrap

The DubboBootstrap class provides the main entry point for programmatic Dubbo initialization and lifecycle management.

/**
 * Main bootstrap class for programmatic Dubbo initialization
 */
public class DubboBootstrap {
    /** Get singleton bootstrap instance */
    public static DubboBootstrap getInstance();
    
    /** Configure application settings */
    public DubboBootstrap application(ApplicationConfig application);
    
    /** Add protocol configuration */
    public DubboBootstrap protocol(ProtocolConfig protocol);
    
    /** Add multiple protocol configurations */
    public DubboBootstrap protocols(List<ProtocolConfig> protocols);
    
    /** Add registry configuration */
    public DubboBootstrap registry(RegistryConfig registry);
    
    /** Add multiple registry configurations */
    public DubboBootstrap registries(List<RegistryConfig> registries);
    
    /** Add service configuration */
    public DubboBootstrap service(ServiceConfig<?> service);
    
    /** Add reference configuration */
    public DubboBootstrap reference(ReferenceConfig<?> reference);
    
    /** Add provider default configuration */
    public DubboBootstrap provider(ProviderConfig provider);
    
    /** Add consumer default configuration */
    public DubboBootstrap consumer(ConsumerConfig consumer);
    
    /** Add module configuration */
    public DubboBootstrap module(ModuleConfig module);
    
    /** Add configuration center */
    public DubboBootstrap configCenter(ConfigCenterConfig configCenter);
    
    /** Add metadata configuration */
    public DubboBootstrap metadataReport(MetadataReportConfig metadataReport);
    
    /** Start Dubbo framework */
    public DubboBootstrap start();
    
    /** Stop Dubbo framework */
    public DubboBootstrap stop();
    
    /** Check if Dubbo is started */
    public boolean isStarted();
    
    /** Await until Dubbo is ready */
    public DubboBootstrap await();
}

Usage Examples:

import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.*;

// Complete bootstrap setup
DubboBootstrap bootstrap = DubboBootstrap.getInstance();

// Configure application
ApplicationConfig app = new ApplicationConfig("my-dubbo-app");
app.setVersion("1.0.0");
app.setOwner("development-team");

// Configure protocol
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName("dubbo");
protocol.setPort(20880);
protocol.setThreads(200);

// Configure registry
RegistryConfig registry = new RegistryConfig();
registry.setAddress("zookeeper://127.0.0.1:2181");
registry.setUsername("admin");
registry.setPassword("secret");

// Bootstrap with configurations
bootstrap.application(app)
         .protocol(protocol)
         .registry(registry)
         .start();

// Graceful shutdown
Runtime.getRuntime().addShutdownHook(new Thread(bootstrap::stop));

Application Configuration

Core application-level configuration including identity, metadata, and runtime behavior.

/**
 * Application-level configuration
 */
public class ApplicationConfig extends AbstractConfig {
    public ApplicationConfig();
    public ApplicationConfig(String name);
    
    /** Set application name */
    public void setName(String name);
    public String getName();
    
    /** Set application version */
    public void setVersion(String version);
    public String getVersion();
    
    /** Set application owner */
    public void setOwner(String owner);
    public String getOwner();
    
    /** Set organization name */
    public void setOrganization(String organization);
    public String getOrganization();
    
    /** Set application architecture layer */
    public void setArchitecture(String architecture);
    public String getArchitecture();
    
    /** Set application environment */
    public void setEnvironment(String environment);
    public String getEnvironment();
    
    /** Set compiler for dynamic proxy generation */
    public void setCompiler(String compiler);
    public String getCompiler();
    
    /** Set logger implementation */
    public void setLogger(String logger);
    public String getLogger();
    
    /** Set dump directory for thread dumps */
    public void setDumpDirectory(String dumpDirectory);
    public String getDumpDirectory();
    
    /** Enable/disable QoS server */
    public void setQosEnable(Boolean qosEnable);
    public Boolean getQosEnable();
    
    /** Set QoS server port */
    public void setQosPort(Integer qosPort);
    public Integer getQosPort();
    
    /** Accept external QoS connections */
    public void setQosAcceptForeignIp(Boolean qosAcceptForeignIp);
    public Boolean getQosAcceptForeignIp();
}

Protocol Configuration

Configuration for communication protocols including ports, threading, and serialization.

/**
 * Protocol configuration for communication layer
 */
public class ProtocolConfig extends AbstractConfig {
    public ProtocolConfig();
    public ProtocolConfig(String name);
    public ProtocolConfig(String name, int port);
    
    /** Set protocol name (dubbo, rest, grpc, etc.) */
    public void setName(String name);
    public String getName();
    
    /** Set protocol port */
    public void setPort(int port);
    public int getPort();
    
    /** Set bind host */
    public void setHost(String host);
    public String getHost();
    
    /** Set thread pool size */
    public void setThreads(int threads);
    public int getThreads();
    
    /** Set IO thread pool size */
    public void setIothreads(int iothreads);
    public int getIothreads();
    
    /** Set thread pool type */
    public void setThreadpool(String threadpool);
    public String getThreadpool();
    
    /** Set accept connections limit */
    public void setAccepts(int accepts);
    public int getAccepts();
    
    /** Set payload limit in bytes */
    public void setPayload(int payload);
    public int getPayload();
    
    /** Set codec type */
    public void setCodec(String codec);
    public String getCodec();
    
    /** Set compression type */
    public void setCompression(String compression);
    public String getCompression();
    
    /** Set serialization type */
    public void setSerialization(String serialization);
    public String getSerialization();
    
    /** Set network transport */
    public void setTransporter(String transporter);
    public String getTransporter();
    
    /** Set channel handler */
    public void setDispatcher(String dispatcher);
    public String getDispatcher();
    
    /** Set heartbeat interval */
    public void setHeartbeat(int heartbeat);
    public int getHeartbeat();
    
    /** Enable SSL */
    public void setSslEnabled(Boolean sslEnabled);
    public Boolean getSslEnabled();
}

Registry Configuration

Configuration for service discovery backends including connection details and behavior.

/**
 * Registry configuration for service discovery
 */
public class RegistryConfig extends AbstractConfig {
    public RegistryConfig();
    public RegistryConfig(String address);
    
    /** Set registry address */
    public void setAddress(String address);
    public String getAddress();
    
    /** Set registry protocol */
    public void setProtocol(String protocol);
    public String getProtocol();
    
    /** Set registry port */
    public void setPort(int port);
    public int getPort();
    
    /** Set username for authentication */
    public void setUsername(String username);
    public String getUsername();
    
    /** Set password for authentication */
    public void setPassword(String password);
    public String getPassword();
    
    /** Set connection timeout */
    public void setTimeout(int timeout);
    public int getTimeout();
    
    /** Set session timeout */
    public void setSession(int session);
    public int getSession();
    
    /** Set registry file cache path */
    public void setFile(String file);
    public String getFile();
    
    /** Enable/disable dynamic registration */
    public void setDynamic(Boolean dynamic);
    public Boolean getDynamic();
    
    /** Enable/disable registry */
    public void setRegister(Boolean register);
    public Boolean getRegister();
    
    /** Enable/disable subscription */
    public void setSubscribe(Boolean subscribe);
    public Boolean getSubscribe();
    
    /** Set service group */
    public void setGroup(String group);
    public String getGroup();
    
    /** Set service version */
    public void setVersion(String version);
    public String getVersion();
    
    /** Set retry period for failed operations */
    public void setRetryPeriod(int retryPeriod);
    public int getRetryPeriod();
    
    /** Enable/disable check on startup */
    public void setCheck(Boolean check);
    public Boolean getCheck();
}

Service Configuration

Configuration for service providers including interface binding and behavior settings.

/**
 * Service provider configuration
 * @param <T> Service interface type
 */
public class ServiceConfig<T> extends ServiceConfigBase<T> {
    public ServiceConfig();
    public ServiceConfig(Service service);
    
    /** Set service interface class */
    public void setInterface(Class<?> interfaceClass);
    public void setInterface(String interfaceName);
    public String getInterface();
    
    /** Set service implementation reference */
    public void setRef(T ref);
    public T getRef();
    
    /** Set service path */
    public void setPath(String path);
    public String getPath();
    
    /** Export service (make it available for consumers) */
    public synchronized void export();
    
    /** Unexport service */
    public synchronized void unexport();
    
    /** Check if service is exported */
    public boolean isExported();
    
    /** Check if service is unexported */
    public boolean isUnexported();
    
    /** Set service version */
    public void setVersion(String version);
    public String getVersion();
    
    /** Set service group */
    public void setGroup(String group);
    public String getGroup();
    
    /** Enable/disable deprecated */
    public void setDeprecated(Boolean deprecated);
    public Boolean getDeprecated();
    
    /** Set delay for service export (ms) */
    public void setDelay(Integer delay);
    public Integer getDelay();
    
    /** Set service weight for load balancing */
    public void setWeight(Integer weight);
    public Integer getWeight();
    
    /** Set document URL */
    public void setDocument(String document);
    public String getDocument();
    
    /** Enable/disable dynamic registration */
    public void setDynamic(Boolean dynamic);
    public Boolean getDynamic();
    
    /** Set access token for security */
    public void setToken(String token);
    public String getToken();
    
    /** Set access log configuration */
    public void setAccesslog(String accesslog);
    public String getAccesslog();
    
    /** Add method-specific configuration */
    public void setMethods(List<MethodConfig> methods);
    public List<MethodConfig> getMethods();
}

Reference Configuration

Configuration for service consumers including interface references and invocation behavior.

/**
 * Service consumer reference configuration
 * @param <T> Service interface type
 */
public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
    public ReferenceConfig();
    public ReferenceConfig(Reference reference);
    
    /** Set service interface class */
    public void setInterface(Class<T> interfaceClass);
    public void setInterface(String interfaceName);
    public String getInterface();
    
    /** Get service proxy instance */
    public synchronized T get();
    
    /** Destroy reference and release resources */
    public synchronized void destroy();
    
    /** Set service URL directly (bypass registry) */
    public void setUrl(String url);
    public String getUrl();
    
    /** Set service version */
    public void setVersion(String version);
    public String getVersion();
    
    /** Set service group */
    public void setGroup(String group);
    public String getGroup();
    
    /** Set client type */
    public void setClient(String client);
    public String getClient();
    
    /** Enable/disable generic invocation */
    public void setGeneric(String generic);
    public String getGeneric();
    
    /** Enable/disable injvm optimization */
    public void setInjvm(Boolean injvm);
    public Boolean getInjvm();
    
    /** Enable/disable lazy initialization */
    public void setLazy(Boolean lazy);
    public Boolean getLazy();
    
    /** Enable/disable sticky sessions */
    public void setSticky(Boolean sticky);
    public Boolean getSticky();
    
    /** Set reconnect interval */
    public void setReconnect(String reconnect);
    public String getReconnect();
    
    /** Add method-specific configuration */
    public void setMethods(List<MethodConfig> methods);
    public List<MethodConfig> getMethods();
}

Usage Examples:

// Service provider configuration
ServiceConfig<GreeterService> service = new ServiceConfig<>();
service.setInterface(GreeterService.class);
service.setRef(new GreeterServiceImpl());
service.setVersion("1.0.0");
service.setGroup("default");
service.setDelay(5000); // 5 second delay
service.export();

// Service consumer configuration
ReferenceConfig<GreeterService> reference = new ReferenceConfig<>();
reference.setInterface(GreeterService.class);
reference.setVersion("1.0.0");
reference.setGroup("default");
reference.setTimeout(3000);
reference.setRetries(2);

GreeterService greeter = reference.get();
String result = greeter.sayHello("World");

Method Configuration

Fine-grained configuration for specific service methods.

/**
 * Method-level configuration for fine-grained control
 */
public class MethodConfig extends AbstractMethodConfig {
    public MethodConfig();
    public MethodConfig(Method method);
    
    /** Set method name */
    public void setName(String name);
    public String getName();
    
    /** Set method timeout (ms) */
    public void setTimeout(Integer timeout);
    public Integer getTimeout();
    
    /** Set retry count */
    public void setRetries(Integer retries);
    public Integer getRetries();
    
    /** Set load balancing algorithm */
    public void setLoadbalance(String loadbalance);
    public String getLoadbalance();
    
    /** Enable/disable async invocation */
    public void setAsync(Boolean async);
    public Boolean getAsync();
    
    /** Set async response handling */
    public void setSent(Boolean sent);
    public Boolean getSent();
    
    /** Set max concurrent active requests */
    public void setActives(Integer actives);
    public Integer getActives();
    
    /** Set execution limit per method */
    public void setExecutes(Integer executes);
    public Integer getExecutes();
    
    /** Enable/disable deprecated */
    public void setDeprecated(Boolean deprecated);
    public Boolean getDeprecated();
    
    /** Enable/disable sticky sessions */
    public void setSticky(Boolean sticky);
    public Boolean getSticky();
    
    /** Enable/disable return value */
    public void setReturn(Boolean isReturn);
    public Boolean getReturn();
    
    /** Set validation groups */
    public void setValidation(String validation);
    public String getValidation();
    
    /** Add argument-specific configuration */
    public void setArguments(List<ArgumentConfig> arguments);
    public List<ArgumentConfig> getArguments();
}

/**
 * Argument-level configuration
 */
public class ArgumentConfig extends AbstractConfig {
    public ArgumentConfig();
    public ArgumentConfig(Object argument);
    
    /** Set argument index */
    public void setIndex(Integer index);
    public Integer getIndex();
    
    /** Set argument type */
    public void setType(String type);
    public String getType();
    
    /** Enable/disable callback */
    public void setCallback(Boolean callback);
    public Boolean getCallback();
}

Provider and Consumer Defaults

Default configurations that apply to all services or references.

/**
 * Default configuration for service providers
 */
public class ProviderConfig extends AbstractServiceConfig {
    public ProviderConfig();
    
    /** Set default host */
    public void setHost(String host);
    public String getHost();
    
    /** Set default port */
    public void setPort(Integer port);
    public Integer getPort();
    
    /** Set default context path */
    public void setContextpath(String contextpath);
    public String getContextpath();
    
    /** Set default thread pool */
    public void setThreadpool(String threadpool);
    public String getThreadpool();
    
    /** Set default thread count */
    public void setThreads(Integer threads);
    public Integer getThreads();
    
    /** Set default IO threads */
    public void setIothreads(Integer iothreads);
    public Integer getIothreads();
    
    /** Set default connection limit */
    public void setAccepts(Integer accepts);
    public Integer getAccepts();
    
    /** Set default payload size */
    public void setPayload(Integer payload);
    public Integer getPayload();
}

/**
 * Default configuration for service consumers
 */
public class ConsumerConfig extends AbstractReferenceConfig {
    public ConsumerConfig();
    
    /** Set default timeout */
    public void setTimeout(Integer timeout);
    public Integer getTimeout();
    
    /** Set default retries */
    public void setRetries(Integer retries);
    public Integer getRetries();
    
    /** Set default load balancer */
    public void setLoadbalance(String loadbalance);
    public String getLoadbalance();
    
    /** Enable/disable async by default */
    public void setAsync(Boolean async);
    public Boolean getAsync();
    
    /** Set default connections per provider */
    public void setConnections(Integer connections);
    public Integer getConnections();
    
    /** Enable/disable generic invocation */
    public void setGeneric(String generic);
    public String getGeneric();
    
    /** Enable/disable check on startup */
    public void setCheck(Boolean check);
    public Boolean getCheck();
    
    /** Set default proxy type */
    public void setProxy(String proxy);
    public String getProxy();
    
    /** Set default owner */
    public void setOwner(String owner);
    public String getOwner();
}

Configuration Centers

Configuration for external configuration management systems.

/**
 * Configuration center settings
 */
public class ConfigCenterConfig extends AbstractConfig {
    public ConfigCenterConfig();
    
    /** Set config center address */
    public void setAddress(String address);
    public String getAddress();
    
    /** Set config center protocol */
    public void setProtocol(String protocol);
    public String getProtocol();
    
    /** Set config center port */
    public void setPort(Integer port);
    public Integer getPort();
    
    /** Set username */
    public void setUsername(String username);
    public String getUsername();
    
    /** Set password */
    public void setPassword(String password);
    public String getPassword();
    
    /** Set timeout */
    public void setTimeout(Long timeout);
    public Long getTimeout();
    
    /** Set config group */
    public void setGroup(String group);
    public String getGroup();
    
    /** Set config namespace */
    public void setNamespace(String namespace);
    public String getNamespace();
    
    /** Set cluster name */
    public void setCluster(String cluster);
    public String getCluster();
    
    /** Enable/disable check on startup */
    public void setCheck(Boolean check);
    public Boolean getCheck();
    
    /** Set config file */
    public void setConfigFile(String configFile);
    public String getConfigFile();
    
    /** Set application config file */
    public void setAppConfigFile(String appConfigFile);
    public String getAppConfigFile();
    
    /** Set highest priority */
    public void setHighestPriority(Boolean highestPriority);
    public Boolean getHighestPriority();
}

Configuration Builders

Fluent API builders for configuration objects.

/**
 * Builder for ApplicationConfig
 */
public class ApplicationBuilder {
    public static ApplicationBuilder newBuilder();
    public ApplicationBuilder name(String name);
    public ApplicationBuilder version(String version);
    public ApplicationBuilder owner(String owner);
    public ApplicationBuilder organization(String organization);
    public ApplicationBuilder architecture(String architecture);
    public ApplicationBuilder environment(String environment);
    public ApplicationBuilder compiler(String compiler);
    public ApplicationBuilder logger(String logger);
    public ApplicationBuilder qosEnable(Boolean qosEnable);
    public ApplicationBuilder qosPort(Integer qosPort);
    public ApplicationConfig build();
}

/**
 * Builder for ProtocolConfig
 */
public class ProtocolBuilder {
    public static ProtocolBuilder newBuilder();
    public ProtocolBuilder name(String name);
    public ProtocolBuilder port(int port);
    public ProtocolBuilder host(String host);
    public ProtocolBuilder threads(int threads);
    public ProtocolBuilder payload(int payload);
    public ProtocolBuilder serialization(String serialization);
    public ProtocolConfig build();
}

Usage Examples:

import org.apache.dubbo.config.bootstrap.builders.*;

// Using builders for fluent configuration
ApplicationConfig app = ApplicationBuilder.newBuilder()
    .name("my-app")
    .version("1.0.0")
    .owner("dev-team")
    .qosEnable(true)
    .qosPort(22222)
    .build();

ProtocolConfig protocol = ProtocolBuilder.newBuilder()
    .name("dubbo")
    .port(20880)
    .threads(200)
    .serialization("hessian2")
    .build();

RegistryConfig registry = RegistryBuilder.newBuilder()
    .address("zookeeper://127.0.0.1:2181")
    .timeout(5000)
    .check(true)
    .build();

Install with Tessl CLI

npx tessl i tessl/maven-org-apache-dubbo--dubbo

docs

clustering.md

configuration.md

extensions.md

index.md

metadata.md

registry.md

rpc-core.md

serialization.md

spring-boot.md

tile.json