听说微服务很火,貌似我也正在用,给有需要的同学介绍一下dubbo的搭建吧。

首先声明这篇文章将介绍以下模块:
1. zookeeper搭建
2. dubbo+springmvc+mybatis demo(主要介绍dubbo)

源码地址会在本文最后提供,可直接运行!

zookeeper搭建

从http://www.apache.org/dist//zookeeper/stable/zookeeper-3.4.7.tar.gz下载压缩包,解压到自己想要安装的目录即可(不需要安装)。
1. 进入安装目录E:\software\tools\zookeeper-3.4.9\conf,将zoo_sample.cfg文件拷贝一份并命名为zoo.cfg
2. 将zoo.cfg文件内容修改成:(主要改数据和日志的本地存储目录)

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=E:\\zookeeper-3.4.7\\data
dataLogDir=E:\\zookeeper-3.4.7\\log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
  1. 运行E:\software\tools\zookeeper-3.4.9\conf\bin目录下的zkServer.cmd文件,显示如下信息则配置成功。

dubbo+springmvc+mybatis

生产者代码配置

服务生产者类UserFacade

package com.lvba.customer.user.facade;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.lvba.customer.user.api.IUserFacade;
import com.lvba.customer.user.dto.UserDTO;
import com.lvba.customer.user.service.inter.IUserService;@Component
public class UserFacade implements IUserFacade{@AutowiredIUserService userService;public UserDTO geUserDTOByKey(Long id) {return userService.getUserDTOByKey(id);}}

用spring配置声明暴露服务

<?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:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.4.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><import resource="classpath:/META-INF/spring/application.xml" /><dubbo:application name="demotest-consumer" owner="programmer" organization="dubbox"/> <!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper--><dubbo:registry address="zookeeper://localhost:2181"/>   <!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20880" /><context:component-scan base-package="com.lvba.customer;"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan><dubbo:service ref="userFacade" interface="com.lvba.customer.user.api.IUserFacade" version="1.0"  /></beans>

服务启动类LanchProvider

