duboo+zookeeper的入门心得

duboo+zookeeper的入门心得

经历了一下午的调试,duboo+zookeeper的入门helloworld程序终于可以跑起来了,实属难得!中间遇见好几个坑,我觉得我有必要记录并分享一下,也算是对dubbo和zk的一点整理。
技术栈正如标题,基于dubbo的远程RPC调用,使用zookeeper注册中心,建立起SpringBoot项目集成。

资源环境下载我就不多此一举了,只需要注意zk的版本即可,我此次用的就是zk:apache-zookeeper-3.5.9-bin

1.项目搭建(Idea)
在Idea中创建一个新项目,因为考虑到是远程调用,所有父项目可以是任意项目,无须web,无须springboot。
在父项目新建2个模块,2个module以springboot项目建立,分别是server-provider和server-customer,分别作为dubbo的服务提供者和项目消费者。
其中2个项目的pom.xml文件导入的依赖如下:

	<!--服务提供者不需要使用controller,可以不要web的starter-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!--Dubbo-->
		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.7.3</version>
		</dependency>
		<!--zookeeper-->
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.6</version>
			<type>pom</type>
		</dependency>
		<!--zkclient zk客户端连接-->
		<dependency>
			<groupId>com.101tec</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.10</version>
		</dependency>
		<!--解决zookeeper的依赖冲突的jar包-->
		<dependency>
			<groupId>org.apache.curator</groupId>
			<artifactId>curator-recipes</artifactId>
			<version>2.13.0</version>
		</dependency>

另外,服务提供者的java的service层逻辑代码和配置文件application.properties的配置如下:

package com.kk.service;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Service
@Component
public class ProviderServiceImpl implements ProviderService{
    @Override
    public void service() {
        System.out.println("服务提供者提供了服务!");
    }
}

注意@Service导入的是org.apache.dubbo.config.annotation.Service,而不是Spring的@Service

# 服务提供者的name
dubbo.application.name=provider-server
# 服务注册的地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
# 使用的协议(dubbo)
dubbo.protocol.name=dubbo
# 在20880端口暴露dubbo服务
dubbo.protocol.port=20880
# dubbo扫描的包(服务提供的全限定包名)
dubbo.scan.base-packages=com.kk.service
# 该模块的启动端口,单机使用dubbo需要改端口
server.port=8081

此外,服务消费者的java代码和application.properties的配置如下:

package com.kk.service;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;

@Service
public class CustomerServiceImpl {
    @Reference
    private ProviderService providerService;
    public void service(){
        providerService.service();
        System.out.println("消费者的service方法");
    }
}

消费者的Controller层和SpringMVC中的一样,进行简单调用就行

dubbo.application.name=customer-server
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20881
dubbo.scan.base-packages=com.kk.service
server.port=8082
spring.main.allow-bean-definition-overriding=true

2.服务开启
开启zookeeper的服务端,ZkServer.cmd
开启dubbo-admin管理页,
开启服务提供者,
开启服务消费者,
访问服务消费者的controller界面即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值