dubbo+zookeeper+Spring 单机配置步骤---【基础实践篇】

本文介绍了在CentOS系统中,使用JDK 1.7和zookeeper-3.3.6进行Dubbo+zookeeper+Spring的单机配置步骤。涉及zookeeper的安装、启动,以及dubbo服务提供者(dubboProvider)的配置。提醒读者注意XML Schema扩展和添加相关jar包。
摘要由CSDN通过智能技术生成

       本文是在Linux系统下的的dubbo+zookeeper+Spring的单机配置步骤,不对配置过程中各种配置项进行解释。

       环境背景:

  1. 操作系统及开发软件:CentOS 64位、eclipse 4.4.2
  2. JDK版本:1.7
  3. zookeeper版本:zookeeper-3.3.6
  4. dubbo版本:2.5.3
  5. 其他相关说明:项目基于maven管理,共两个,dubboProvider和dubboConsumer。

      首先贴上所需文件的下载地址,也可自行官网下载。大家可以边下载边看本文,节省时间(网速快的同学请无视...)
       zookeeper-3.3.6: http://download.csdn.net/detail/session_l/9738858
       dubbo-admin: http://download.csdn.net/detail/session_l/9738894 dubbo可视化管理工具,需要在web服务器中使用(可选项)

       一、安装和配置zookeeper注册中心,将下载好的zookeeper-3.3.6.tar.gz放在CentOS系统的opt或usr/local文件夹下,使用tar -xzvf zookeeper-3.3.6.tar.gz命令解压,进入zookeeper目录下conf文件夹,修改zoo_sample.cfg为zoo.cfg(为什么官网不直接用zoo.cfg命名?(⊙o⊙)…),暂时先使用默认配置,监听2181端口。至此zookeeper安装已完成;进入zookeeper目录下bin文件夹,执行 ./zkServer.sh 命令,启动zookeeper注册中心服务,可使用 ps -aux | grep 'zookeeper' 命令查看zookeeper服务是否启动成功。确认服务启动成功后,使用命令 ./zkCli.sh –server 自己的ip地址:2181 连接到zookeeper服务,同样可使用ps -aux | grep 'zookeeper' 命令查看是否启动成功。

       二、dubbo的使用(只提供部分代码,希望本文的读者可以自己动手实践一下)

dubboProvider项目(服务提供者):

       1、创建服务接口及接口实现

public interface ProviderService {

String helloWorld();

String sayHello(String name);

}
public class ProviderServiceImpl implements ProviderService {

public String helloWorld() {
    return "hello,World";
}

public String sayHello(String name) {
    return "hello , " + name;
}
}

2、spring配置zookeeper及dubbo等相关配置

<?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-3.0.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- Dubbo基于Spring的Schema扩展加载 -->

	<bean id="providerService" class="dubbotest.provider.ProviderServiceImpl" />

	<dubbo:application name="soar_provider" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
	<dubbo:registry address="zookeeper://192.168.184.130:2181" />

    <!-- 用dubbo协议在20880端口暴露服务 -->  
	<dubbo:protocol name="dubbo" port="20880" />

    <!-- 声明需要暴露的服务接口 --> 
	<dubbo:service interface="dubbotest.provider.ProviderService" ref="providerService" />

