dubbox的安装与使用
dubbox的环境安装
- dubbox的运行环境依赖与zookeeper。所以首先要去下载zookeeper进行安装,可以登录官网http://www.apache.org/dyn/closer.cgi/zookeeper/或者公司服务器\192.168.1.22新电脑5台目录下找到相应安装包。
- 下载或拷贝后解压即可,然后进入该目录下的conf目录
- 新建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=E:\zookeeper-3.4.6\data
dataLogDir=E:\zookeeper-3.4.6\logs
# 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
说明:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
InitLimit : 此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。
syncLimit: 此配置表示, leader 与 follower 之间发送消息,请求和应答时间长度。如果 follower 在设置的时间内不能与 leader 进行通信,那么此 follower 将被丢弃。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
dataLogDir : 顾名思义就是 Zookeeper 保存日志的目录。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
- 启动zookeeper,进入zookeeper目录下的bin目录下,双击zkServer.cmd启动注册中心服务。
Dubbox的使用
例子请参考dubboProvider(服务提供端)和dubboConsumer(服务调用端)。
dubboProvider
dubboProvider提供了一个服务接口TestService和服务实现类TestServiceImpl。
配置文件applicationContext-provider.xml中只需要配置
- <dubbo:application name="provider-dubbo" /> 配置该服务端提供方的名称(需要唯一)
- <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />(本地zookeeper的地址和端口)
- <dubbo:protocol name="dubbo" port="20880" /> (dubbox使用的端口)
- <dubbo:service interface="provider.service.TestService" ref="testService"/> (提供的服务接口)
- <bean id="testService" class="provider.service.impl.TestServiceImpl" /> (提供的服务接口实现bean类)
dubboConsumer
dubboConsumer调用方只有一个简单的调用类ConsumerService。
配置文件applicationContext-consumer.xml中只需要配置
- <dubbo:application name="consumer-dubbo" /> 配置该消费端的名称(需要唯一)
- <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />(本地zookeeper的地址和端口)
- <dubbo:protocol name="dubbo" port="20880" /> (dubbox使用的端口)
- <dubbo:reference id="testService" interface="provider.service.TestService" check="false"/>(需要调用的服务接口)
例子中先启动服务提供端,再启动服务消费端即可看到效果。
将项目中配置文件里address属性中地址改成232路径
传输调用实体类必须将其序列化