RPC(分布式服务框架)
-
什么叫RPC
RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。
-
基本原理
- RPC两个核心模块:通讯,序列化。
Dubbo
- 简介
Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,
它提供了三大核心能力:
1、面向接口的远程方法调用,
2、智能容错和负载均衡,
3、以及服务自动注册和发现。
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法 ,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
调用关系说明
服务容器负责启动,加载,运行服务提供者。
服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者在启动时,向注册中心订阅自己所需的服务。
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
dubbo环境搭建
-
zookeeper注册中心安装
安装配置
1、首先可以从Zookeeper的官方网站下载最新的安装包: http://www.apache.org/dist/zookeeper/2、上传并解压: tar -xzvf zookeeper-3.4.13.jar
3、修改环境变量: vi /etc/profile
在文件最后添加:
export ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.13
export PATH= P A T H : PATH: PATH:ZOOKEEPER_HOME/bin
执行命令: source /etc/profile ,使环境变量生效
4、修改zookeeper的配置文件
cp zoo_sample.cfg zoo.cfg
conf/zoo.cfg 文件中增加 dataDir=/home/zookeeper/zookeeper-3.4.13/data
dataLogDir=/home/zookeeper/zookeeper-3.4.13/logs
clientPort 设置zk端口
5、修改日志文件输出目录,如下图所示:
修改conf/log4j.properties文件:
修改bin/zkEnv.sh文件:
6、操作zookeeper
sh zkServer.sh start 启动zk,
sh zkServer.sh status 查看启动zk状态
sh zkServer.sh stop 停止zk
设置开机启动
一、以root用户登录系统:
二、进入init.d文件夹
cd /etc/init.d/
三、创建并打开zookeeper文件
vi zookeeper
四、zookeeper文件如下:
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/usr/local/jdk1.7
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
case $1 in
start) su root /usr/local/zookeeper-3.4.9/bin/zkServer.sh start;; stop) su root /usr/local/zookeeper-3.4.9/bin/zkServer.sh stop;; status) su root /usr/local/zookeeper-3.4.9/bin/zkServer.sh status;; restart) su root /usr/local/zookeeper-3.4.9/bin/zkServer.shrestart;; *) echo "requirestart|stop|status|restart" ;;
esac
五、保存退出
:wq
六、加权限,把 zookeeper修改为可运行的文件,命令参考如下:
chmod 755 zookeeper
chmod a+x zookeeper
七、使用chkconfig命令把 zookeeper命令加入到系统启动队列中:
chkconfig --add zookeeper
八、查看zookeeper的状态:
chkconfig --list zookeeper
九、测试
service zookeeper start
service zookeeper stop
service zookeeper restart
service zookeeper status