【SaaS - Export项目】27 - Dubbo框架细节问题,Dubbo管理控制台的配置使用(可以查看provider和consumers等信息并进行增删操作)

分手后的思念是犯贱 2022-12-20 08:53 24阅读 0赞

文章目录

    • 1, Dubbo的一些小知识点
      • 1.1 Dubbo细节(1) - 提高开发效率
      • 1.2 Dubbo细节(2)配置说明(一般用注解,不用xml)
      • 1.3 Dubbo细节(3)协议配置
      • 1.4 Dubbo细节(4)启动时检查
      • 1.5 Dubbo细节(5)负载均衡
      1. Dubbo管理控制台(dubbo-admin-2.6.0-war安装部署)
      • 2.1 Dubbo管理控制台环境搭建步骤
      • 2.2 Dubbo管理控制台使用步骤

1, Dubbo的一些小知识点

1.1 Dubbo细节(1) - 提高开发效率

启动提供方服务的两种方式:
1) 部署到tomcat启动,适合正式项目
2) 通过main函数启动,适合开发阶段(提高开发效率,减少调试时间),就是在最后一行写一个阻塞方法。(不在控制台输入字符并回车就一直是启动状态)

  1. /** * Dubbo优化细节一 * 使用main函数启动,用于开发阶段(提高开发效率,减少调试时间) * */
  2. public class StartUp {
  3. public static void main(String[] args) throws IOException {
  4. //1. 读取dubbo配置
  5. ClassPathXmlApplicationContext cxt= new ClassPathXmlApplicationContext("dubbo-provider.xml");
  6. //2. 开启服务
  7. cxt.start();
  8. //3. 让程序阻塞,提供方一直提供服务
  9. System.in.read();
  10. }
  11. }

运行(一直等待) 【注意:需要关闭之前开启的】
在这里插入图片描述
输入字符回车就执行结束
在这里插入图片描述

1.2 Dubbo细节(2)配置说明(一般用注解,不用xml)

  1. 注解配置(【推荐使用】)
    默认在第一个工程(provider提供者)的Service是使用dubbo的@Service
    第二个工程(consumer消费者)的注入是使用dubbo的@Reference

  2. xml配置(就是将注解注入改为使用xml的bean注入)
    dubbo-provider.xml

    1. <bean id="helloWordService" class="com.xgf.service.impl.HelloServiceImpl"/>
    1. <dubbo:service >interface="com.xgf.service.IHelloWordService" ref="helloWordService"/>

dubbo-consumer.xml

  1. <!-- 使用xml注入 -->
  2. <!--让当前去获取provider的实现类对象 必须保护相同的id-->
  3. <dubbo:reference interface="com.xgf.service.IHelloWordService" id="helloWordService"/>

1.3 Dubbo细节(3)协议配置

协议一般在服务提供者(provider)一方配置,可以指定使用的协议名称和端口号(dubbo协议案例)
<dubbo:protocol name=“dubbo” port=“20881”/>

推荐使用的是dubbo协议。
其中Dubbo支持的协议有:dubbo、rmi、hessian、http、webservice、rest、redis等。

  1. <!-- 多协议配置 -->
  2. <dubbo:protocol name="dubbo" port="20880" />
  3. <dubbo:protocol name="rmi" port="1099" />
  4. <!-- 使用dubbo协议暴露服务 -->
  5. <dubbo:service interface="com.xgf.service.HelloService" ref="helloService" protocol="dubbo" />
  6. <!-- 使用rmi协议暴露服务 -->
  7. <dubbo:service interface="com.xgf.service.DemoService" ref="demoService" protocol="rmi" />

1.4 Dubbo细节(4)启动时检查

  1. 启动检查
    <dubbo:consumer check=“false”/>
    配置在服务消费者(consumer)一方(提供方没有),如果不配置默认check值为true。
  2. 作用
    Dubbo 缺省会在启动时检查依赖的服务是否用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题。可以通过将check值改为false来关闭检查。
  3. 使用场景
    建议在开发阶段将check值设置为false,在生产环境下改为true。(一般开发也没有太多的问题了)

