Dubbo搭建
- 导入Maven依赖
<dependency>
<groupId></groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!--连接注册中心 zkclient-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.8</version>
</dependency>
<!--连接注册中心 curator-->
<dependency>
<groupId></groupId>
<artifactId>curator-framework</artifactId>
<version>2.7.1</version>
</dependency>
基于配置文件版本
服务提供者
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="http:///2001/XMLSchema-instance"
xmlns:dubbo="/schema/dubbo"
xsi:schemaLocation="/schema/beans
/schema/beans/
/schema/dubbo
/schema/dubbo/">
<!--配置SpringBean-->
<bean id="qqUserService" class=""/>
<bean id="wxUserService" class=""/>
<!-- 提供方应用信息,用于计算依赖关系-->
<dubbo:application name="UserCenterProvider"/>
<!--dubbo 注册中心 client可选值 zkclient、curator -->
<dubbo:registry address="zookeeper://192.168.128.128:2181" client="curator" />
<!--配置dubbo服务端实现-->
<dubbo:protocol name="dubbo" port="20880" server="netty"/>
<!--暴露服务接口-->
<dubbo:service interface="" ref="qqUserService" group="g1"/>
<dubbo:service interface="" ref="wxUserService" group="g2" />
</beans>
服务消费者
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="http:///2001/XMLSchema-instance"
xmlns:dubbo="/schema/dubbo"
xsi:schemaLocation="/schema/beans
/schema/beans/
/schema/dubbo
/schema/dubbo/">
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="DubboQQConsumer"/>
<!--dubbo 注册中心 client可选值 zkclient、curator -->
<dubbo:registry address="zookeeper://192.168.128.128:2181" client="curator" />
<!--引用服务 基于接口创建代理bean -->
<dubbo:reference id="qqUserService" proxy="jdk" group="g2" interface="" />
</beans>
注解版本配置
@Configuration
@DubboComponentScan(basePackages = {
"",
""}
)
public class DubboConfiguration {
//等价 <dubbo:application name="provider-test"/>
@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("provider-test");
return applicationConfig;
}
//等价 <dubbo:registry address="zookeeper://192.168.128.128:2181" client="curator" />
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://192.168.128.128:2181");
registryConfig.setClient("curator");
return registryConfig;
}
@Bean
public ProtocolConfig protocolConfig(){
ProtocolConfig protocolConfig=new ProtocolConfig();
protocolConfig.setName("dubbo");
protocolConfig.setPort(20880);
protocolConfig.setServer("netty");
return protocolConfig;
}
}
服务暴露
@Service(
group = "g1"
)
public class QQUserService implements IUserService {
public User queryUserById(Integer id) {
return new User(id,"QQ用户1",new Date());
}
public List<User> queryAll() {
return null;
}
public void deleteUserById(Integer id) {
}
public void UpdateUser(User user) {
}
}
---
import com.alibaba.dubbo.config.annotation.Service;
import com.baizhi.entity.User;
import com.baizhi.service.IUserService;
import java.util.Date;
import java.util.List;
@Service(group = "g2")
public class WXUserService implements IUserService {
public User queryUserById(Integer id) {
return new User(id,"WX用户1",new Date());
}
public List<User> queryAll() {
return null;
}
public void deleteUserById(Integer id) {
}
public void UpdateUser(User user) {
}
}
消费端
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
import com.baizhi.service.IUserService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@DubboComponentScan(basePackages = "")
public class DubboConfiguration {
@Reference(group = "g2" ,proxy = "jdk")
private IUserService userService;
@Bean
public IUserService qqUserService(){
return userService;
}
@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("provider-test");
return applicationConfig;
}
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://192.168.128.128:2181");
registryConfig.setClient("curator");
return registryConfig;
}
}