Dubbo 初始化

本文最后更新于:2024年3月18日 凌晨

Dubbo 初始化

定义接口依赖包

1
2
3
4
5
public interface UserService {

List<UserAddress> getUserAddressList(String userId);

}
1
2
3
4
5
6
7
8
9
10
11
12
13
@Data
@AllArgsConstructor
public class UserAddress implements Serializable {

private static final long serialVersionUID = -4294369157631410325L;

private Integer id;
private String userAddress;
private String userId;
private String consignee;
private String phoneNum;
private String isDefault;
}

pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>3.0.2.1</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>

服务提供者

配置dubbo相关属性

1
2
3
4
5
6
7
8
9
dubbo.application.name=dubbo-demo
dubbo.registry.address=zookeeper://zookeeper:2181
dubbo.registry.protocol=zookeeper
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.provider.loadbalance=leastactive
dubbo.provider.timeout=30000
dubbo.provider.version=1.0
dubbo.provider.group=test-group

提供服务

  • 配置服务注解@Service,发布服务。
  • 注意导包问题。
1
2
3
4
5
6
7
8
9
10
11
12
@DubboService
@Service
public class UserServiceImpl implements UserService {

@Override
public List<UserAddress> getUserAddressList(String userId) {
Map<String, List<UserAddress>> userAddressMap = new HashMap<>();
userAddressMap.put("1", Arrays.asList(new UserAddress(1, "北京市", "1", "张三", "123456", "1")));
userAddressMap.put("2", Arrays.asList(new UserAddress(2, "上海市", "2", "李四", "123456", "1")));
return userAddressMap.get(userId);
}
}

服务消费者

配置dubbo相关属性

1
2
3
4
5
6
7
8
9
dubbo.application.name=consumer-of-dubbo-demo
dubbo.registry.address=zookeeper://zookeeper:2181
dubbo.registry.protocol=zookeeper
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.consumer.loadbalance=leastactive
dubbo.consumer.timeout=30000
dubbo.consumer.version=1.0
dubbo.consumer.group=test-group

使用服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestController
@RequestMapping("/user")
public class UserController {

@DubboReference
UserService userService;

@GetMapping("/getUserAddressList")
public List<UserAddress> getUserAddressList(String userId) {
List<UserAddress> userAddressList = userService.getUserAddressList(userId);
System.out.println(userAddressList);
return userAddressList;
}
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!