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; } }
|