天天看點

Apache Dubbo Zookeeper 內建示例

Apache Dubbo Zookeeper 內建

        • 一、工程目錄
        • 二、dubbo-comsumer 和 dubbo-provider 的pom.xml 依賴和application.yml 配置
        • 四、dubbo-api 提供UserInfo 和 接口UserService
        • 五、dubbo-provider 提供服務
        • 六、dubbo-consumer 引入的服務
        • 七、運作工程
        • 八、測試

一、工程目錄

Apache Dubbo Zookeeper 內建示例

二、dubbo-comsumer 和 dubbo-provider 的pom.xml 依賴和application.yml 配置

pom.xml

<!--提供接口Api 服務-->
        <dependency>
            <groupId>org.nova.dubbo</groupId>
            <artifactId>dubbo-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
<!--內建dubbo-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
 <!--Zookeeper 用戶端依賴-->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.11</version>
        </dependency>
<!--Zookeeper 依賴-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.5.5</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.2.0</version>
        </dependency>
           

application.yml (如何dubbo-provider和dubbo-comsumer 同時運作在一台伺服器上,server:port: *** 兩者要配置不一樣)

dubbo:
  application:
    name: dubbo-service
  protocol:
    name: dubbo
    port: 20880
  registry:
    address: zookeeper://192.168.1.111:2181
server:
  port: 8085
           

四、dubbo-api 提供UserInfo 和 接口UserService

package org.nova.dubbo.entity;
import lombok.Data;
import java.io.Serializable;

@Data
public class UserInfo implements Serializable {
    private String account;
    private String password;
}
           
package org.nova.dubbo.io;
import org.nova.dubbo.entity.UserInfo;

public interface UserService {
    UserInfo login(UserInfo info);
}
           

五、dubbo-provider 提供服務

@Service

引用的架包

org.apache.dubbo.config.annotation.Service;

package org.nova.dubbo.service;

import org.apache.dubbo.config.annotation.Service;
import org.nova.dubbo.entity.UserInfo;
import org.nova.dubbo.io.UserService;
import org.springframework.stereotype.Component;

@Component
@Service(interfaceClass = UserService.class)
public class UserServiceImp implements UserService {

    @Override
    public UserInfo login(UserInfo info) {
        UserInfo userInfo = new UserInfo();
        if (info != null) {
            userInfo.setAccount("登陸的賬号:" + info.getAccount());
            userInfo.setPassword("登陸的密碼:" + info.getPassword());
        }
        return userInfo;
    }
}
           

六、dubbo-consumer 引入的服務

@Reference 引用的架包org.apache.dubbo.config.annotation.Reference;

package org.nova.dubbo.dubbocomsumer.controller;

import org.apache.dubbo.config.annotation.Reference;
import org.nova.dubbo.entity.UserInfo;
import org.nova.dubbo.io.UserService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Reference
    public UserService mUserService;

    @RequestMapping("/login")
    public UserInfo login(UserInfo info) {
        return mUserService.login(info);
    }
}
           

七、運作工程

***Application 上添加注解

@EnableDubbo

@SpringBootApplication
@EnableDubbo
public class DubboProviderApplication {

	public static void main(String[] args) {
		SpringApplication.run(DubboProviderApplication.class, args);
	}

}
           
@SpringBootApplication
@EnableDubbo
public class DubboComsumerApplication {

	public static void main(String[] args) {
		SpringApplication.run(DubboComsumerApplication.class, args);
	}

}
           

八、測試

通路

dubbo-consumer

UserController

登陸方法

http://localhost:8085/login?account=adfasdf&password=123456

Apache Dubbo Zookeeper 內建示例
Apache Dubbo Zookeeper 內建示例

本項目代碼位址

繼續閱讀