1.5 Dubbo细节(5)负载均衡

  1. 负载均衡(Load Balance)
    其实就是将请求分摊到多个操作单元(多个节点)上进行执行,从而共同完成工作任务。(分担的时候使用算法),就是controller调用分配给比较空闲的机器(而不是满载的机器)
  2. 负载均衡的常用算法
    在集群负载均衡时,Dubbo 提供了多种均衡策略(包括随机、轮询、最少活跃调用数、一致性Hash)【默认不配置缺省为random随机调用(就是可能出现一些机器空闲一些机器满载)】
  3. 几个配置的值
    random, roundrobin, leastactive
  4. 配置负载均衡策略
    既可以在服务提供者(provider)一方配置,也可以在服务消费者一方配置(consumer配置在消费方)。

前提条件:需要开启注解
配置在提供方(provider)

  1. //开启Dubbo负载均衡,配置在提供方,默认值random,三个配置值(random, roundrobin, leastactive)
  2. @Service(interfaceClass = IHelloWordService.class,loadbalance = "random")
  3. public class HelloServiceImpl implements IHelloWordService {

配置在消费方(consumer)

  1. //check = true,loadbalance = "random" 配置负载均衡,配置在消费方(默认值random)
  2. public class MyController {
  3. @Reference(check = true,loadbalance = "random")
  4. IHelloWordService iHelloWordService;//去provider取对象

2. Dubbo管理控制台(dubbo-admin-2.6.0-war安装部署)

dubbo提供了一个将web工程打包成的war,然后就可以部署到tomcat服务器上面,然后可以查看provider和consumers等信息并进行增删操作。
(开发时,如果需要知道Zookeeper注册中心都注册了哪些服务,有哪些消费者来消费这些服务。我们可以通过部署一个管理中心来实现。其实管理中心就是一个web应用,部署到tomcat即可。

百度网盘链接:dubbo-admin-2.6.0.war
提取码:8888

2.1 Dubbo管理控制台环境搭建步骤

  1. 将dubbo-admin-2.6.0.war文件复制到tomcat的webapps目录下

在这里插入图片描述

  1. 启动tomcat,这个war文件就会自动解压成文件夹

通过tomcat的bin目录下的startup.bat启动tomcat服务器
【注意】解压之后将dubbo-admin-2.6.0.war删除,防止下次启动继续解压
在这里插入图片描述
在这里插入图片描述

  1. 修改WEB-INF下的dubbo.properties文件(找到zookeeper的ip和端口)
    【注意】将dubbo.registry.address对应的值修改为对应当前使用的Zookeeper的ip地址和端口号

webapps/dubbo-admin-2.6.0/WEB-INF/dubbo.properties

  1. dubbo.registry.address=zookeeper://127.0.0.1:2181
  2. dubbo.admin.root.password=root
  3. dubbo.admin.guest.password=guest

2.2 Dubbo管理控制台使用步骤

  1. 启动tomcat服务器
  2. 开启zookeeper服务器
  3. 访问http://localhost:8080/dubbo-admin-2.6.0/,输入用户名和密码
    (用户名和密码就是前面配置的dubbo.properties里面的,默认有两个
    用户名:root,密码:root
    用户名:guest,密码:guest
    在这里插入图片描述
    登录成功:
    在这里插入图片描述
    可以对provider/consumer做增删改查
    在这里插入图片描述
    查看dubbo上的provider提供方
    在这里插入图片描述
    测试开启运行dubbo的提供方

【注意】http://localhost:8080/dubbo-admin-2.6.0/
如果tomcat服务器的端口没有修改就使用8080来访问,如果修改了就按你自己修改的端口访问
【】将provider、consumers和dubbo.propertiesdubbo.registry.address=zookeeper://127.0.0.1:2181的ip地址都改为部署的本地ip地址。

发表评论

表情:
评论列表 (有 0 条评论,24人围观)

还没有评论,来说两句吧...

相关阅读