栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Dubbo:使用注册中心Zookeeper

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dubbo:使用注册中心Zookeeper

创建3个工程:

创建接口工程:

 

User类:

package com.bjpowernode.dubbo.model;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;
    private String username;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

UserService接口:

package com.bjpowernode.dubbo.service;


import com.bjpowernode.dubbo.model.User;

public interface UserService {
    //根据用户标识获取用户信息
    User queryUserById(Integer id,String username);


}

创建服务的提供者:

pom.xml:引入依赖




  4.0.0

  com.bjpowernode.dubbo
  007-zk-userservice-provider
  1.0.0
  war

  007-zk-userservice-provider Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.7
    1.7
  

  
    
      junit
      junit
      4.11
      test
    

    
    
      org.springframework
      spring-context
      4.3.16.RELEASE
    
    
      org.springframework
      spring-webmvc
      4.3.16.RELEASE
    

    
    
      com.alibaba
      dubbo
      2.6.2
    

    
    
      com.bjpowernode.dubbo
      006-zk-interface
      1.0.0
    

    
    
      org.apache.curator
      curator-framework
      4.1.0
    

  


  
    
    
      
        maven-compiler-plugin
        3.1
        
          1.8
          1.8
        
      
    
  

实现类UserServiceImpl :

package com.bjpowernode.dubbo.service.impl;


import com.bjpowernode.dubbo.model.User;
import com.bjpowernode.dubbo.service.UserService;

public class UserServiceImpl implements UserService {
    @Override
    public User queryUserById(Integer id, String username) {
        User user = new User();
        user.setId(id);
        user.setUsername(username);
        return user;
    }

}

dubbo核心配置文件:dubbo-zk-userservice-provider.xml




    
    

    
    
    

    
    

    


    
    

    
    

web.xml:相关配置




    
    
        contextConfigLocation
        classpath:dubbo-zk-userservice-provider.xml
    

    
    
        org.springframework.web.context.ContextLoaderListener
    

配置tomcat:

 服务的消费者:

pom.xml:引入依赖:




  4.0.0

  com.bjpowernode.dubbo
  008-zk-consumer
  1.0.0
  war

  008-zk-consumer Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.7
    1.7
  

  
    
      junit
      junit
      4.11
      test
    

    
    
      org.springframework
      spring-context
      4.3.16.RELEASE
    
    
      org.springframework
      spring-webmvc
      4.3.16.RELEASE
    

    
    
      com.alibaba
      dubbo
      2.6.2
    

    
    
      com.bjpowernode.dubbo
      006-zk-interface
      1.0.0
    

    
    
      org.apache.curator
      curator-framework
      4.1.0
    

  


  
    
    
      
        maven-compiler-plugin
        3.1
        
          1.8
          1.8
        
      
    
  

dubbo核心配置文件

dubbo-zk-consumer.xml




    
    

    
    

    
    

spring配置文件:applicationContext.xml




    
    

    
    

    
    
        
        
    

web.xml:




    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:applicationContext.xml,classpath:dubbo-zk-consumer.xml
        
    

    
        dispatcherServlet
        
        /
    

控制器UserController:

package com.bjpowernode.dubbo.web;


import com.bjpowernode.dubbo.model.User;
import com.bjpowernode.dubbo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/user")
    public String userDetil(Model model,Integer id, String username){
        //根据用户标识获取用户详情
        User user=userService.queryUserById(id,username);


        model.addAttribute("user",user);

        return "userDetail";
    }
}

创建接收参数页面userDetail.jsp:

<%--
  Created by IntelliJ IDEA.
  User: DELL
  Date: 2022/7/14
  Time: 13:29
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>


    Title
    


用户编号:${user.id}
用户姓名:${user.username}



首先需要先运行Zookeepeer:

在依次运行服务者提供者 、消费者的tomcat:

再地址栏输入:

 1.3注册中心的高可用 概念:

高可用性(High Availability):

通常来描述一个系统经过专门的设计,从而减少不能提供服 务的时间,而保持其服务的高度可用性。

Zookeeper 是高可用的,健壮的。Zookeeper 宕机,正在运行中的 dubbo 服务仍然可以正 常访问。

健壮性

⚫ 监控中心宕掉不影响使用,只是丢失部分采样数据

⚫ 注册中心仍能通过缓存提供服务列表查询,但不能注册新服务

⚫ 服务提供者无状态,任意一台宕掉后,不影响使用

⚫ 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢 复

关闭检查往往是在消费者那去用的,在开发的时候设置成false

​​​​​​​ 

 

往往在服务的提供者加上:调用这个服务不能超过15000毫秒

 

 

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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