Apache Dubbo 学习二

Apache Dubbo 学习二,第1张

Apache Dubbo 学习二

文章目录
  • 前言
  • 一、使用步骤
    • 1.服务提供者
    • 2.服务消费者
  • 总结


前言

上一次学习了duboo单机版的,现在来学习一下使用zookeeper做注册中心。


一、使用步骤 1.服务提供者

首先这是服务提供者的项目结构

首先配置项目依赖
pom.xml




  4.0.0

  dubbo
  6-multl-zk-provider
  1.0-SNAPSHOT
  war

  
    
    
      com.alibaba
      dubbo
      2.6.4
    
    
    
      org.springframework
      spring-context
      4.3.10.RELEASE
    
    
      org.springframework
      spring-webmvc
      4.3.10.RELEASE
    
    
      dubbo
      3-interface
      1.0-SNAPSHOT
    
    
      org.apache.curator
      curator-framework
      4.1.0
    
    
      org.slf4j
      slf4j-simple
      1.7.25
      compile
    
  


这里写了两个版本的接口,可以根据不同版本调用不同的接口,后面会介绍。
SomeServiceImpl

package dubbo.service.impl;

import dubbo.model.User;
import dubbo.service.SomeService;

public class SomeServiceImpl implements SomeService {
    public String hello() {
        return "hello dubbo zookeeper";
    }

    public User queryUserById(Integer id) {
        User user = new User();
        user.setId(id);
        user.setUsername("zk-"+id);
        return user;
    }
}

SomeServiceImpl_v2

package dubbo.service.impl;

import dubbo.model.User;
import dubbo.service.SomeService;

public class SomeServiceImpl_v2 implements SomeService {
    public String hello() {
        return "hello SomeServiceImpl_v2";
    }

    public User queryUserById(Integer id) {
        User user = new User();
        user.setId(id);
        user.setUsername("zk2-"+id);
        return user;
    }
}

提供者暴露接口
dubbo-zk-provider.xml




    
    
    
    
    
    
    
    
    

    
    
    

导入配置文件。
web.xml




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

2.服务消费者

消费者项目结构。

对外访问的接口。
SomeController

package dubbo.web;

import dubbo.model.User;
import dubbo.service.SomeService;
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 SomeController {

    @Autowired
    private SomeService someService;

    @Autowired
    private SomeService someService_v2;

    @RequestMapping(value = "/hello")
    public String hello(Model model){
        //调用远程接口服务
        String hello = someService.hello();
        model.addAttribute("hello",hello);

        String hello_v2 = someService_v2.hello();
        model.addAttribute("hello_v2",hello_v2);
        return "hello";
    }

    @RequestMapping(value = "/user/detail")
    public User queryUserById(Model model,Integer id){
        User user = someService.queryUserById(id);
        model.addAttribute("user",user);
        return user;
    }
}

消费者配置
dubbo-zk-consumer.xml




    
    

    

    
    
    

springmvc.xml




    
    

    
    

    
        
        
    

配置网络拦截器
web.xml




	
		contextConfigLocation
		classpath:dubbo-zk-consumer.xml,classpath:springmvc.xml
	

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


视图配置
hello.jsp

<%--
  Created by IntelliJ IDEA.
  User: Admin
  Date: 2021/12/11
  Time: 12:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${hello}
${hello_v2}



两个项目配置完成之后,就配置运行tomcat运行即可。像学习一里面那样配置一样。在这里就不多介绍了。直接看的小伙伴请回去看一。https://blog.csdn.net/qq_27756989/article/details/121878747

先运行启动者,再运行消费者就可以看到结果了。

总结

今日就学习到这啦~ 一步一步变强!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5683139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存