RPC初识

1 篇文章 0 订阅
1 篇文章 0 订阅

初识远程调用服务RPC(docker+zookeeper+dubbo)

1.windows本地安装zookeeper

  直接而在命令行执行,从Docker Hub中获取zookeeper镜像。

docker pull zookeeper

之后直接在docker desktop for windows中直接管理组件
在这里插入图片描述

在这里插入图片描述

该可视化界面可以直接启动下载下来的文件,进行统一化管理,也能够查看日志信息

2.创建项目

  创建两个项目分别为生产者和消费者

2.1 生产者(provider-ticket)

  将生产者服务注册到注册中心中去。
  引入依赖pom.xml

<dependency>
	<groupId>com.alibaba.boot</groupId>
	<artifactId>dubbo-spring-boot-starter</artifactId>
	<version>0.1.0</version>
</dependency>

<!--引入zookeeper的客户端工具-->
<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
<dependency>
	<groupId>com.github.sgroschupf</groupId>
	<artifactId>zkclient</artifactId>
	<version>0.1</version>
</dependency>

  配置文件application.properties:

dubbo.application.name=provider-ticket
dubbo.registry.address=zookeeper://localhost:2181
dubbo.scan.base-packages=com.dubbo.provider.service

  创建服务相关:
在这里插入图片描述
注: 注解@Service并不是Spring中的注解,还是Dubbo中的注解
  最后自动服务,如果报连接zk超时,应该是dubbo注册到zk的地址写错了。下面是正确启动的效果图:
在这里插入图片描述

2.2 消费者(consumer-user)
  • 引入依赖
<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>0.1.0</version>
		</dependency>

		<!--引入zookeeper的客户端工具-->
		<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.1</version>
		</dependency>


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
</dependencies>
  • 配置文件aplication.properties
dubbo.application.name=consumer-user

dubbo.registry.address=zookeeper://localhost:2181
  • 服务消费者引用服务
@Service
public class UserService {

    // 远程引用,按照全类名从注册中心寻找
    @Reference
    TicketService ticketService;

    public void hello(){
        String ticket = ticketService.getTicket();
        System.out.println("买到票了:"+ticket);
    }

}

注: 注解@Service是Spring的注解,@Reference是Dubbo的注解是要从注册中心拿取服务,这里生产者值提供接口。

  • 写一个测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerApplicationTests {

	@Autowired
	UserService userService;

	@Test
	public void contextLoads() {
		userService.hello();
	}

}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值