用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");

    }

}
时间: 2024-10-25 07:28:00

用dubbo+zookeeper+spring搭建一个简单的http接口程序的相关文章

dubbo+zookeeper+spring搭建框架

头忽然要弄RPC,好吧,那就弄吧,看了几天视频文档总算搭好了,记录下. spring就不用说了,在src.main.resources下弄个spring文件夹,在web.xml中放入消费方,提供方等配置xml <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:/spring/spring-*.xml </param-value&

python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序

socket介绍: socket(简称套接字),是进程间通讯的一个工具,他能实现把数据从一方传输到另一方,完成不同电脑上进程之间的通讯,它好比数据的搬运工.socket应用:不夸张来说,只要跟网络相关的应用程序或者软件都使用到了socket, 比如:微信,qq等使用socket创建udp网络程序的流程:1,创建客户端套接字2,发送/接收数据3,关闭套接字使用程序展现流程 :(使用的 ide为pycharm):1,首先创建socket,在 Python 中 使用socket 模块的函数 socke

《SpringBoot+Dubbo+Zookeeper整合搭建简单的分布式应用》

为什么要使用分布式系统? 容错 减少延迟/提高性能 可用性 负载均衡 总而言之,其实目的只有一个,"用户体验". 什么是分布式系统? 分布式系统是由使用分发中间件连接的自治计算机组成的网络.它们有助于共享不同的资源和功能,为用户提供单一且集成的连贯网络. 搭建一个简单的分布式系统一.在服务器(虚拟机)上安装Zookeeper(我这里使用Docker安装) (一).去docker-cn.com获取镜像加速地址 (二).使用docker pull registry.docker-cn.co

使用idea搭建一个简单的SSM框架:(3)配置spring+mybatis

在此之前请先查看: 使用idea搭建一个简单的SSM框架:(1)使用idea创建maven项目 使用idea搭建一个简单的SSM框架:(2)配置springMVC 1 配置spring和mybatis整合文件 spring和mybatis整合分为三个步骤:(1)配置数据库,(2)配置SqlSessionFactoryBean (来自mybatis-spring),(3)配置MapperScannerConfigurer,该配置就我们通过接口定义的方法,就是mybatis的xml对应的namesp

使用新浪云 Java 环境搭建一个简单的微信处理后台

前一段时间,写了一篇在新浪云上搭建自己的网站的教程,通过简单构建了一个 maven 的项目,展示部署的整个流程,具体的操作可以参看这里. 新浪云服务器除了可以搭建自己的网站以外,也非常的适合作为微信公众号回调地址来使用(熟悉微信公众号开发的朋友可能已经了解了,如果不太清楚请参看微信公众平台),微信公众号的开发需要一个公网可以访问的服务器,用于处理消息的 token 的验证,以及自身业务的定制开发.在这里,写了一些简单操作的例子,给大家参考. 准备 开发微信公众号首先要申请自己的公众号,或者获得相

用nodejs搭建一个简单的服务器

使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安装成功 [常用命令] 切换盘符 d:进入文件夹 cd nodejs返回上一级目录 cd..清屏 cls展示目录 dir复制文件名 选中右键--复制历史操作 上箭头 执行文件 node 文件名(在文件文件夹目录中)停止命令行 ctrl+c nodejs可以使用的ECMAScript.读写文件.数据库操

学生成绩管理后台第二项任务:初步建模,搭建一个简单的网站

负责人:程琳茹 合伙人:李玉婷 签约员工:闫玉荣 前言:学生成绩管理后台,看起来是一个简单的项目,但是对于我们今后的发展很重要,建设一个管理后台有很多方法,这里我们主要使用Rstudio,在之后的文章中,会详细给出我们小组完成项目的过程与遇到的问题,欢迎大家借鉴,此外,同学们要积极参与讨论. 项目步骤:1.熟悉与安装Rstudio,并且配置好R内部环境. 2.建立好文件所存放的位置与确保文档可以正常使用. 3.搭建一个简单的网站,分别分为server.R端口与ui.R端口. 4.搭建好网站后,插

使用 Nodejs 搭建一个简单的Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.

node搭建一个简单的服务器

搭建一个简单的服务器 1 引入http模块 两个参数 req: request 请求 res: responese 响应 module require('mod1') node_modules 文件 require('./mode1') 发布自己的模块 去 npmjs.com 去注册一个账户 在控制台中 npm login username password email npm init npm publish cnpm install express const express = requi