了解dubbo
Posted nbzbc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解dubbo相关的知识,希望对你有一定的参考价值。
一、什么是dubbo
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现。
1、远程方法调用
实现不同程序之间的方法调用
2、负载均衡
任务分摊、感觉很吊,目前不懂。
3、服务器注册与发现
配置文件注册服务,注册表(类似数据库),客户端向注册表发送一个请求,负载均衡负责分配服务来响应请求。
基本概念
服务提供者(provide)
类似于程序的Service层
服务消费者(Consumer)
类似于程序的Controller层
注册中心(Registry)
类似于一个数据库,可以看成Dao层
监控中心(Monitor)
应该可以看成日志
二、Zookeeper
什么是Zookeeper
对分布式应用程序的服务进行协调,类似工具人。
安装Zookeeper
1、 linux安装zookeeper-x.x.x.tar.gz
tar -zxvf zookeeper-x.x.x.tar.gz 解压
mv zookeeper-x.x.x.tar.gz zookeeper 改名字
2、设置开机启动脚本(需要配置jdk)
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
ZK_PATH=/opt/zookeeper
export JAVA_HOME=/opt/jdk1.8.0_152
case $1 in
start) sh $ZK_PATH/bin/zkServer.sh start;;
stop) sh $ZK_PATH/bin/zkServer.sh stop;;
status) sh $ZK_PATH/bin/zkServer.sh status;;
restart) sh $ZK_PATH/bin/zkServer.sh restart;;
*)
echo "require start|stop|status|restart" ;;
esac
将脚本注册成服务:chkconfig --add zookeeper
增加权限 chomd +x /etc/init.d/zookeeper
初始化配置文件:cp zoo_sample.cfg zoo.cfg
启动服务service zookeeper start
3、安装监控软件
安装tomcat
将dubbo-admin-x.x.x.war包拷贝到tomcat的webapps目录下
浏览器访问tomcat地址+war包名
4、设置tomcat开机启动脚本
#!/bin/bash
#chkconfig:2345 20 90
#description:dubbo-admin
#processname:dubbo-admin
CATALANA_HOME=/opt/tomcat4dubbo
export JAVA_HOME=/opt/jdk1.8.0_152
case $1 in
start)
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;
stop)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
;;
restart)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
sleep 2
echo
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;
*)
echo "Usage: tomcat {start|stop|restart}"
;; esac
将tomcat注册到服务:chkconfig --add dubbo-admin
加入权限:chmod +x dubbo-admin
启动服务:service dubbo-admin start
三、Springboot整合dubbo
1、添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>${zkclient.version}</version>
</dependency>
<dependency>
<groupId>com.gitee.reger</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>${dubbo-starter.version}</version>
</dependency>
Service层注册服务者
spring.dubbo.application.name=服务名
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.registry.address=192.168.xxx.xxx:2181
spring.dubbo.base-package=程序包
spring.dubbo.protocol.name=dubbo
Controller层注册消费者
spring.dubbo.application.name=消费名
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.registry.address=192.168.xxx.xxx:2181
spring.dubbo.base-package=程序包
spring.dubbo.protocol.name=dubbo
spring.dubbo.consumer.timeout=10000
spring.dubbo.consumer.check=false
@Service注册服务(Service层)
@Reference使用服务(Controller层)
都为aibaba的包
四、一些基本的错误
版本问题为主要问题
如mysql8.0对密码的认证于之前的有所不同需要定义相对应的版本,或者改变8.0的密码认证方式caching_sha2_password改为mysql_native_password
程序报错问题以百度解决未做记录
每天检查写点东西,增加记忆。
以上是关于了解dubbo的主要内容,如果未能解决你的问题,请参考以下文章
了解分布式架构 Maven Springmvc mybatis shiro Druid Restful,Dubbo ZooKeeper,Redis,FastDFS ,ActiveMQ