`
xiaoyao8903
  • 浏览: 22372 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

maven+springmvc+dubbozookeeper

 
阅读更多

为什么要用dubbo?

还是让官方来解释吧:

http://dubbo.io/User+Guide-zh.htm http://dubbo.io/

一般 nginx+tomcat

| ----> Controller1--------->service1

请求----->nginx |

|----->Controller2--------->service2

请求进了Controller 就只有一条路可以走了

使用dubbo后

| ------->service1

请求------>Controller----> |

|---------->service2

简单的说 也就是 一个Contoller 我可以部署多个 service 。

一般的mvc项目 包含 Controller、Servicei、ServiceImpl、dao三层

使用doubbo我们可以把项目拆分:

Controller 作为 “消费着” 一个项目

ServiceImpl +dao 作为 “提供者” 一个项目

Servicei “接口” 可以作为一个项目

我们可以部署多个“提供着”。。。。。。。。。。。。。。。。。。。

Zookeeper作为Dubbo服务的注册中心,Dubbo原先基于数据库的注册中心,没采用Zookeeper,Zookeeper一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心,Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据,以及订阅请求。我们先在linux上安装Zookeeper,我们安装最简单的单点

Windons 安装Zookeeper

1,Zookeeper 官网下载windons 版本,(不会下载百度)

单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如

maven+springmvc+dubbozookeeper

打开目录机构为:

maven+springmvc+dubbozookeeper

Zookeeper 的启动脚本在 bin 目录下,Windows 下的启动脚本是 zkServer.cmd。

在你执行启动脚本之前,还有几个基本的配置项需要配置一下,Zookeeper 的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是将 zoo_sample.cfg 改名为 zoo.cfg,因为 Zookeeper 在启动时会找这个文件作为默认配置文件。下面详细介绍一下,这个配置文件中各个配置项的意义。

maven+springmvc+dubbozookeeper

打开以后

# 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.

dataDir=/tmp/zookeeper

# the port at which the clients will connect

clientPort=2181

  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

  • dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

  • clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

二.dubbo-admin。 dubbo管控台的安装

下载地址 http://dubbo.io/Download-zh.htm

maven+springmvc+dubbozookeeper

下载 dubbo-admin-2.5.3.war

解压之后:

maven+springmvc+dubbozookeeper

修改 META-INF/dubbo.properties文件

dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.admin.root.password=root

dubbo.admin.guest.password=guest

address:zookeeper 的ip地址 后面是端口号 ,和zookeeper中配置的端口号一样

修改完成后需要一个tomcat 打开tomcat \webapps\ROOT 目录 ,此目录放置的是tomcat的首页,删除所有的文件,将解压后修改好的所有的dubbo-admin 里的文件复制到 \webapps\ROOT中,

此时我们已经配置好了。现在可以启动tomcat了 (主意:在启动tomcat之前要先启动zookeeper ,启动zookeeper前面有介绍)。 启动tomcat之后 在浏览器输入 http://localhost:8080 (我的是8083) 进入dubbo管控台的主页

maven+springmvc+dubbozookeeper

用户名和密码就是dubbo.properties 中配置的 默认的是 用户名 :root, 密码:root

输入用户名和密码之后 进入首页

maven+springmvc+dubbozookeeper

当然现在还没有 消费者 和 提供者

现在我们来开发 消费者 和 提供者

配置 好 zookeeper之后 搭建 maven+springmvc+dubbo环境

新建3个maven项目

maven+springmvc+dubbozookeeper

1,test-dubbo-provider ,java项目,作为提供者,serviceImpl 和dao 层

2,test-public-interface ,java项目,存放公共的接口 ,servicei 是service的接口 (备注:1要依赖2, 3也要依赖2)

3,test-web-consumer,web项目,存放 Controller 和 页面

首先我们来开发 服务的提供者也就是 test-dubbo-provider ,目录结构为

maven+springmvc+dubbozookeeper

ApplicationContent-dubbo.xml dubbo服务的配置文件(名字随意) (待会再介绍)

ApplicationContent.xml spring的配置文件

这两个配置文件 必须要放到 MATE-INF/spring/下面 (原因后面再说)

UserServiceImpl.java 借口的实现类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
packagecom.cl.user.serviceImpl;
importorg.springframework.stereotype.Service;
importcom.cl.user.servicei.UserService;
@Service("userService")
publicclassUserServiceImplimplementsUserService{
@Override
publicString sayHello() {
System.out.println("hello world----------------------------");
return"hello world";
}
}

有了 实现类 还需要接口 也就是项目test-public-interface

maven+springmvc+dubbozookeeper

这个项目很简单 只需要 接口 就行了

1
2
3
4
5
6
packagecom.cl.user.servicei;
publicinterfaceUserService {
publicString sayHello();
}

当然 项目 1 要 依赖 项目 2

所以在1 的 pom.xml 中 有

maven+springmvc+dubbozookeeper

1 <dependency>2 <groupId>test-web</groupId>3 <artifactId>test-pubilc-interface</artifactId> 加入项目2依赖4 <version>0.0.1-SNAPSHOT</version>5 <scope>test</scope>6 </dependency>

maven+springmvc+dubbozookeeper

那么 1 中的 UserServiceImpl 就可以实现 UserService接口

当然我们用到 dubbo 就要有dubbo的核心jar包 所以在1 的 pom.xml 中 有

1 <dependency>2 <groupId>com.alibaba</groupId> 3 <artifactId>dubbo</artifactId>4 <version>2.5.3</version>5 </dependency>

还要有 zookeeper的 所以在1 的 pom.xml 中 有

1 <dependency>2 <groupId>org.apache.zookeeper</groupId>3 <artifactId>zookeeper</artifactId>4 <version>3.3.3</version>5 </dependency>

下面介绍一下项目1 中 的 ApplicationContent-dubbo.xml 和 ApplicationContent.xml

ApplicationContent.xml 主要是spring的配置 不多说。

1 <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->2 <context:component-scan base-package="com.cl.user.serviceImpl"/>

ApplicationContent-dubbo.xml dubbo服务的配置

maven+springmvc+dubbozookeeper

1 <!-- 提供方应用信息,用于计算依赖关系 --> 2 <dubbo:application name="hehe_provider" /> 3 <!-- 使用zookeeper注册中心暴露服务地址 端口是zookeeper 中配置的2181--> 4 <dubbo:registry address="zookeeper://127.0.0.1:2181"/> 5 <!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> --> 6 <!-- 用dubbo协议在20880端口暴露服务 --> 7 <dubbo:protocol name="dubbo" port="20880" /> 8 <!-- 具体的实现bean --> 9 <bean id="userService" class="com.cl.user.serviceImpl.UserServiceImpl" />10 <!-- 声明需要暴露的服务接口 -->11 <dubbo:service interface="com.cl.user.servicei.UserService" ref="userService" />

maven+springmvc+dubbozookeeper

主意:有可能你的配置文件中不识别 <dubbo:> 去网上找解决的办法

到这里我们的 “提供者” 即 服务 已经开发完了,那么如何启动服务呢? 在项目1中有个start.java

maven+springmvc+dubbozookeeper

maven+springmvc+dubbozookeeper

1 package com.test; 2 3 import org.apache.log4j.PropertyConfigurator; 4 5 public class start { 6 static{

7 PropertyConfigurator.configure("src/main/resources/log4j.properties");

8 }

9 public static void main(String[] args) {10 11 com.alibaba.dubbo.container.Main.main(args);12 }13 }

maven+springmvc+dubbozookeeper

主意里面有main方法,可以直接运行启动了。别急!!! 之前还有个问题就是为什 ApplicationContent-dubbo.xml 和 ApplicationContent.xml 这两个配置文件 必须要放到 /MATE-INF/spring/下面

因为 com.alibaba.dubbo.container.Main.main(args) 默认就会去加载 /MATE-INF/spring/ 下的配置文件

我们来看一下源码

maven+springmvc+dubbozookeeper

看完源码 这下明白为什么了吧!!!!!!!!!!!!!!!!!

启动服务后 我们在 dubbo-admin中就能看到我们刚才开发的的 “提供者”

maven+springmvc+dubbozookeeper

maven+springmvc+dubbozookeeper

192.168.56.1 是本地局域网 地址

这是 “提供者” 此时还没有“消费者” 接下来我们就要开发 “消费者”

分享到:
评论

相关推荐

    maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建

    本项目框架“maven+springMVC+mybatis+velocity+mysql+junit”提供了一种高效、灵活且可维护的解决方案。以下将详细讲解这些组件及其作用。 1. Maven: Maven是一个项目管理工具,用于构建、依赖管理和项目信息...

    maven+springmvc+redis+mybatis整合

    本项目以“maven+springmvc+redis+mybatis整合”为主题,旨在提供一个基于这些技术的集成框架,特别强调了利用Redis作为缓存来提升应用性能。下面将详细阐述这个框架中的各个组成部分以及它们之间的协作。 首先,...

    Maven+SpringMVC的入门级HelloWorld实例

    总结,Maven+SpringMVC的组合为Java Web开发提供了强大的支持,从项目管理到应用构建,再到复杂的业务逻辑处理,它们都扮演着不可或缺的角色。通过这个入门级的HelloWorld实例,我们可以快速理解这两个工具的基本...

    Dubbo 简单的入门【Maven+SpringMVC+Dubbo 】源码

    【标题】:“Dubbo 简单的入门【Maven+SpringMVC+Dubbo 】源码”指的是一个教程项目,旨在引导初学者了解如何将Apache Dubbo整合到Maven管理和SpringMVC框架中,以构建分布式服务。在这个项目中,我们将探讨Dubbo的...

    maven+spring+springMVC+mybatis

    maven+spring+springMVC+mybatis 框架搭建 Maven 是一个优秀的项目管理和构建工具,Spring 是一个广泛使用的 Java 框架,SpringMVC 是基于 Spring 的一个 Web 框架,MyBatis 是一个持久层框架。在这个项目中,我们...

    maven + springmvc 入门实例

    **SpringMVC与Maven入门实例详解** 在Java Web开发中,SpringMVC和Maven是两个非常重要的工具。SpringMVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)架构,用于构建可维护、高性能的Web应用程序。而...

    Maven+springmvc+mybatis+easyui+mysql DEMO

    【Maven+SpringMVC+MyBatis+EasyUI+MySQL DEMO】是一个典型的Java Web项目集成示例,它展示了如何将这些流行的技术框架整合在一起,以构建一个功能丰富的Web应用。下面将详细介绍这些技术及其在项目中的作用。 1. ...

    整合Spring+SpringMVC+Mybatis+Maven+Mysql项目实例

    整合搭建Spring+SpringMVC+Mybatis+Maven+Mysql开发实例

    maven+springMvc+MyBatis Demo

    【标题】"maven+springMvc+MyBatis Demo"是一个综合性的开发示例,它展示了如何将三个关键的Java Web开发框架——Maven、Spring MVC和MyBatis——集成到一个项目中。这个示例旨在帮助开发者理解如何在实际项目中有效...

    Maven+SpringMVC+Mybatis Demo

    【Maven+SpringMVC+Mybatis Demo】是一个典型的Java Web开发示例,它结合了三个流行的开源框架:Maven、SpringMVC和Mybatis,用于构建高效、模块化的Web应用程序。下面将详细介绍这三个框架以及它们如何协同工作。 ...

    基于maven+springmvc+Ueditor,自定义上传图片路径,稳得不行

    单图片上传到本地,编辑框回显, 多图片上传 回显。springmvc整合完成项目 详情 https://blog.csdn.net/m0_37946870/article/details/79913803

    maven+spring+springmvc+hiberante+easyui实现的增删改查

    在本项目中,我们主要探讨的是一个基于"Maven+Spring+SpringMVC+Hibernate+EasyUI"技术栈实现的典型企业级应用系统,主要用于完成基本的CRUD(增删改查)操作。以下是对这些技术及其在项目中的作用的详细说明: 1. ...

    Eclipse+Maven+SpringMVC初体验

    先别下载,可以直接看博文,里面都有贴详细代码。 https://mp.csdn.net/postedit/79952532 Eclipse+Maven+Spring MVC,demo版,测试可以正常运行。

    maven+springMvc+mybatiesDemo

    【标题】"maven+springMvc+mybatiesDemo"是一个综合性的开发示例,它展示了如何使用Maven构建工具,Spring MVC作为控制层框架,以及MyBatis作为持久层框架来开发Java Web应用程序。这个项目的核心是整合这三个组件,...

    maven+springmvc+spring+mybatis

    【标题】"maven+springmvc+spring+mybatis"是一个经典的Java Web开发技术栈,它结合了四个关键组件:Maven(项目管理工具),Spring MVC(MVC框架),Spring(核心框架)以及MyBatis(持久层框架)。这个组合在企业...

    maven+struts2+spring+mybatis+springMVC

    本项目"maven+struts2+spring+mybatis+springMVC"就是一个典型的Java Web应用开发组合,利用了这些框架的优势进行集成,实现了数据持久化、业务逻辑处理、视图展示以及依赖管理等多个层面的功能。 首先,我们来详细...

    maven+spring+springmvc+hibernate项目示例

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+Spring+SpringMVC+Hibernate"是一个常用的技术栈,它整合了多个强大的工具和框架来简化开发流程。下面将详细介绍这个项目示例中涉及的关键知识点。 1...

    eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库

    【标题】"eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库"是一个典型的Java Web开发项目,它涵盖了多个关键的技术栈,包括Eclipse IDE、Maven构建工具、Spring MVC作为MVC框架、Spring核心框架以及...

    Maven+SpringMVC+Spring+Mybatis+Mysql(Oracle)

    Maven+SpringMVC+Spring+Mybatis+Mysql(Oracle)框架整合代码,需要注意的是Maven仓库不提供ojdbc.jar,需要手动添加,mvn install:install-file -DgroupId=...

    使用intellij idea搭建MAVEN+SSM(Spring+SpringMVC+MyBatis

    【标题】:“使用IntelliJ IDEA搭建MAVEN+SSM(Spring+SpringMVC+MyBatis)项目” 【正文】 在Java开发领域,Spring、SpringMVC和MyBatis框架的组合,简称SSM,是构建Web应用程序的常用技术栈。IntelliJ IDEA作为...

Global site tag (gtag.js) - Google Analytics