为什么要使用分布式系统?
容错
减少延迟/提高性能
可用性
负载均衡
总而言之,其实目的只有一个,”用户体验“。
什么是分布式系统?
分布式系统是由使用分发中间件连接的自治计算机组成的网络。它们有助于共享不同的资源和功能,为用户提供单一且集成的连贯网络。
搭建一个简单的分布式系统
一、在服务器(虚拟机)上安装Zookeeper(我这里使用Docker安装)
(一)、去docker-cn.com获取镜像加速地址
(二)、使用docker pull registry.docker-cn.com/library/zookeeper命令下载Zookeeper
(三)、使用docker run --name zk01 -p 2181 --restart always -d zookeeper命令安装zookeeper
(四)、使用docker ps命令查看进程,至此zookeeper已安装完成,具体的安装文档请参照https://hub.docker.com/_/zookeeper
二、创建服务提供者,服务消费者(我使用的开发工具是IDEA)
(一)、New Project 选择 Empty Project
(二)、创建一个子工程作为服务提供者。
2.1 new Model 选择Spring Initalizr为了测试方便引入web模块。
2.2 创建一个service
![18b8951fb19286b823f9fd6b11a39380.png](https://i-blog.csdnimg.cn/blog_migrate/958a3ffeb4269a6ffc4ecb2c0df5434f.jpeg)
2.3 创建serviceimpl,注意引入的包
![2b90eb8c558b1f0577e61ac88a3ba63b.png](https://i-blog.csdnimg.cn/blog_migrate/8e063d7d8680da555837662ded19df59.jpeg)
2.4 引入dubbo和zklient相关依赖
![c23b322ac608b4570524f677c117014b.png](https://i-blog.csdnimg.cn/blog_migrate/38e92b37985d0074eb9fdb8ea88bf77b.jpeg)
2.5 配置dubbo的扫描包和注册中心地址
![f19df57e0b68731eedc527a334eca764.png](https://i-blog.csdnimg.cn/blog_migrate/40e5d153d19be7e0e1e297ce3ae57e96.jpeg)
(3)子工程作为服务消费者。
3.1 new Model 选择Spring Initalizr为了测试方便引入web模块。
3.2 创建一个UserService
3.3 引入dubbo和zklient相关依赖
![1e5f6e186e97db00c957ca734868d5ed.png](https://i-blog.csdnimg.cn/blog_migrate/dd65e1c5e19fa5c0c390e3da5668dd6c.jpeg)
3.4 配置dubbo的注册中心地址
![46503fcf72f0f234203761299cb0d9e8.png](https://i-blog.csdnimg.cn/blog_migrate/9785c7418eb205f868c37376b7f76277.jpeg)
3.5 将所需服务提供者工程的service copy过来(一定要全类名相同),之后的目录结构如下图
![d26be6b1e54b09458ce89704cd969727.png](https://i-blog.csdnimg.cn/blog_migrate/37d0166053b40b1f00312e2832ae381e.jpeg)
3.6 编写UserService
![e5a7afa5a09c8a0840b5a61089e8712c.png](https://i-blog.csdnimg.cn/blog_migrate/5fb146b37c68d7944958ce759366ced7.jpeg)
至此,一个简单的分布式系统就搭建完毕。
- 链接:https://www.jianshu.com/p/4306d8434aba