Springboot1.5.10整合dubbo2.6.2

最近项目中要使用dubbo进行分布式部署,这里就介绍一下实际工作中的一些操作。

1.安装zookeeper

在官网下载zookeeper来安装,我本机安装的zookeeper-3.4.6Windows版本。双击bin/zkServer.cmd启动。

2.添加依赖

<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>1.5.10.RELEASE</version>
            </dependency>

<dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>0.1.1</version>
            </dependency>

<dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.9</version>
            </dependency>
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.10</version>
            </dependency>

3.修改application.properties

在application.properties中添加dubbo的属性:

dubbo.application.name=user-provider
dubbo.scan.basePackages=com.test.example
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=20890

指定host和port,名称和包名。

4.修改Application

在启动类中增加注解@EnableDubboConfig

@SpringBootApplication
@ServletComponentScan
@EnableDubboConfig
public class WmUserServiceProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(WmUserServiceProviderApplication.class, args);
    }
}

5.增加提供方接口

@Service(interfaceClass = com.test.example.UserService.class, timeout = 100000)
@Component
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;
}

注意这里的注解@Service不能用spring的,应该是com.alibaba.dubbo.config.annotation.Service,里面有很多属性,需要指定接口类interfaceClass ,客户端调用默认超时是1秒,如果需要可以设置timeout,其他属性可自行设置。

启动WmUserServiceProviderApplication,service提供方就OK了。

6.修改客户端工程

dubbo.application.name=consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181

pom添加依赖:

<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>1.5.10.RELEASE</version>
            </dependency>

<dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>0.1.1</version>
            </dependency>

<dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.9</version>
            </dependency>
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.10</version>
            </dependency>

7.客户端使用service

   @Reference
    private UserService userService;

使用阿里的dubbo注解引用服务端的接口,com.alibaba.dubbo.config.annotation.Reference。

8.启动

客户端启动类也需要增加@EnableDubboConfig注解,启动成功后可以使用服务器的service了。

这样一个最简单的springboot+dubbo的rpc项目就搭建成功了。

猜你喜欢

转载自www.cnblogs.com/jameszheng/p/10229677.html
今日推荐