</beans>
3、加载spring配置,启动服务。至此提供者工作已完成。
public static void init(String path) {
	// 加载spring
	try (AbstractApplicationContext context = new ClassPathXmlApplicationContext(path);) {
		synchronized (Start.class) {
			try {
				System.out.println("============start =================");
				Start.class.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}
	
public static void main(String[] args) throws Exception {
	Start.init("applicationContext.xml" );
}
dubboConsumer项目(服务消费者):

1、通过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-3.0.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

	 <!-- 消费方应用名,用于计算依赖关系,不与提供方一样 -->  
    <dubbo:application name="lxy_consumer" />  
  
    <!-- 使用zookeeper注册中心暴露服务地址 -->  
    <!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> -->  
    <dubbo:registry address="zookeeper://192.168.184.130:2181" />  
  
    <!-- 生成远程服务代理,可以像使用本地bean一样使用demoService -->  
    <dubbo:reference id="demoService"  
        interface="dubbotest.provider.DemoService" />  
  
</beans>
2、调用服务进行测试

public static void main(String[] args) throws IOException {
	ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml" });
	context.start();
	ProviderService demoService = (ProviderService) context.getBean("demoService");
	System.out.println(demoService.helloWorld());
	System.out.println(demoService.sayHello("Soar"));
}
  3、运行结果

hello,World
hello,Soar

三、注意事项

1、使用dubbo前记得添加xml的Schema扩展

2、记得添加相关jar包,本项目是基于maven管理,需添加pom引入jar包



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Dubbo是一个高性能的Java RPC框架,它提供了分布式服务框架的支持,可以让开发者轻松地构建分布式应用。而Zookeeper是一个分布式的协调服务,它可以用来管理和协调分布式系统中的各种资源,如配置信息、命名服务、分布式锁等。 当使用Dubbo框架时,我们可以将服务注册到Zookeeper中,这样其他的服务消费者就可以通过Zookeeper来发现和调用这些服务。同时,Zookeeper还可以用来监控服务的状态,当服务出现故障时,Zookeeper可以及时地通知其他服务消费者,从而保证整个分布式系统的稳定性和可靠性。 因此,DubboZookeeper的结合可以为分布式系统的开发和运维提供很好的支持,让开发者可以更加轻松地构建高性能、可靠的分布式应用。 ### 回答2: DubboZookeeper是两个分布式框架,结合起来可以帮助开发者构建高性能、高可用性的分布式应用。Dubbo提供了RPC远程过程调用框架,可以实现跨进程、跨语言的方法调用,支持负载均衡、容错、限流等特性。而Zookeeper是一个开源的分布式协调服务框架,可以协调和管理分布式应用的节点之间的通信。下面详细介绍DubboZookeeper的分布式基础。 1、Dubbo Dubbo是一款高性能、轻量级的RPC框架,采用Java编写,支持多种协议(Dubbo协议、HTTP、Hessian、RMI等),通过注册中心连接提供者和消费者。Dubbo可以做到请求耗时的优化、负载均衡、集群容错、异步调用等特性,让开发者可以轻松地构建分布式应用。 Dubbo的工作流程如下:服务提供者(Provider)将服务注册到注册中心,服务消费者(Consumer)从注册中心订阅服务,当服务消费者需要调用服务时,会通过代理对象来远程调用服务提供者,完成方法调用并将结果返回。Dubbo自带了多种注册中心的实现,例如Zookeeper、Redis等。 2、Zookeeper Zookeeper是一个开源的分布式协调服务框架,可以用来协调和管理分布式应用的节点之间的通信。Zookeeper的主要作用是提供一个分布式的协调服务,例如分布式锁、配置管理、分布式队列等。Zookeeper可以减轻分布式应用的复杂性,让开发者可以专注于业务逻辑。 Zookeeper通过基于目录树结构的数据模型来保存数据,并提供了一套完整的API用于操作这些数据。Zookeeper的工作原理是基于主从架构,当Zookeeper集群中的节点出现故障时,可以自动选举出新的Leader节点以继续提供服务。 DubboZookeeper结合起来可以构建一个高可用性的分布式应用。Dubbo将服务注册到Zookeeper,服务消费者从Zookeeper订阅服务,同时Zookeeper提供了注册中心的高可用性和负载均衡等特性。当服务提供者出现故障时,Zookeeper可以自动重新分配服务提供者的角色,从而保证服务的高可用性。 ### 回答3: DubboZookeeper是目前流行的分布式系统基础组件,它们常常被一起使用来构建可靠的分布式服务。在现代复杂的分布式系统中使用基础组件可以极大地简化开发和部署工作,而测试和维护都变得更容易。 Dubbo是一种高性能的分布式服务框架,它提供了统一的服务管理和RPC调用机制。Dubbo的核心在于将服务提供方和服务消费方解耦,同时提供了动态负载均衡和服务治理等功能。Dubbo具有高性能、可靠、易扩展等优点,广泛应用于大型分布式系统中。 Zookeeper是一种开源的分布式配置管理和协调解决方案,可以实现分布式配置管理、命名服务、分布式锁、集群选主和消息队列等功能。Zookeeper具有高可用性、可靠性和易扩展性,可以轻松管理大型分布式系统的配置和状态信息。Zookeeper还提供了建立分布式协调基础设施的基础组件。 在实际应用中,Dubbo通常和Zookeeper一起使用。服务提供方将服务注册到Zookeeper中心,服务消费方从Zookeeper中获取服务地址,并进行RPC调用,通过Dubbo提供的高性能、高可靠性的RPC调用机制实现分布式服务的调用和管理。 总之,DubboZookeeper是分布式系统基础构件,通常会共同使用来实现高性能、高可靠性的分布式服务。对于分布式开发者来说,掌握这些基础组件的使用和原理,可以对分布式开发和维护提供很大帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值