微服务:dubbo与zookeeper的快速搭建
来源:互联网 发布:知乎 如何评价王尼玛 编辑:程序博客网 时间:2024/05/16 01:18
此文章发表前,作者没有搞懂dubbox与dubbo区别,请见谅!!!
一、安装zookeeper
安装环境:linux
1.首先去zookeeper官方网站下在tar.gz包
2.解压
tar -zxvf xxx.tar.gz
3.修改配置文件
路径:zookeeper/conf
可能看到sample_zoo.cfg
vi 一下,看看内容作如下修改,一般改下dataDir既可。
# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.dataDir=~/tmp/zookeeper# the port at which the clients will connectclientPort=2181
这里有一个端口号:2181
4.启动服务:
在zookeeper/bin/下运行:
./zkServer.sh start
5.可以看一下端口是否起来:
netstat -antp 2181
6.停止服务
./zkServer.sh stop
二.搭建Dubbbox
由于我的pom.xml是直接拿过来的,所以这里说一下:
个人看法:
既然使用了Dubbo和zookeeper那么他们的相关jar是必须的了
dubbo的maven
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version></dependency>
zookeeper的客户端maven
<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.3</version></dependency>
根据阿里巴巴官方介绍:dubbo是基于Spring的(可能是这个意思吧),所有基本的spring也得有。spring的引用就不贴了。
开始Demo之旅
首先一览我的Demo项目:
parent:就是jar的引用
provider:服务提供者
consumer:消费者
dubbox个人分析(小白阶段):
服务提供者(Provider)—->注册中心(Registry)<—-服务消费者(Consumer)
注册中心,配置下下就好了。
那么如何写Provider和Consumer呢??
服务提供者(DemoService)
一如既往:接口&实现
DemoService.java
package com.xbz.learning.dubbox.demo.provider;public interface DemoService { public String sayHello();}
DemoService.java
package com.xbz.learning.dubbox.demo.provider.impl;import com.xbz.learning.dubbox.demo.provider.DemoService;public class DemoServiceImpl implements DemoService{ public String sayHello() { return "hello world"; }}
服务端配置
<?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:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="hello-world-app" /> <!-- 使用zookeeper广播注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://192.168.35.100:2181" check="false" subscribe="false" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service version="1.0.0" interface="com.xbz.learning.dubbox.demo.provider.DemoService" ref="demoService" /> <!-- 和本地bean一样实现服务 --> <bean id="demoService" class="com.xbz.learning.dubbox.demo.provider.impl.DemoServiceImpl"></bean></beans>
运行服务提供者,实际应该是向注册中心注册服务
public class DemoServiceRegisterTest { @Test public void startDemoProvider() throws IOException{ System.out.println("准备启动DemoServiceProvider"); ClassPathXmlApplicationContext ap=new ClassPathXmlApplicationContext("classpath:applicationContext-provider.xml"); DemoService demoServiceProvider=(DemoService) ap.getBean("demoService"); String res=demoServiceProvider.sayHello(); System.out.println(res); System.out.println("启动DemoServiceProvider完成"); System.in.read(); }}
消费者与服务提供者,需要共用接口类
服务消费者
消费者拥有提供者的接口,然后进行如下配置
<?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:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --> <dubbo:application name="consumer-of-helloworld-app" /> <!-- 使用multicast广播注册中心暴露发现服务地址 --> <dubbo:registry address="zookeeper://192.168.35.100:2181" /> <!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <dubbo:reference version="1.0.0" id="demoService" interface="com.xbz.learning.dubbox.demo.provider.DemoService" /></beans>
测试服务是否可以运行:
public class DemoConsumerTest { @Test public void testDemoServiceProvider() throws IOException{ ClassPathXmlApplicationContext ap=new ClassPathXmlApplicationContext("classpath:applicationContext-consumer.xml"); DemoService demoServiceProvider=(DemoService) ap.getBean("demoService"); for(int i=1;i<=10;i++){ String res=demoServiceProvider.sayHello(); System.out.println("第"+i+"次调用"+res); } }}
- 微服务:dubbo与zookeeper的快速搭建
- zookeeper与dubbo的环境搭建
- dubbo+zookeeper实现soa架构的微服务应用
- 微服务 Dubbo + Zookeeper 原理解析
- spring+dubbo+zookeeper 微服务架构Dome
- dubbo+zookeeper+dubbo-admin环境的搭建
- 分布式服务框架DUBBO(二)搭建dubbo服务-zookeeper与dubbo-admin的安装
- 使用dubbo与zookeeper搭建面向服务的架构工程
- ZooKeeper的快速搭建
- 微服务的一种开源实现方式——dubbo+zookeeper
- 微服务的一种开源实现方式——dubbo+zookeeper
- 微服务的一种开源实现方式——dubbo+zookeeper
- dubbo与zookeeper搭建类soa服务
- 【分布式架构】“spring cloud”与“dubbo”微服务的对比
- MicroService4Net快速搭建微服务
- ZooKeeper 快速搭建与体验
- Dubbo + zookeeper 测试环境的搭建
- 搭建Dubbo+Zookeeper
- 个人记录-LeetCode 26. Remove Duplicates from Sorted Array
- Java基础 - 二叉树的三叉链表存储
- 黑色的那个星期一
- 20161109 - Day1
- Java基础 - 二叉树的二叉链表存储
- 微服务:dubbo与zookeeper的快速搭建
- hdoj5961-传递
- 面试之计算机网络TCP协议——三次握手与四次挥手
- Centos通过源代码编译安装httpd并启动
- Mybatis缓存机制
- Android页面跳转和数据传递
- 第11周项目2 -用二叉树求解代数表达式
- C语言文件操作笔记--代码写累了放松一下
- 417. Pacific Atlantic Water Flow