一、首先要在service工程中添加dubbo依赖。
注意:dubbo需要排除依赖,默认的spring版本是2.x。和现有的冲突。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-manager</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager-service</artifactId> <packaging>war</packaging> ...... ......
<!--省略部分代码--> ...... <!-- dubbo相关 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <!--排除依赖--> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> </dependency> </dependencies> </project>
二、写一个service接口。
public interface ItemService { EasyUIDataGrid getItemList(Integer page, Integer rows); }
三、Service实现类。
@Service public class ItemServiceImpl implements ItemService { @Autowired private TbItemMapper tbItemMapper; @Override public EasyUIDataGrid getItemList(Integer page, Integer rows) { if (null == page || 0 == page) { page = 1; } if (null == rows || 0 == rows) { rows = 30; } //PageHelper设置分页参数 PageHelper.startPage(page, rows); //使用mapper查询 TbItemExample example = new TbItemExample(); List<TbItem> list = tbItemMapper.selectByExample(example); PageInfo<TbItem> pageInfo = new PageInfo<>(list); EasyUIDataGrid result = new EasyUIDataGrid(); result.setTotal((int) pageInfo.getTotal()); result.setRows(pageInfo.getList()); return result; } }
四、spring配置文件中配置dubbo。
name : 自己根据实际情况定义,可以写你当前接口项目名称。
address:zookeeper服务的ip和端口。(需要你提前安装好zookeeper并启动服务)
<!--使用dubbo发布服务--> <!--提供方应用信息,用于计算依赖关系--> <dubbo:application name="taotao-manager"></dubbo:application> <dubbo:registry protocol="zookeeper" address="192.168.1.123:2181"/> <!--用dubbo协议在20880端口暴露服务--> <dubbo:protocol name="dubbo" port="20880"/> <!--声明要暴露的服务接口--> <dubbo:service interface="com.taotao.service.ItemService" ref="itemServiceImpl"/>
五、Controller类。
@Controller public class ItemController { @Autowired private ItemService itemService; @RequestMapping(value = "/item/list", method = RequestMethod.GET) @ResponseBody public EasyUIDataGrid getItemList(Integer page, Integer rows) { EasyUIDataGrid list = itemService.getItemList(page, rows); return list; } }
六、配置springmvc.xml。
timeout单位为毫秒,默认为1秒。300000即接口响应超时不能超过5分钟。
<!--引入dubbo服务--> <dubbo:application name="taotao-manager-web"/> <dubbo:registry protocol="zookeeper" address="192.168.1.123:2181"/> <dubbo:reference interface="com.taotao.service.ItemService" id="itemService" timeout="300000"/>
七、查看前台接口调用。显示成功。
八、dubbo监控中心安装。
1、上传dubbo的war包、和tomcat
2、重命名dubbo的war包为:dubbo-admin.war。mv dubbo-admin-2.5.4.war dubbo-admin.war
3、复制dubbo的war包到tomcat的webapp目录下。cp dubbo-admin.war apache-tomcat-7.0.85/webapps/
4、启动tomcat。bin/startup.sh
5、启动后war包就会自动被解压。修改war下面的dubbo.properties。
address为zookeeper服务的ip和端口,账号和密码。默认为root/guest
6、浏览器中访问dubbo。默认账号密码为root/root。