分布式系统的特点:
1、面向接口代理的高性能RPC调用:A服务调用B服务器的接口,直接调用即可。其中使用zookeeper注册中心进行关联)
2、智能的负载均衡:服务器与服务器之间实现分流处理,解决并发问题。
3、运行期间实现流量调度:灰度发布(例:在生产环境发布时,可先更新一部分服务器的代码,后稳定运行后,再更新另一部分服务器的代码)
下边整理了一下分布式架构的流程图,大致如下图:
下边开始搭建dubbo服务:
1、首先需要搭建注册中心,dubbo官方推荐使用zookeeper,这里搭建的也是zookeeper,且为windos环境下的。下载zookeeper解压到某个目录下,在bin路径下进入dos控制台,运行zkServer,启动zookeeper服务:
需要注意的是,在第一次运行zkServer时会出现错误信息:未找到zookeeper的配置文件,此时我们到conf下将zoo_sample.cfg文件复制一份,命名为zoo.cfg,然后在dos下执行zkServer即可正常启动zookeeper服务。
2、接下来需要配置服务的提供者,步骤如下:
1)创建一个maven工程,在pom.xml文件中引入dubbo和zookeeper的依赖包
2)引入依赖之后配置资源文件,在resources路径下新建provider.xml文件,在文件中配置服务提供者需要配置的几部分信息:
1–首先指定当前服务/应用的名称
2–指定注册中心的位置(zookeeper的地址及端口号,端口默认2181)
3–指定通信规则(通信协议dubbo及通信端口20080)
4–暴露服务(将哪个类提供给外部应用调用 其中ref用来指向真正的实现对象)
3、配置服务的调用者(消费者):
1)创建一个maven工程,与生产者一样,需要在pom.xml文件中引入dubbo和zookeeper的依赖包
2)在resource路径下新建consumer.xml文件配置消费者资源文件:
1–同生产者相同,指定当前服务器的名称
2–指定注册中心的位置(zookeeper的地址及端口号,端口默认2181)
3–声明需要调用的远程服务接口:生成远程服务代理
以上就配置了一个简单的dubbo服务,可在生产者和消费者各写测试类测试是否调用成功。
原文地址:https://www.cnblogs.com/zxm1616/p/11394760.html