Dubbo项目搭建
来源:互联网 发布:阿里办公软件 编辑:程序博客网 时间:2024/06/05 19:07
本节我们演示下dubbo项目的搭建,服务端和客户端进行远程通信,通过zookeeper进行注册的实现。
项目结构图
Dubbo-client客户端
Dubbo-host 宿主服务
Dubbo-model实体Model
Dubbo-service服务
Dubbo-service-impl服务实现
项目分为5个模块,客户端使用的时候只需把接口Dubbo-service和Dubbo-model给客户端,进行远程调用model
model层需要实现序列化接口Serializable
package com.dubbo.model;import java.io.Serializable;public class ProductModel implements Serializable {//产品名称private String name;//产品编码private String code;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}}dubbo-service
package com.dubbo.service;import java.util.List;import com.dubbo.model.ProductModel;public interface ProductService {public List<ProductModel> GetAllProcuct();}
dubbo-service-impl
package com.dubbo.service.impl;import java.util.ArrayList;import java.util.List;import com.dubbo.model.ProductModel;import com.dubbo.service.ProductService;public class ProductServiceImpl implements ProductService {public List<ProductModel> GetAllProcuct() {// TODO Auto-generated method stubList<ProductModel> list=new ArrayList<ProductModel>();ProductModel model1=new ProductModel();model1.setCode("001");model1.setName("可口可乐");list.add(model1);ProductModel model2=new ProductModel();model2.setCode("002");model2.setName("百事可乐");list.add(model2);ProductModel model3=new ProductModel();model3.setCode("003");model3.setName("非常可乐");list.add(model3);return list;}}
宿主host
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <!-- 具体的实现bean --> <bean id="productService" class="com.dubbo.service.impl.ProductServiceImpl" /> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="provider" /> <dubbo:monitor protocol= "registry" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" /> <!-- <dubbo:registry address="zookeeper://127.0.0.1:2181" /> --> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.dubbo.service.ProductService" ref="productService" /> </beans>
package com.dubbo.host;import java.io.IOException;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * Hello world! * */public class App { public static void main( String[] args ) { ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); context.start(); System.out.println( "dubbol服务启动" ); try {System.in.read();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} System.out.println("关闭服务"); context.close(); }}
cllient
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="consumer" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" /> <!-- <dubbo:registry address="zookeeper://127.0.0.1:2181" /> --> <!-- <dubbo:monitor protocol= "registry" /> --> <dubbo:reference id="productService" interface="com.dubbo.service.ProductService" /> </beans>
package com.dubbo.client;import java.util.List;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.dubbo.model.ProductModel;import com.dubbo.service.ProductService;/** * Hello world! * */public class App { public static void main( String[] args ) { ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); context.start(); ProductService service = (ProductService) context.getBean("productService"); // List<ProductModel> list =service.GetAllProcuct(); for(ProductModel model:list) { System.out.println(model.getCode()+"--"+model.getName()); } System.out.println( "dubbo调用完成!" ); }}
代码下载
http://download.csdn.net/detail/zx13525079024/9601687
0 0
- Dubbo项目搭建
- dubbo测试项目搭建
- zookeeper+dubbo分布式项目搭建
- dubbo+zookeeper 分布式项目搭建
- dubbo+zookeeper 分布式项目搭建
- 基于dubbo + maven 的项目搭建
- 基于dubbo + maven 的项目搭建
- 基于dubbo + maven 的项目搭建
- Dubbo项目搭建(简单部署)
- 一个简单的dubbo项目搭建案例
- SpringBoot+Dubbo分布式SOA项目骨架搭建
- Dubbo项目搭建和Dubbo-admin管理平台和Zookper注册中心搭建
- dubbo搭建
- 基于maven+dubbo+spring+zookeeper的简单项目搭建
- dubbo分布式项目开发____Zookeeper搭建步骤和配置思路
- maven项目搭建dubbo的消费者和生产者
- 使用spring boot搭建与dubbo整合项目
- dubbo-如何搭建maven项目,并实现Dubbo分布式服务管理
- poj 1698
- Android源码编译---Nexus 设备驱动
- 如何修改Android系统的默认亮度
- 什么是Web App、Hybrid App、 Native App以及区别,当前主流移动和应用程序类型
- 获取session用户信息
- Dubbo项目搭建
- pgAdmin远程连接阿里云主机的PostgreSQL-9.5
- java异常处理
- HDU 1176 免费馅饼 最详细的解答(对于dp新手来说非常好的题目)
- C语言连接MySQL数据库实例
- JAVA的单例模式(用java写一个singleton的例子)。
- codeup100000578B-DayofWeek
- 筹备一个开源项目:opencam,仿照openwrt。
- MySQL常见问题总结