Spring boot 整合dubbo+zookeeper


一、下载zookeeper服务注册管理器

+

 liuxin@KK-MINI  ~  cd zookeeper-3.5.2-alpha\ 2
 liuxin@KK-MINI  ~/zookeeper-3.5.2-alpha 2  ls
CHANGES.txt                    README_packaging.txt           contrib                        ivysettings.xml                src                            zookeeper-3.5.2-alpha.jar.md5
LICENSE.txt                    bin                            dist-maven                     lib                            zookeeper                      zookeeper-3.5.2-alpha.jar.sha1
NOTICE.txt                     build.xml                      docs                           logs                           zookeeper-3.5.2-alpha.jar
README.txt                     conf                           ivy.xml                        recipes                        zookeeper-3.5.2-alpha.jar.asc
 liuxin@KK-MINI  ~/zookeeper-3.5.2-alpha 2  cd conf
 liuxin@KK-MINI  ~/zookeeper-3.5.2-alpha 2/conf  ls
configuration.xsl log4j.properties  zoo.cfg           zoo_sample.cfg
 liuxin@KK-MINI  ~/zookeeper-3.5.2-alpha 2/conf 

在conf中创建输入zoo.cfg

tickTime=2000
#这个地址自定义
dataDir=/javaee/zookeeper/data  
#这个地址自定义
dataLogDir=/javaee/zookeeper/log
clientPort=2181

然后在bin目录中./zkServer.sh start启动

二、创建生产者

  • 在pom文件中引入dubbo
         <dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>${dubbo-spring-boot}</version>
        </dependency>
  • application.properties
## Dubbo 服务提供者配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=org.spring.springboot.dubbo
server.port=8082
  • 向原来创建SpringBoot项目中一样,不过注意一个注解@Service使用dubbo提供的
import com.alibaba.dubbo.config.annotation.Service;

@Service(version = "1.0.1")
public class UserDubboServiceImpl implements UserDubboService {
    @Override
    public User getUserByName(String name) {
        return new User(name,"shanghai");
    }
}

当项目启动的时候,会把这个服务注册到zookeeper中。等到消费

三、创建消费者

  • pom文件中和上面引入的一样。
  • application.properties
## 避免和 server 工程端口冲突
server.port=8081

## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=org.spring.springboot.dubbo
  • 创建在服务提供中一样的JavaBean对象 UserUserDubboService
  • 使用@Reference(version = "1.0.1")注解引入服务
@Component
public class UserDubboConsumerService {
    @Reference(version = "1.0.1")
    UserDubboService userDubboService;

    public void getUserByName(){
        System.out.println(userDubboService.getUserByName("周杰伦"));    }
}

当项目其中的时候,会想zookeeper中查询服务生产者地址,然后直接,调用生产者服务中的服务。zookeeper是提供软负载均衡。比nginx中需要手动配置服务地址,来看,好多了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值