zookeeper
下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper
下载完成之后,解压,进入到"conf"目录下,新建一个"zoo.cfg"
内容如下:
tickTime=2000
dataDir= /Users/chenqimiao/zookeeper-3.4.8/data
dataLogDir=/Users/chenqimiao/zookeeper-3.4.8/logs
clientPort=2181
参数说明:
#tickTime: zookeeper中使用的基本时间单位, 毫秒值.
#dataDir: 数据目录. 可以是任意目录.
#dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.
#clientPort: 监听client连接的端口号.
在/etc/rc.d/init.d文件夹下创建zookeeper文件:
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
case $1 in
start) su root /opt/zookeeper-3.5.3-beta/bin/zkServer.sh start;;
stop) su root /opt/zookeeper-3.5.3-beta/bin/zkServer.sh stop;;
status) su root /opt/zookeeper-3.5.3-beta/bin/zkServer.sh status;;
restart) su root /opt/zookeeper-3.5.3-beta/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
chmod 755 zookeeper 添加权限
chkconfig --add zookeeper 添加启动服务(默认就能自启动)
chkconfig --list 查看是否添加成功
service zookeeper start 启动测试(防火墙记得开启端口)
dubbo
介于每个人机子的环境都不尽相同,我建议大家可以自行打包所需war包。
我这里给出一个dubbo的下载地址:http://github.com/alibaba/dubbo,下载全部的文件之后。
执行如下命令
之后找到dubbo-master/dubbo-admin/target路径下面的dubbo-admin-2.5.4-SNAPSHOT.war包。
把这个包丢到tomcat进行部署就ok了。
springboot
服务提供者:
首先新建一个SpringBoot项目,来作为Dubbo的客户端请求服务。
首先需要在pom.xml加入相应的jar关联:(这里还需要额外的添加log4j关联,否则项目会启动报错)
<!-- Spring Boot Dubbo 依赖 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
接下来就是application.properties配置文件中关于Dubbo信息的配置了,配置内容如下所示:
spring.dubbo.application.name=provider
##Dubbo 注册中心地址 (自己部署的地址)
spring.dubbo.registry.address=zookeeper://101.200.41.205:2181
spring.dubbo.protocol.port=20880
## Dubbo 服务类包目录(自己工程service所在的包,这个千万不要配置错误)
spring.dubbo.scan=com.example.dubbo.service
## Dubbo 应用名称 (自己命名)
spring.dubbo.application.name=consumer
注意:
@Component就是spring bean的注解(替代原来的Service),而@Service就是dubbo本身的注解,可以通过 version 指定了版本号。
实体类通过 Dubbo 服务之间 RPC 调用,则需要实现序列化接口。最好指定下 serialVersionUID 值。