基于mave的dubbo分别架构


开始前,先看一下demo项目工程结构:

1、抽离接口
dubbo-api工程,根据业务抽离接口,deploy到mave nexus。
public interface TestService {
/**
* @param name
* @return
*/
public String sayHello(String name);
/**
* @param cmd
* @return
*/
public String linuxCMD(String cmd);
}
提供三维坐标:
<dependency>
<groupId>com.dubbo</groupId>
<artifactId>dubbo-api</artifactId>
<version>0.0.-SNAPSHOT</version>
</dependency>
2、提供者和消费者并行
dubbo-service工程pom引入实现接口三维坐标实现接口。
import com.dubbo.service.TestService;
import com.dubbo.common.TestLinuxCmd;
public class TestServiceImpl implements TestService {
@Override
public String sayHello(String name) {
// TODO Auto-generated method stub
return null;
}
@Override
public String linuxCMD(String cmd) {
String exec = TestLinuxCmd.exec("192.168.20.20", "root", "", , name);
return exec;
}
}
注:TestLinuxCmd方法来至dubbo-common工程,公共方法到放到这里,就不多做解释了。
写完服务记得暴露出服务:
<dubbo:service interface="com.dubbo.service.TestService" ref="testService" />
dubbo-controller工程pom同样也要引入实现接口三维坐标,调用这个接口。
package com.dubbo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.dubbo.service.TestService;
@Controller
public class MyController {
@Autowired
private TestService testService;
@RequestMapping(value = "/test")
@ResponseBody
public String testSay(@RequestParam(value = "name",defaultValue = "") String name){
StringBuffer sb = new StringBuffer();
sb.append("Dubbo: ").append(testService.sayHello(name));
return sb.toString();
}
}
消费者不需要关心谁提供的服务,它只需要调用三维坐标的接口即可。
写完同样记得暴露出服务:
<dubbo:reference interface="com.dubbo.service.TestService" id="testService" check="false" />
源码下载:
https://files.cnblogs.com/files/Javame/dubbo.zip
基于mave的dubbo分别架构的更多相关文章
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- 分享我们项目中基于EF事务机制的架构
写在前面: 1. 本文中单元测试用到的数据库,在执行测试之前,会被清空,即使用空数据库. 2. 本文中的单元测试都是正确通过的. 要理解EF的事务机制,首先要理解这2个类:TransactionSco ...
- 通过dubbo暴露接口调用方法,及基于zookeeper的dubbo涉及配置文件
现在很流行的Dubbo很多朋友都听说过吧,最近我也在看这方面的东西,分享先我的心得笔记. 先说说我们团队要做的项目框架,很简单重在实现基于zookeeper的dubbo注册. 框架:springmvc ...
- 基于netty的微服务架构
基于netty的微服务架构 微服务一篇好文章 http://san-yun.iteye.com/blog/1693759 教程 http://udn.yyuap.com/doc/essential-n ...
- 新项目架构从零开始(三)------基于简单ESB的服务架构
这几个月一直在修改架构,所以迟迟没有更新博客. 新的架构是一个基于简单esb的服务架构,主要构成是esb服务注册,wcf服务,MVC项目构成. 首先,我门来看一看解决方案, 1.Common 在Com ...
- 分享我们项目中基于EF事务机制的架构 【转载】
http://www.cnblogs.com/leotsai/p/how-to-use-entity-framework-transaction-scope.html 写在前面: 1. 本文中单元测试 ...
- 基于springboot构建dubbo的入门demo
之前记录了构建dubbo入门demo所需的环境以及基于普通maven项目构建dubbo的入门案例,今天记录在这些的基础上基于springboot来构建dubbo的入门demo:众所周知,springb ...
- 配置percona mysql server 5.7基于gtid主主复制架构
配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...
- 基于注解的Dubbo服务配置
基于注解的Dubbo服务配置可以大大减少dubbo xml配置文件中的Service配置量,主要步骤如下: 一.服务提供方 1. Dubbo配置文件中增加Dubbo注解扫描 <!-- ...
随机推荐
- js-实时获取键值码
<script> document.onkeydown=function(event){ console.log(event.keyCode) //在控制台打印 } </scr ...
- 微信小程序如何套用iconfont
前言 如果你在开发微信时,没有图标的话,可以到http://www.iconfont.cn/ 官方下使用图标,那么我们去使用一些吧,到官方网址下点击使用~ 下载代码即可使用,看看下载的文件吧. 如图可 ...
- 分布式任务调度系统xxl-job源码探究(二、服务中心)
接下来看下服务端代码 服务端源码 服务端通过管理quartz定时任务组件,分发任务 先从入口看起,由web.xml进入,可以看出,自己编写的代码从applicationcontext-xxl-job- ...
- Spring Boot 核心配置文件 bootstrap & application 详解。
用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...
- Python项目代码结构
目录结构组织方式 简要解释一下: bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行. luffy/: 存放项目的所有源代码.(1) 源代码中的所有模块.包都应该放在此目录. ...
- shiro测试常见错误
org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.sh ...
- python国外博客推荐
http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/ https://www. ...
- Linux学习笔记之六————Linux常用命令之系统管理
<1>查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: <2>显示或设置时间:date 设置时间格式(需要管理员权限): date [MMDDhhmm[[C ...
- 取消vim打开文件全是黄色方法
如下图: 取消方法: 按下esc键 :nohl 回车
- nginx如何实现高并发
nginx如何实现高并发 简单来讲,就是异步,非阻塞,使用了epoll和大量的底层代码优化. 稍微详细一点展开的话,就是nginx的特殊进程模型和事件模型的设计. 进程模型 nginx采用一个mast ...