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

aNian 2020-05-15

1.什么是dubbo,zookeeper?

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

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

springcloud Netflix 18年开始停止维护了
dubbo 阿里开发的,现在归Apache,中间停更了5年
springcloud Alibaba 还没正式出
4.学分布式之前需要掌握哪些知识?

springboot
mybatis/mybatis-plus 随便一个持久层框架
mysql/oracle 随便一个数据库语言
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>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
5.3 application.yml配置

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

dubbo:
application:
name: customer-server # 消费者拿服务需要暴露自己的名字
registry:
address: zookeeper://127.0.0.1:2181 # 注册中心的地址
1
2
3
4
5
6
7
8
5.4 编写service和实现类

TicketService类

public interface TicketService {
public String getTickets();
}
1
2
3
TicketService的实现类TicketServiceImpl

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

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

@Override
public String getTickets() {
return "rich";
}
}
1
2
3
4
5
6
7
8
9
10
11
5.5 查看运行结果

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


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

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

https://ke.youdao.com/?outVednor=zw_zsttx_baidupz_pc_logo_020

https://ke.youdao.com/?outVednor=zw_zsttx_baidupz_pc_logo_0

https://ke.youdao.com/?outVednor=zw_zsttx_baidupz_pc_l

相关推荐