linux 下安装zookeeper及配置dubbo

来源:互联网 发布:纸模型软件 编辑:程序博客网 时间:2024/05/02 00:35

使用zookeeper作为注册中心,版本为3.4.8


一、zookeeper安装步骤


wget  http://apache.fayea.com/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gztar -zxvf zookeeper-3.4.8.tar.gzcd zookeeper-3.4.8cd confmv zoo_sample.cfg zoo.cfgcd ../bin./zkServer.sh start


二、开发privider端菜示例

1、pom.xml中增加以下配置

<dependency>    <groupId>dangdangdotcom</groupId>    <artifactId>dubbox</artifactId>    <version>2.8.4</version>    <scope>system</scope>  <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/dubbo-2.8.4.jar</systemPath></dependency><dependency>    <groupId>org.javassist</groupId>    <artifactId>javassist</artifactId>    <version>3.19.0-GA</version></dependency><dependency>    <groupId>io.netty</groupId>    <artifactId>netty</artifactId>    <version>3.10.5.Final</version></dependency><dependency>    <groupId>com.github.sgroschupf</groupId>    <artifactId>zkclient</artifactId>    <version>0.1</version></dependency><dependency>    <groupId>com.caucho</groupId>    <artifactId>hessian</artifactId>    <version>4.0.7</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-core</artifactId>    <version>4.1.9.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-web</artifactId>    <version>4.1.9.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>4.1.9.RELEASE</version></dependency>


2、dubbo provider的spring配置:


<dubbo:application name="demo-provider" owner="dev1" organization="kk"/><dubbo:registry address="zookeeper://127.0.0.1:2181"/><bean id="orderService" class="com.kayakwise.dubbo.demo.service.impl.OrderServiceImpl" /><dubbo:service interface="com.kayakwise.dubbo.demo.service.OrderService" ref="orderService"/>


3、Order类

public class Order implements Serializable {    private long id;    private String customerName;    private String phone;    private String address;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getCustomerName() {        return customerName;    }    public void setCustomerName(String customerName) {        this.customerName = customerName;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }}

4、OrderServicer接口

public interface OrderService {    Order getOrderById(long id);}


5、OrderServiceImpl实现类


public class OrderServiceImpl implements OrderService {    public Order getOrderById(long id) {        Order order = new Order();        order.setId(id);        order.setAddress("淮海路12号");        order.setCustomerName("刘小强test");        order.setPhone("18699999999");        return order;    }}


三、 开发consumer端示例



1、pom.xml配置和provider端相同。provider里的OrderService接口和Order类打成包,放到consumer工程里。


dubbo consumer的spring配置:<dubbo:application name="demo-consumer" owner="dev2" organization="kk"/><dubbo:registry address="zookeeper://127.0.0.1:2181"/><dubbo:reference id="orderService" interface="com.kayakwise.dubbo.demo.service.OrderService" check="false" />


然后就可以像使用普通spring bean那样调用orderService




四、常见问题



1.、超时设置

默认的超时为1秒,可通过timeout参数进行修改,单位为毫秒,示例:

<dubbo:reference id="orderService"interface="com.kayakwise.dubbo.demo.service.OrderService" timeout="3000">

 

 

2.、重试设置

默认的重试次数为2,对于涉及到数据修改的服务,建议设置重试次数为0,示例:

<dubbo:reference id="bidderService"interface="com.kayakwise.dubbo.demo.service.BidService"  retries="0"/>

 

3.、spring controller注入的dubbo服务的bean,在运行时报空指针异常

在dubbo的spring配置文件中增加dubbo:annotation 配置,package改为实际的包名。

<dubbo:annotation package="com.kayakwise.dubbo.demo.controller"/>





0 0
原创粉丝点击