SpringBoot分布式

共 2455字,需浏览 5分钟

 ·

2020-12-28 03:30

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

66套java从入门到精通实战课程分享

一、zookeeper使用

1、进入linux系统使用docker安装zookeeper

docker pull zookeeper


2、运行zookeepe
查看zookeeper的docker镜像的id

docker images


官方给出的docker启动命令为:$ docker run --name some-zookeeper --restart always -d zookeeper
此镜像暴露端口:2181(client port:客户端交互) 、2888(follower port:集群)、 3888(election port:选举)

docker run --name zk01 -p 2181:2181 --restart always -d e1763fd3a0e3


此处我们指定name为zko1,-p选择暴露linux的端口2181映射到docker容器的2181端口,-d指定需要后台运行的zookeeper的id

3、查看启动运行状况

docker ps


3、Idea快速创建一个服务的提供者,一个服务的消费者

(1)在空工程里创建服务提供者的Module(springboot初始化向导创建并引入web模块)

并在服务提供者Module中定义一个简单的方法

(2)再在工程里创建服务消费者的Module(springboot初始化向导创建并引入web模块)


(3)Dubbo实现消费者使用生产者的功能
A、将服务的提供者注册到注册中心里去
在pom.xml文件中加入Dubbo的springboot依赖

       
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.1.0
        

        
        
            com.github.sgroschupf
            zkclient
            0.1
        


在application.properties中配置Dubbo的相关属性

dubbo.application.name=provider-ticket
#注册中心地址
dubbo.registry.address=zookeeper://虚拟机ip:2181
#服务所在包
dubbo.scan.base-packages=com.atguigu.ticket.service

在需要发布服务的实现类上添加注解(需要注意@Service引入的包):

import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Component
@Service //将服务发布出去
public class TicketServiceImpl implements TicketService {
    @Override
    public String getTicket() {
        return "这是一张电影票";
    }
}

B、消费者去注册中心中寻找服务
引入依赖
在pom.xml文件中加入Dubbo的springboot依赖

       
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.1.0
        

        
        
            com.github.sgroschupf
            zkclient
            0.1
        


在application.properties中配置Dubbo的相关属性

dubbo.application.name=provider-ticket
#注册中心地址
dubbo.registry.address=zookeeper://虚拟机ip:2181

在工程中引入接口类:
在UserService消费者类中远程调用服务提供者所实现的方法即可实现对TicketServiceImpl实现类方法的调用:

import com.alibaba.dubbo.config.annotation.Reference;
import com.atguigu.ticket.service.TicketService;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Reference
    TicketService ticketService;

    public void test(){
        String str = ticketService.getTicket();
        System.out.println("消费者买票:"+str);
    }
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:

https://blog.csdn.net/weixin_42453582/article/details/111490752




粉丝福利:Java从入门到入土学习路线图

???

?长按上方微信二维码 2 秒


感谢点赞支持下哈 

浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报