(阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 源码下载  http://download.csdn.net/download/knight_black_bob/9439432    windows zookeeper 下载地址 http://mirrors.

源码下载  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捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
1月前
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
53 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
29天前
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
19 4
|
1月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
88 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
3月前
|
XML Java 数据格式
Spring Cloud全解析:注册中心之zookeeper注册中心
使用ZooKeeper作为Spring Cloud的注册中心无需单独部署服务器,直接利用ZooKeeper服务端功能。项目通过`spring-cloud-starter-zookeeper-discovery`依赖实现服务注册与发现。配置文件指定连接地址,如`localhost:2181`。启动应用后,服务自动注册到ZooKeeper的`/services`路径下,形成临时节点,包含服务实例信息。
318 3
|
4月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
115 3
|
3月前
|
Java Spring
【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
|
3月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
101 0
|
5月前
|
Dubbo Java 应用服务中间件
Spring Boot 调用 Dubbo 接口与编写 Dubbo 接口实战
Spring Boot 调用 Dubbo 接口与编写 Dubbo 接口实战
649 1
|
4月前
|
存储 Java Spring
使用Spring Boot和Zookeeper实现服务协调
使用Spring Boot和Zookeeper实现服务协调
下一篇
无影云桌面