飞道的博客

什么是dobbo,zookeeper,以及简单的入门项目

278人阅读  评论(0)

1.什么是dubbo,zookeeper?

  • dubbo是个阿里巴巴的旗下的高性能、轻量级的开源Java RPC框架
  • ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
上面是官方说法,通俗点说 dubbo是个分布式框架,zookeeper是个注册中心

2.什么是分布式,为什么要搞分布式?

  • 分布式就是把你的项目拆分成好几个模块,部署在不同的地方
  • 一个项目太大,访问人数太多,一台机器服务不了,就把功能分开放

3.常见的分布式项目有哪些?

  • springcloud Netflix 18年开始停止维护了
  • dubbo 阿里开发的,现在归Apache,中间停更了5年
  • springcloud Alibaba 还没正式出

4.学分布式之前需要掌握哪些知识?

  1. springboot
  2. mybatis/mybatis-plus 随便一个持久层框架
  3. mysql/oracle 随便一个数据库语言
  4. java基础
众所周知,springboot叫微服务,将这些微服务整合起来的项目叫分布式
分布式框架提供了注册中心,将微服务注册进来,给外人使用
提供了网关,打通各个服务,使他们通过网络连接起来
提供了服务降级(数据熔断),其中一个微服务挂了,就降级

5.了解了大致的概念现在做个简单的dubbo项目

非常简单,只有注册中心的功能,供新手练手

5.1 下载,安装zookeeper

下载地址https://zookeeper.apache.org/releases.html
下载完解压就能用,windows系统下双击bin目录下的 zkServer.cmd即可启动zookeeper注册中心

5.2 创建springboot项目,项目中添加dubbo的依赖

	 <!-- springboot版本为2.2.1 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
 		<dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        
 		<!-- 引入zookeeper日志会冲突,这里手动排除了冲突 -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

5.3 application.yml配置

  • 配置了服务名称
  • 注册中心地址
server:
  port: 8082

dubbo:
  application:
    name: customer-server  # 消费者拿服务需要暴露自己的名字
  registry:
    address: zookeeper://127.0.0.1:2181  # 注册中心的地址

5.4 编写service和实现类

TicketService类

public interface TicketService {
    public String getTickets();
}

TicketService的实现类TicketServiceImpl

  • 添加@Service 注解(dubbo包中的),让服务可以被扫描到,项目启动后注册到注册中心
  • 添加@Component注解,把类注入到spring中
//zookeeper服务注册与发现

@Service  //dubbo的注解,可以被扫描到,在项目一启动就自动注册到注册中心
@Component  //使用了dubbo后尽量不要用service注解,会冲突
public class TicketServiceImpl implements TicketService {

    @Override
    public String getTickets() {
        return "rich";
    }
}

5.5 查看运行结果

  1. 双击下载的zookeeper的启动文件,启动zookeeper
  2. 如果想要在浏览器中看到dubbo的运行情况,需要 下载dubbo-admin-0.0.1-SNAPSHOT.jar
  3. 使用命令: java -jar dubbo-admin-0.0.1-SNAPSHOT.jar 启动dubbo-admin-0.0.1-SNAPSHOT.jar,:
  4. 启动springboot项目
  5. 在浏览器输入地址: localhost:7001/ ,账号: root 密码: root 即可访问dubbo的服务
  6. 在页面的服务治理->服务下,可以看到我们自己注册的服务

6.一个简单的微服务项目就部署成功了

越学到后面越发现,我们要做的东西越少,全是别人封装好的框架,我们搞点简单的配置就行了
如果你大学没有好好学习,不懂得数据结构算法,计算机网络,操作系统,那就只能由浅入深的学习,先学习如何使用在研究其原理,是我们普通人的学习路线.

转载:https://blog.csdn.net/richer__/article/details/106143786
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场