源码下载 http://download.csdn.net/download/knight_black_bob/9439432
windows zookeeper 下载地址 http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.6/ 修改zookeeper配置文件zoo-example.cfg改为zoo.cfg,zookeeper默认寻找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=/tmp/zookeeper dataDir=F:\\log\\zookeeper\\data dataLogDir=F:\\log\\zookeeper\\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 启动zookeeper Window下命令:进入bin目录 ->zkServer.cmd
配置 <dubbo:registry id="zk1" address="quickstart.cloudera:2181" protocol="zookeeper" />
测试成功
,provider 发布 后 ,linux 下 zookeeper path 会增加。 zookeeper 起到 注册中心,服务发现的作用
consumer 测试结果:
provider 发布,(这是一种发布方式)
applictionContext-dubbo-provider.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 提供方应用名称信息,这个相当于起一个名字,我们dubbo管理页面比较清晰是哪个应用暴露出来的 --> <dubbo:application name="curiousby-dubbo-provider"/> <!-- 提供方应用名称信息,这个相当于起一个名字,我们dubbo管理页面比较清晰是哪个应用暴露出来的 --> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry id="zk1" address="192.168.16.21:2181,192.168.16.29:2181,192.168.16.30:2181" protocol="zookeeper" /> <!-- 使用multicast广播注册中心暴露服务地址 --> <!--<dubbo:registry address="multicast://224.5.6.7:1234" /> --> <!-- 用dubbo协议在20886端口暴露服务 --> <dubbo:protocol id="mydubbo" name="dubbo" port="20886" /> <dubbo:provider registry="zk1" protocol="mydubbo"/> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.baoy.service.UserService" ref="userServiceImpl" /> </beans>
applictionContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:oscache="http://www.springmodules.org/schema/oscache" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springmodules.org/schema/oscache http://www.springmodules.org/schema/cache/springmodules-oscache.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --> <mvc:annotation-driven /> <!-- 扫描包 --> <context:annotation-config /> <!-- import the properties --> <context:property-placeholder location="classpath:jdbc.properties" /> <context:component-scan base-package="com.baoy" /> <!-- 配置數據源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="${jdbc.initialSize}" /> <property name="maxActive" value="${jdbc.maxActive}" /> <property name="maxIdle" value="${jdbc.maxIdle}" /> <property name="minIdle" value="${jdbc.minIdle}" /> </bean> <!-- 配置jdbcTemplate模板 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置 transactionManager事物管理 --> <!-- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> --> <!-- Spring AOP config配置切点 --> <!-- <aop:config> <aop:pointcut expression="execution(* cmcc.picrepository.service.*.*(..))" id="bussinessService" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="bussinessService" /> </aop:config> --> <!-- 配置那个类那个方法用到事务处理 --> <!-- <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="search*" read-only="true" /> <tx:method name="find*" read-only="true" /> <tx:method name="get*" read-only="true" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> --> </beans>
package com.baoy.service; import java.util.List; import com.baoy.bean.User; /** * @author baoyou E-mail:curiousby@163.com * @version 2016年2月22日 上午10:24:23 * * desc: ... */ public interface UserService { public List<User> getAllUsers(); public void delUserById(int userId); public User getUserById(int userId); public void updateUser(User user); public void addUser(User user); }
package com.baoy.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.baoy.bean.User; import com.baoy.dao.UserDao; import com.baoy.service.UserService; /** * @author baoyou E-mail:curiousby@163.com * @version 2016年2月22日 上午10:24:54 * * desc: ... */ @Component public class UserServiceImpl implements UserService { @Autowired UserDao userDao; public List<User> getAllUsers() { return userDao.getAllUsers(); } public void delUserById(int userId) { userDao.delUserById(userId); } public User getUserById(int userId) { return userDao.getUserById(userId); } public void updateUser(User user) { userDao.updateUser(user); } public void addUser(User user) { userDao.addUser(user); } }
provider 发布,上面有一种发布方式
package com.baoy.main; import java.io.IOException; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author baoyou E-mail:curiousby@163.com * @version 2016年2月22日 下午4:44:44 * * desc: ... */ public class Start { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "classpath*:META-INF/spring/applictionContext.xml", "classpath*:META-INF/spring/applictionContext-dubbo-provider.xml" }); context.start(); System.in.read(); // 按任意键退出 } }
appliction-dubbo-consumer.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="curiousby-dubbo-consumer"/> <dubbo:registry id="zk1" address="192.168.16.21:2181,192.168.16.29:2181,192.168.16.30:2181" protocol="zookeeper" /> <dubbo:consumer registry="zk1"/> <dubbo:reference id="userService" interface="com.baoy.service.UserService"/> </beans>
appliction.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:oscache="http://www.springmodules.org/schema/oscache" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springmodules.org/schema/oscache http://www.springmodules.org/schema/cache/springmodules-oscache.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <context:annotation-config /> <context:component-scan base-package="com.baoy.test" /> </beans>
package com.baoy.test; import java.util.List; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.baoy.bean.User; import com.baoy.service.UserService; /** * @author baoyou E-mail:curiousby@163.com * @version 2016年2月22日 下午1:48:37 * * desc: ... */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:appliction.xml","classpath:appliction-dubbo-consumer.xml"}) public class ConsumerTest { @Resource UserService userService; @Test public void allUsersTest() { List<User> allUsers = userService.getAllUsers(); System.out.println("\r\n\r\n\r\n"+allUsers.toString()+"\r\n\r\n\r\n"); } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
这个“dubbo+zookeeper+spring -demo”项目是一个典型的分布式系统架构实践,它展示了如何利用Dubbo构建分布式的微服务,通过Zookeeper实现服务的注册与发现,结合Spring简化服务的管理和调用。这样的架构模式在现代...
Dubbo是阿里巴巴开源的一个高性能、轻量级的服务治理框架,它专注于服务调用、服务治理和服务监控。它提供RPC(远程过程调用)能力,使得分布式系统中的服务间可以像调用本地方法一样调用远程服务。 在Spring Dubbo...
【标题】 Dubbo+Zookeeper+Spring整合:一个简单的Demo源码分析 在这个教程中,我们将深入探讨如何将三个关键的开源技术——Dubbo、Zookeeper和Spring——整合在一起,构建一个基本的服务发现和调用的分布式应用。...
【标题】"dubbo+zookeeper+spring demo" 是一个整合了Dubbo、ZooKeeper和Spring框架的示例项目,旨在展示如何在分布式环境中利用这三个技术进行服务发现和服务调用。 【描述】在这个demo中,Dubbo作为服务提供与...
1.修改demo-dubbo-provider项目下的appllication.yml文件,将zookeeper的地址替换成你自己的 2.demo-dubbo-common项目为实体类和dao,作为公共部分被demo-dubbo-consumer和demo-dubbo-provider依赖 3.demo-dubbo-...
这个“springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo”压缩包文件,显然是一个实战示例,旨在帮助开发者理解并实践这些关键组件的集成与使用。下面将详细解析这些组件以及它们在微服务架构...
在IT行业中,分布式服务框架是实现高可用、可扩展系统的关键技术之一,而Dubbo作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,受到了广大开发者的喜爱。Zookeeper则是Apache的一个分布式协调服务,常用于服务...
Dubbo是中国阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,而Zookeeper是Apache的一个分布式协调服务,常用于分布式环境中的配置管理、命名服务、集群同步等。 【描述】提到的" dubbo+zookeeper+springmvc...
首先,Spring Dubbo是一款由阿里巴巴开发的高性能、轻量级的Java RPC框架,它提供了服务治理的一系列功能,包括服务注册、服务发现、负载均衡、容错机制等。而Zookeeper是Apache的一个开源项目,它是一个分布式的,...
这个demo涵盖了分布式服务框架Dubbo、权限管理框架Shiro、Spring、SpringMVC和MyBatis(SSM)以及分布式协调服务Zookeeper的集成应用。 【描述】提到的“dubbo+shiro+ssm框架+zookeeper简单的demo”表明这是一个...
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC框架,它提供了服务注册、服务发现、负载均衡、调用链路监控等关键功能,极大地简化了服务间的通信。Dubbo的核心设计理念是面向接口的编程,使得服务调用像本地...
本项目"Springboot整合Dubbo/ZooKeeper_demo"将展示如何在Spring Boot应用中集成Dubbo和ZooKeeper,实现服务的提供者和服务消费者之间的通信。 首先,Spring Boot是基于Spring框架的快速开发工具,它通过自动配置、...
在本项目"Dubbo + Zookeeper + Spring 注解式开发 demo"中,我们将深入探讨如何使用Dubbo、Zookeeper以及Spring框架进行分布式服务的注解式开发。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了服务发现、...
综上所述,这个"Dubbo+Zookeeper+Spring的demo"提供了一个完整的微服务架构示例,展示了如何利用这三大组件构建一个可扩展、高可用的分布式系统。开发者可以通过解压运行这个项目,深入了解和实践这些技术在实际中的...
首先,Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,它提供了服务注册、服务发现、调用链跟踪、负载均衡等功能,使得分布式系统开发变得更加便捷。Dubbo的核心概念包括服务提供者、服务消费者和注册中心...
Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,它提供了服务注册、发现、调用、监控等一系列功能,旨在提高系统的可扩展性和灵活性。Dubbo的核心组件包括服务提供者、服务消费者、注册中心和监控中心。 ...
2. Dubbo:Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,主要用于实现微服务架构中的服务间调用。它提供了服务注册、服务发现、负载均衡、容错处理等功能。在"DubboDemo"中,我们将看到如何创建服务提供...
Spring MVC + Dubbo + MyBatis + ZooKeeper 这是一个经典的微服务架构组合,用于构建高效、可扩展的分布式系统。下面将详细解释这四个组件及其在实际项目中的作用。 **Spring MVC** Spring MVC 是 Spring 框架的一...
Dubbo是阿里巴巴开源的高性能Java RPC框架,用于实现服务间的通信。它提供服务发现、服务治理、负载均衡等功能,是构建微服务的关键组件。在我们的示例中,Dubbo将被用来定义服务接口,暴露服务,并消费其他服务。 ...
【Dubbo】是阿里巴巴开源的一款高性能、轻量级的Java远程服务调用框架,它提供了服务注册、服务发现、负载均衡、容错机制等一系列功能,使得服务提供者和服务消费者能够高效地进行通信。在本示例中,`dubbo-api`包含...