栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

根据动力节点dubbo笔记

根据动力节点dubbo笔记

这里写目录标题
  • 1、基本架构
    • 1.1、 dubbo支持的协议
  • 2 、dubbo 连接方式
    • 2.1、直连方式
      • 2.1.1 、提供者
      • 2.1.2、消费者
    • 2.2、 公共接口
    • 2.3 、使用zookeeper注册中心
      • 2.3.1、概述
      • 2.3.2、提供者配置文件
      • 2.3.3、消费者配置文件
  • 3 监控中心

1、基本架构


务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

1.1、 dubbo支持的协议

支持多种协议:dubbo , hessian , rmi , http, webservice , thrift , memcached , redis。
dubbo 官方推荐使用 dubbo 协议。dubbo 协议默认端口 20880
使用 dubbo 协议,spring 配置文件加入:

2 、dubbo 连接方式 2.1、直连方式

点对点的直连项目:消费者直接访问服务提供者,没有注册中心。消费者必须指定服务提供者的访问地址(url)。

2.1.1 、提供者

dubbo01-zhilian

1、 maven依赖


  org.springframework
  spring-context
  5.2.6.RELEASE


  org.springframework
  spring-webmvc
  5.2.6.RELEASE

 

  com.alibaba
  dubbo
  2.6.5

2、创建实体类
//实体类必须实例化

@Data
public class User implements Serializable {
    private String userName;
    private Integer age;
    private Integer id;

}

3、创建接口、接口实现类

public interface UserService {
    User findUserById(Integer id);
}

====================================
public class UserServiceImpl implements UserService {
    @Override
    public User findUserById(Integer id) {
        User user = new User();
        user.setAge(12);
        user.setUserName("zhangsan");
        user.setId(111111);
        return user;
    }
}

4、创建dubbo配置文件
dubbo-userService-provider.xml




    

    
    
    
    
                   

5、web.xml配置监听器

 
    contextConfigLocation
    classpath:dubbo-userService-provider.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  

6 、把项目打包成jar包
install

2.1.2、消费者

dubbo02-zhilian
1、导入maven依赖

  
    
      junit
      junit
      4.11
      test
    
    
    
      org.springframework
      spring-context
      5.2.6.RELEASE
    
    
      org.springframework
      spring-webmvc
      5.2.6.RELEASE
    
    
    
      com.alibaba
      dubbo
      2.6.5
    
    
    
      org.projectlombok
      lombok
      1.18.8
    

    
      com.yyh
      dubbo01-zhilian
      1.0-SNAPSHOT
    
  

2、创建控制层类

@RestController
public class UserController {
    @Autowired
    UserService userService;
    @RequestMapping("/user")
    public String userDetail(Model model, Integer id){
        User user=userService.findUserById(id);
        model.addAttribute("user",user);
        return "userDetail";
    }
}

3、配置springmvc文件





    

    
    
    
        
        
    

4、配置dubbo
dubbo-comsumer.xml



       
    
    
    

5、配置web.xml



  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:springMvc.xml,classpath:dubbo-comsumer.xml
    
    1
  
  
    dispatcherServlet
    /
  

2.2、 公共接口

1、创建dubbo03-zhilian-interface

//不需要实现类
2、创建提供者
dubbo04-zhilin-previder
引入maven依赖

  
      junit
      junit
      4.11
      test
    
    
    
      org.springframework
      spring-context
      5.2.6.RELEASE
    
    
      org.springframework
      spring-webmvc
      5.2.6.RELEASE
    
    
    
      com.alibaba
      dubbo
      2.6.5
    
    
    
      org.projectlombok
      lombok
      1.18.8
    
     
      
          com.yyh
          dubbo03-zhilian-interface
          1.0-SNAPSHOT
          compile
      

3、实现类
在同级包下实现


4、创建消费者
dubbo04-zhilian-consumer
配置文件不变

2.3 、使用zookeeper注册中心 2.3.1、概述

对于服务提供方,它需要发布服务,而且由于应用系统的复杂性,服务的数量、类型也不断膨胀;对于服务消费方,它最关心如何获取到它所需要的服务,而面对复杂的应用系统,需要管理大量的服务调用。
  而且,对于服务提供方和服务消费方来说,他们还有可能兼具这两种角色,即需要提供服务,有需要消费服务。 通过将服务统一管理起来,可以有效地优化内部应用对服务发布/使用的流程和管理。服务注册中心可以通过特定协议来完成服务对外的统一。Dubbo 提供的注册中心有如下几种类型可供选:
  Multicast 注册中心:组播方式
  Redis 注册中心:使用 Redis 作为注册中心
  Simple 注册中心:就是一个 dubbo 服务。作为注册中心。提供查找服务的功能。
  Zookeeper 注册中心:使用 Zookeeper 作为注册中心
  推荐使用 Zookeeper 注册中心。

Zookeeper 是一个高性能的, 分布式的 ,开放源码的分布式应用程序协调服务。简称 zk。Zookeeper 是翻译管理是动物管理员。可以理解为 windows 中的资源管理器或者注册表。他是一个树形结构。这种树形结构和标准文件系统相似。ZooKeeper 树中的每个节点被称为Znode。和文件系统的目录树一样,ZooKeeper 树中的每个节点可以拥有子节点。每个节点表示一个唯一服务资源。Zookeeper 运行需要 java 环境。
注册中心的高可用
概念:
  高可用性(High Availability):通常来描述一个系统经过专门的设计,从而减少不能提供服务的时间,而保持其服务的高度可用性。
  Zookeeper 是高可用的,健壮的。Zookeeper 宕机,正在运行中的 dubbo 服务仍然可以正常访问。
健壮性
⚫ 监控中心宕掉不影响使用,只是丢失部分采样数据
⚫ 注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
⚫ 服务提供者无状态,任意一台宕掉后,不影响使用
⚫ 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
演示操作:

先启动 zookeeper, dubbo 服务提供者,dubbo 服务消费者。
测试正常访问胸
停止 zookeeper
测试消费者仍然可以访问提供者

2.3.2、提供者配置文件






    
    

    
    

    
    
    
    

    
    
    
    

    
    


2.3.3、消费者配置文件



    
    

    
    

    
    

    
    
    
    
    
        
    

    
    

    
    


3 监控中心

dubbo 的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入 dubbo-admin。通过 dubbo-admin 可以对消费者和提供者进行管理。可以在 dubbo 应用部署做动态的调整,
服务的管理。
dubbo-admin
  图形化的服务管理页面;安装时需要指定注册中心地址,即可从注册中心中获取到所有的提
供者/消费者进行配置管理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号