package com.lvba.customer.dubbo.launch;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class LanchProvider {public static void main(String[] args) throws IOException {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:META-INF/spring/*.xml");context.start();System.out.println("服务已经启动...");System.in.read();}
}

消费者代码配置

服务接口IUserFacade

package com.lvba.customer.user.api;import com.lvba.customer.user.dto.UserDTO;public interface IUserFacade {public UserDTO geUserDTOByKey(Long id);
}

Spring配置引用远程服务

<?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.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><dubbo:application name="demotest-consumer" owner="programmer" organization="dubbox"/> <!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper--><dubbo:registry address="zookeeper://localhost:2181"/>   <dubbo:reference interface="com.lvba.customer.user.api.IUserFacade" version="1.0" id="userFacade" /></beans>

服务调用方UserController

package com.lvba.customer.user.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import com.lvba.customer.user.api.IUserFacade;
import com.lvba.customer.user.dto.UserDTO;@Controller
@RequestMapping("/user")
public class UserController {@AutowiredIUserFacade userFacade;/*** @return*/@RequestMapping("/getUser")public ModelAndView getUser(){ModelAndView mv = new ModelAndView("user");UserDTO userDTO = userFacade.geUserDTOByKey(1L);mv.addObject("user", userDTO);mv.addObject("cc", "xxxx");return mv;}
}

验证

Java启动LanchProvider类,出现如下提示则表明服务注册成功:

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
服务已经启动...

jetty(或tomcat)启动lvba-web工程,在浏览器上访问http://localhost:8091/user/getUser,得到如下界面则表示消费者成功访问服务端。

关于maven引入dubbo时要注意spring版本兼容问题

 <dependency><groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion></exclusions></dependency>

源码地址:https://github.com/MAXAmbitious/lvba
这个demo是我之前搭建用于一个项目的枪版,有问题欢迎一起探讨!

windows环境dubbo搭建手册相关推荐

  1. windows环境下搭建rabbitMQ开发环境

    2019独角兽企业重金招聘Python工程师标准>>> windows环境下搭建rabbitMQ开发环境 1.下载与安装 erlang rabbitmq 是使用erlang语言开发的 ...

  2. 在Windows环境下搭建Android开发环境

    标题:在Windows环境下搭建 Android 开发环境 作者:CrazyPebble 时间:2011年2月28日 声明:此文在参考其他网上资料以及笔者实践总结写下,一来自己可以做一些总结,二来给跟 ...

  3. Apache Nifi在Windows环境下搭建伪群集及证书登录

    代码地址如下: http://www.demodashi.com/demo/11986.html 前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题 ...

  4. 第二课 如何在WINDOWS环境下搭建以太坊开发环境

    [本文目标] 根据本文指导,可以在WINDOUWS环境下完成以太坊智能合约部署前的比较环境准备. [技术收获] 如何在WINDOW(笔者以WINDOWS 10为例)环境搭建以太坊开发环境,按照以下安装 ...

  5. Windows 环境下搭建VTS

    VTS windows 环境下搭建 测试vts 需要可以访问谷歌网站, 工具: Python2.7  (Python3 无法配置成功,配置时会报各种错误) Windows 7 JDK  版本1.8以上 ...

  6. Windows环境下搭建nginx文件下载服务器

    这里 https://zhangphil.blog.csdn.net/article/details/122377041https://zhangphil.blog.csdn.net/article/ ...

  7. Windows环境下搭建Shell环境

    有的时候在Windows环境我们在学习新知识的时候,需要linux操作环境,但又不想花钱买云服务,这个时候可以采用以下方法,简单快速高效的搭建好环境.然后就可以愉快的在终端用各种shell命令写脚本了 ...

  8. win10自带sftp服务器_FreeSSHD在Windows环境下搭建SFTP服务器

    0 建议现在Windows环境下安装cygwin,否则在Windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 2 安装 傻瓜式一键安装 安装过程中会提示"提 ...

  9. MVE(Multi-View Enviroment)windows环境快速搭建

    MVE在windows上进行搭建,要下载依赖库,需要一个个的编译非常麻烦.本文找到一种较快的方法进行编译. libjpeg (for MVE, http://www.ijg.org/)  libpng ...

最新文章

  1. 区块链开发公司能做什么?对企业未来市场有何帮助?
  2. 网站描述怎么写?对网站优化有什么作用?
  3. 你以为 CSS 只是个简单的布局?装逼指南了解一下
  4. base target=_self/IE6、IE7 用法(转)
  5. 【POJ-3259】 Wormholes(判负环,spfa算法)
  6. vant部署_vant ui rem配置流程
  7. java读取打包时间_Java获取响应的日期时间,这样写是否合理?
  8. 你们都在吐槽的华为“浴霸”被这三家拿去用了...
  9. “要从中学开始普及人工智能教育,但不能增加学生负担”
  10. 剑指offer面试题31. 栈的压入、弹出序列(链表)
  11. 服务器应用越狱修复,iOS 11.2-11.3.1越狱问题汇总 iOS 11.2-11.3.1越狱错误及修复教程...
  12. 微信小程序参数二维码生成朋友圈分享图片
  13. 乔布斯的简历17.4万拍卖,HR看了想打人
  14. Linux 性能分析命令详解
  15. 银川二中2021高考模拟考试成绩查询,银川市第二中学2020—2021年第一学期高一月考成绩分享会...
  16. 企业路由器配置L2TP 站点到站点模式Virtual Private Network指南_3(外网访问内网资源)
  17. 无线电能传输 wpt 磁耦合谐振 过零检测 基于二极管整流的无线电能传输设计 基于同步整流的无线电能传输设计
  18. 扩增子测序 查找引物是否去除
  19. 介绍Namada:链间资产不可知(Asset-agnostic)隐私
  20. 惠普电脑为什么打不开计算机刷题,如果无法打开HP笔记本计算机的无线开关该怎么办?惠普ProBook 4411s...

热门文章

  1. mysql将部分表名统一转换为大写
  2. 安装工程造价课程设计_电气安装工程造价 课程设计
  3. Delphi xe5如何使用Bluestacks模拟器。
  4. python并行编程篇
  5. 异度之刃 Xenoblade 后感
  6. 编写一个程序根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角三角形
  7. AGM(遨格芯微)FPGA:AG10KL144 及 AG10KL144H转换注意事项
  8. tomcat无法访问8080解决方法
  9. PAT乙级卡拉兹(Callatz)猜想
  10. 微信小程序开发工具快捷键 以及常用的调试页面介绍