用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 的项目,展示部署的整个流程,具体的操作可以参看这里. 新浪云服务器除了可以搭建自己的网站以外,也非常的适合作为微信公 ...
随机推荐
- A Tour of Go Exercise: Images
Remember the picture generator you wrote earlier? Let's write another one, but this time it will ret ...
- soliworks三维机柜布局(二)创建设备位置
首先声明对三维机柜布局来说,此步骤不是必须的.(创建solidworks装配体文件时,若是创建了位置就可以选择是否为每个位置创建一个装配体,没有创建位置的话只能选择创建整个工程的装配体文件) 在菜单栏 ...
- 基于UDP协议的多路广播地址
因为多路广播地址的范围是224.0.0.0 到239.255.255.255之间,所以我们可以从中取一个地址给我们的程序用即可
- 远程测试mysql数据库3306端口报错
错误现象:[root@localhost ~]# telnet 192.168.10.130 3306Trying 192.168.10.130...Connected to 192.168.10.1 ...
- light oj 1078 - Integer Divisibility
1078 - Integer Divisibility PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...
- Bugs及解决方案列表
Bugs及解决方案列表(以下实例默认运行环境都为Standard mode): 如何在IE6及更早浏览器中定义小高度的容器? 方法: #test{overflow:hidden;height:1px; ...
- 软交换和IMS是什么关系
软交换是一种功能实体,为下一代网络NGN提供具有实时性要求的业务的呼叫控制和连接控制功能,是下一代网络呼叫与控制的核心. 简单地看,软交换是实现传统程控交换机的"呼叫控制"功能的实 ...
- C++学习笔记(一):头文件和源文件
说明: 当一个源文件(a.cpp)要调用另一个源文件(b.cpp)定义的方法时,需要在a.cpp中写上这个方法的声明(只需要该方法的名称.返回值和参数,类似Java的接口): 如果每次调用其他文件的方 ...
- 【转】数据库中的join
转自:http://coolshell.cn/articles/3463.html 对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有 ...
- pomelo 服务器开发常用术语
gate服务器 一个应用的gate服务器,一般不参与rpc调用,也就是说其配置项里可以没有port字段,仅仅有clientPort字段,它的作用是做前端的负载均衡.客户端往往首先向gate服务器发出请 ...