用dubbo+zookeeper+spring搭建一个简单的http接口程序
dubbo是一个分布式服务框架,是阿里巴巴开发的一个解决RPC远程调用优化的核心框架,包含负载均衡算法,能提高分布式系统的性能。
zookeeper是hadoop的一个子项目,主要用来解决分布式系统的数据一致性、状态同步、服务集群管理、配置同步等一系列的问题。本文使用zookeeper作为dubbo的服务注册中心。
技术细节方面:
dubbo:http://www.dubbo.io
zookeeper:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html
本demo的需求是,有两个功能模块(demo而已嘛):商品、订单。这两个模块分辨要有不同的服务提供者,并且要有不同的注册中心。然后使用一个client来提供http接口,供外部访问。
本demo专注于dubbo+zookeeper的配置,所以一些数据库连接池配置、数据源配置什么的会省略掉。
需要的jar包(如果不访问数据库,mysql那个可以不用,其它一个都不能少,少了就会报错):

首先我们开发商品的服务提供者,在eclipse下新建一个web_server_goods的java project:

然后我们写一个接口OrderQueryService,代码如下:
package com.web.server.service;
import java.util.Map;
public interface OrderQueryService {
public Map<String, Object> queryList(Map<String, Object> params);
}
该接口有一个queryList方法,用于查询订单列表
然后我们再开发一个实现类OrderQueryServiceImpl,这个类实现了OrderQueryService,代码如下:
package com.web.server.service.impl; import java.util.List;
import java.util.Map; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; import com.web.server.service.OrderQueryService;
import com.web.server.util.ServiceUtil; public class OrderQueryServiceImpl implements OrderQueryService { @Autowired
private JdbcTemplate jdbcTemplate; @Override
public Map<String, Object> queryList(Map<String, Object> params) {
String sql = "select * from t_order";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
return ServiceUtil.getServiceResult(list, "success");
}
}
然后我们再建立一个web_server_goods的java project

写一个接口GoodsQueryService,代码如下:
package com.web.server.service;
import java.util.Map;
public interface GoodsQueryService {
public Map<String, Object> queryGoodsList(Map<String, Object> params);
}
该接口有一个queryGoodsList方法,用于查询商品列表
然后再写一个实现类GoodsQueryServiceImpl,实现了GoodsQueryService,代码如下:
package com.web.server.service.impl; import java.util.List;
import java.util.Map; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; import com.web.server.service.GoodsQueryService;
import com.web.server.util.ServiceUtil; public class GoodsQueryServiceImpl implements GoodsQueryService { @Autowired
private JdbcTemplate jdbcTemplate; @Override
public Map<String, Object> queryGoodsList(Map<String, Object> params, int currentPage, int pageSize) { StringBuilder sql = new StringBuilder();
sql.append("select * from t_goods where 1=1 ");
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql.toString());
return ServiceUtil.getServiceResult(list, "success"); } }
妈的太多了,累死个人!懒得写下去了,就这样吧。
用dubbo+zookeeper+spring搭建一个简单的http接口程序的更多相关文章
- VS2013开发一个简单的asmx接口程序
一.开发和调试 1:创建一个ASP.NET web应用程序 2:选择空的模板 3:系统生成项目目录 4:右键项目-添加项-新建项 5:选择Web 服务(ASMX) 6:选择之后项目中会有一个Test ...
- Dubbo+zookeeper+SpringMVC搭建最简单的分布式项目
Dubbo 是什么 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 Dubbo 架构流程图 Provider:服务提供方 Consumer:服务消费者 Registry ...
- [目录]搭建一个简单的WebGIS应用程序
“如果一件事情超过自己的能力,自己很难达到,那就像是婴儿跳高,不但没有好处,反而拔苗助长”. 4月份时报名参加了2018年ESRI杯GIS应用开发比赛,到前几天提交了作品.作品很简单,没有那么多复杂深 ...
- Dubbo入门介绍---搭建一个最简单的Demo框架
Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbozookeeper 更多 个人分类: D ...
- SpringBoot+Dubbo+Zookeeper整合搭建简单的分布式应用
为什么要使用分布式系统? 容错 减少延迟/提高性能 可用性 负载均衡 总而言之,其实目的只有一个,”用户体验“. 什么是分布式系统? 分布式系统是由使用分发中间件连接的自治计算机组成的网络.它们有助于 ...
- 超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务
来自:JavaGuide Github 地址:https://github.com/Snailclimb/springboot-integration-examples 目录: 使用 SpringBo ...
- 使用 SpringBoot+Dubbo 搭建一个简单分布式服务
实战之前,先来看几个重要的概念 开始实战之前,我们先来简单的了解一下这样几个概念:Dubbo.RPC.分布式.由于本文的目的是带大家使用SpringBoot+Dubbo 搭建一个简单的分布式服务,所以 ...
- springboot搭建一个简单的websocket的实时推送应用
说一下实用springboot搭建一个简单的websocket 的实时推送应用 websocket是什么 WebSocket是一种在单个TCP连接上进行全双工通信的协议 我们以前用的http协议只能单 ...
- 使用新浪云 Java 环境搭建一个简单的微信处理后台
前一段时间,写了一篇在新浪云上搭建自己的网站的教程,通过简单构建了一个 maven 的项目,展示部署的整个流程,具体的操作可以参看这里. 新浪云服务器除了可以搭建自己的网站以外,也非常的适合作为微信公 ...
随机推荐
- Java SAX DefaultHandler
The org.xml.sax.helpers.DefaultHandler class is the base class for "listeners" in SAX 2.0. ...
- 第九章、文件与文件系统的压缩与打包 Linux 系统常见的压缩命令
Linux 系统常见的压缩命令: 在Linux中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』 Linux 支持的压缩命令非常多,且不同 ...
- 射频识别技术漫谈(7)——ID卡【worldsing笔记】
ID(Identification)是识别的意思,ID卡就是识别卡.ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡. 射频ID卡 ...
- 委托、匿名函数、Lambda表达式和事件的学习
委托: 还记得C++里的函数指针么?大家可以点击这里查看一下以前的笔记.C#的委托和C++中的函数指针效果一致. 当我们需要将函数作为对象进行传递和使用时就需要用到委托. 下面我们看一个例子: usi ...
- mac下8080端口到80端口的转发
MAC OS 本质上还是 Unix 系统, Unix 系统大多默认情况下非root用户是无法使用小于1024的常用端口的.这时候如果你开发中需要在普通用户下用到80端口, 比如 tomcat, 比如 ...
- asp.net中application,cookies,stateview,session的使用
Cookie Cookie的用法也和ASP中差不多.比如我们建立一个名为aspcn,值为飞刀的cookie HttpCookie cookie = new HttpCookie["aspcn ...
- ThindPad x230 无法U盘启动
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- CAS总结之Ticket篇
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
(14)Review what client scripts you are using 招数14: 检查你使用了什么客户端脚本 Out of the box, many ASP.NET projec ...
- xps13 关机充电 右边的usb口
bios里设置了 usb powershare但关机的时候还是不能充电 度娘了一下,发现不解决问题,只能放狗了.果然谷歌里搜到答案,是windows的电源策略. I figured it out. A ...