dubbo的基本认识

2020-05-28  本文已影响0人  剑道_7ffc

为什么要用dubbo

dubbo是一个中间件,提供以下功能
服务远程通信(rpc框架的基本功能),服务的跟踪和监控,服务的发现和感知,服务的容错和服务的负载均衡。

Dubbo项目搭建

请参看官网文档:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html

关于 DubboMain 启动的真相

dubbo的启动类org.apache.dubbo.container.Main#main

public static void main( String[] args ) throws IOException {
    Main.main(new String[]{"spring","log4j"}); //Dubbo提供的启动类方法,它会启动dobbu中配置的多个container
}

容器类型

SpringContainer:启动spring容器,默认取META-INF/spring/*.xml的配置文件加载
org.apache.dubbo.container.spring.SpringContainer#start

public void start() {
    String configPath = ConfigUtils.getProperty("dubbo.spring.config");
    if (StringUtils.isEmpty(configPath)) {
        configPath = "classpath*:META-INF/spring/*.xml";
    }
    context = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"), false);
    context.refresh();
    context.start();
}

Log4jContainer:启动log4j日志
LogbackContainer:启动Logback日志

基于注册中心的 Dubbo 服务

Dubbo 能够支持的注册中心有:consul、etcd、nacos、sofa、zookeeper、
redis、multicast

zookeeper 作为注册中心

<dubbo:registry address="zookeeper://192.168.13.102:2181" />

Dubbo 集成 Zookeeper 的实现原理

image.png

dubbo 每次都要连 zookeeper

可以通过缓存来解决这个问题

<dubbo:registry id="zookeeper"  address="zookeeper://192.168.13.102:2181" file="d:/dubbo-server" />

多注册中心支持

配置多个注册中心
<dubbo:registry id="rg1" address="zookeeper://47.110.245.187:2181"/>
<dubbo:registry id="rg2" address="zookeeper://47.110.245.187:2181"/>
将服务注册到不同的注册中心
<dubbo:reference interface="com.dubbo.IPayService" id="payService" registry="rg1"/>
注册中心的其他支持
  1. 当设置 <dubbo:registry check="false" /> 时,记录失败注册和订阅请求,
    后台定时重试
  2. 可通过 <dubbo:registry username="admin" password="1234" /> 设置
    zookeeper 登录信息
  3. 可通过 <dubbo:registry group="dubbo" /> 设置 zookeeper 的根节
    点,默认使用 dubbo 作为 dubbo 服务注册的 namespace。

Dubbo 仅仅是一个 RPC 框架?

1 基于 Dubbo 协议的远程通信
2 提供服务注册和服务发现
3 Dubbo 可以支持市面上主流的注册中心
4 Dubbo 提供了 Container 的支持,默认提供了 3 种 container。我们可以
自行扩展
5 Dubbo 对于 RPC 通信协议的支持如Dubbo 协议,它还rmi、hessian、http、webservice、thrift、rest。可以根据不同的场景选择合适的协议。如rest协议:通过http请求来访问服务。

Dubbo 监控平台安装

安装步骤

1 从github地址为https://github.com/apache/dubbo-admin,在加zip源码
2 使用idea将项目导入并执行clean package,主要原因是一旦报错,idea的错误信息比命令行的提示信息更好看一下
3 找到org.apache.dubbo.admin.DubboAdminApplication,运行main方法

访问项目

访问地址http://localhost:8080

image.png

Dubbo 的终端操作方法

进入终端

通过telnet对本地发布的dubbo服务进行调试和管理
打开命令行,执行命令telnet localhost 20880
若telnet命令不可用,则勾选启用关闭windows功能的telnet客户端选项即可


image.png

基本命令

help
image.png
ls
image.png
count

前提是dubbo协议的服务


image.png
invoke
image.png
status
image.png
上一篇下一篇

猜你喜欢

热点阅读