Dubbo的简单搭建实例

Dubbo

首先Dubbo采用RPC模式进行远程网络通信,是以一个通信中心作为中间管理者的身份来通知各个模块的运行,以该图为例子

Dubbo的简单搭建实例_第1张图片

注册中心可以采用zookeeper来作为中心,安装zookeeper,使用windows/linux均可,学习中我采用的windows搭建的zookeeper

zookeeper下载路径 :http://archive.apache.org/dist/zookeeper/

安装完成后找到zookeeper的bin目录下启动zookeeper的服务器

Dubbo的简单搭建实例_第2张图片

如果出现了错误,那么我们需要去到zookeeper的conf目录下复制一份名为zoo_sample.cfg的文件,改名为zoo.cfg,然后查看其中的端口号是否是2181,改完成后启动zKservice.cmd。

这里就不做对监控器的说明,下载监控器可以到dubbo的github上下载源码并对其打成jar包运行。

接着对着官网上的配置一步一步来

首先使用maven创建三个项目

提供公共接口以及公共bean的maven工程

Dubbo的简单搭建实例_第3张图片

bean文件

public class UserAddress implements Serializable {
	
	private Integer id;
    private String userAddress; //用户地址
    private String userId; //用户id
    private String consignee; //收货人
    private String phoneNum; //电话号码
    private String isDefault; //是否为默认地址    Y-是     N-否
    
    public UserAddress() {
		super();
		// TODO Auto-generated constructor stub
	}
    
	public UserAddress(Integer id, String userAddress, String userId, String consignee, String phoneNum,
			String isDefault) {
		super();
		this.id = id;
		this.userAddress = userAddress;
		this.userId = userId;
		this.consignee = consignee;
		this.phoneNum = phoneNum;
		this.isDefault = isDefault;
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUserAddress() {
		return userAddress;
	}
	public void setUserAddress(String userAddress) {
		this.userAddress = userAddress;
	}
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getConsignee() {
		return consignee;
	}
	public void setConsignee(String consignee) {
		this.consignee = consignee;
	}
	public String getPhoneNum() {
		return phoneNum;
	}
	public void setPhoneNum(String phoneNum) {
		this.phoneNum = phoneNum;
	}
	public String getIsDefault() {
		return isDefault;
	}
	public void setIsDefault(String isDefault) {
		this.isDefault = isDefault;
	}
    

接口文件UserService

public interface OrderService {
	
	/**
	 * 初始化订单
	 * @param userId
	 */
	public List initOrder(String userId);

}

接口文件OrderService

public interface OrderService {
	
	/**
	 * 初始化订单
	 * @param userId
	 */
	public List initOrder(String userId);

}

提供生产者的maven工程

实现接口的文档

public class UserServiceImpl implements UserService {

	
	public List getUserAddressList(String userId) {
		System.out.println("UserServiceImpl.....old...");
		// TODO Auto-generated method stub
		UserAddress address1 = new UserAddress(1, "北京市昌平区宏福科技园综合楼3层", "1", "李老师", "010-56253825", "Y");
		UserAddress address2 = new UserAddress(2, "深圳市宝安区西部硅谷大厦B座3层(深圳分校)", "1", "王老师", "010-56253825", "N");
		/*try {
			Thread.sleep(4000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}*/
		return Arrays.asList(address1,address2);
	}

	
}

提供消费者的maven工程

接口文档

@Service
public class OrderServiceImpl implements OrderService {
	//注入配置中的暴露接口
	@Autowired
	UserService userService;
	public List initOrder(String userId) {
		System.out.println("用户id:"+userId);
		//1、查询用户的收货地址
		List addressList = userService.getUserAddressList(userId);
		for (UserAddress userAddress : addressList) {
			System.out.println(userAddress.getUserAddress());
		}
		return addressList;
	}

}

 然后把消费者工程项目和生产者工程项目去引用接口工程项目

消费者工程和生产者工程两个pom文件引入的一模一样就行

	  
	  		
	  			com.atguigu.gmall
	  			gmall-interface
	  			0.0.1-SNAPSHOT
	  		
	  	
		
		
			com.alibaba
			dubbo
			2.6.2
		
		
		
			org.apache.curator
			curator-framework
			2.12.0
		
	  	

以下是配置xml

 

配置生产者

配置对外暴露服务的xml文件



		
		 
		
		
		
		
		
					

紧接着启动dubbo,按照官网上写的方式,变成阻塞

Dubbo的简单搭建实例_第4张图片

启动成功后,登录admin监控者查看

Dubbo的简单搭建实例_第5张图片

提供者已经发布成功!

 

配置消费者



    
    
   	
    
    
    
    
    

启动主方法

Dubbo的简单搭建实例_第6张图片

消费者也成功调用

 

查看监控器

Dubbo的简单搭建实例_第7张图片

以上就是dubbo的简单实例,不是很详细,我也是刚刚接触dubbo。

也可以参考一下这个视频教程https://www.bilibili.com/video/av30612478?from=search&seid=12968075294494126732 进行详细的学习,有更好的我们也可以一起讨论。

 

 

你可能感兴趣的:(java框架)