基于url发布无注册中心dubbo服务demo

1:创建dubbo-server maven工程

2:分别在dubbo-server下创建2个模块server-api(定义接口)和server-provider(实现接口)

server-api:

package com.cn.dubbo;

public interface IGpHello {

String sayHello(String msg);

}

server-provider:
package com.cn.dubbo;

public class GpHelloImpl implements IGpHello {    public String sayHello(String msg) {        return "hello yulong "+msg;    }}
package com.cn.dubbo;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class Bootstrap {    public static void main(String[] args) throws IOException {        ClassPathXmlApplicationContext context=                new ClassPathXmlApplicationContext("META-INF/spring/dubbo-server.xml");        context.start();        System.out.println("服务启动成功");        System.in.read();//阻塞进程    }}server-provider pom.xml 引入dubbo等jar包
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>

<groupId>com.cn.dubbo</groupId>    <artifactId>dubbo-client</artifactId>    <version>1.0-SNAPSHOT</version>    <url>http://www.example.com</url>

<dependencies>        <dependency>            <groupId>com.cn.dubbo</groupId>            <artifactId>server-api</artifactId>            <version>1.0-SNAPSHOT</version>        </dependency>

<dependency>            <groupId>com.alibaba</groupId>            <artifactId>dubbo</artifactId>            <version>2.5.6</version>        </dependency>        <dependency>            <groupId>org.apache.zookeeper</groupId>            <artifactId>zookeeper</artifactId>            <version>3.4.10</version>        </dependency>        <dependency>            <groupId>com.101tec</groupId>            <artifactId>zkclient</artifactId>            <version>0.10</version>        </dependency>        <dependency>            <groupId>com.caucho</groupId>            <artifactId>hessian</artifactId>            <version>4.0.38</version>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>3.0.1</version>        </dependency>        <dependency>            <groupId>org.mortbay.jetty</groupId>            <artifactId>jetty</artifactId>            <version>6.1.26</version>        </dependency>

</dependencies>

</project>

dubbo-server.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"       xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans.xsd       http://code.alibabatech.com/schema/dubbo       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!--提供方信息-->    <dubbo:application name="dubbo-server" owner="yulong" />    <!--注册中心-->    <dubbo:registry address="N/A"/>

<dubbo:service interface="com.cn.dubbo.IGpHello" ref="gpHelloService"/>

<bean id="gpHelloService" class="com.cn.dubbo.GpHelloImpl" />

</beans> 
3:idea工具mavenprojects 把dubbo-server打成jar包生成到本地,一会客户端引用jar4:新建dubbo-client工程5:bubbo-client-pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>

<groupId>com.cn.dubbo</groupId>    <artifactId>dubbo-client</artifactId>    <version>1.0-SNAPSHOT</version>    <url>http://www.example.com</url>

<dependencies>        <dependency>            <groupId>com.cn.dubbo</groupId>            <artifactId>server-api</artifactId>            <version>1.0-SNAPSHOT</version>        </dependency>

<dependency>            <groupId>com.alibaba</groupId>            <artifactId>dubbo</artifactId>            <version>2.5.6</version>        </dependency>        <dependency>            <groupId>org.apache.zookeeper</groupId>            <artifactId>zookeeper</artifactId>            <version>3.4.10</version>        </dependency>        <dependency>            <groupId>com.101tec</groupId>            <artifactId>zkclient</artifactId>            <version>0.10</version>        </dependency>        <dependency>            <groupId>com.caucho</groupId>            <artifactId>hessian</artifactId>            <version>4.0.38</version>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>3.0.1</version>        </dependency>        <dependency>            <groupId>org.mortbay.jetty</groupId>            <artifactId>jetty</artifactId>            <version>6.1.26</version>        </dependency>

</dependencies>

</project>

6:dubbo-client.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"       xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans.xsd       http://code.alibabatech.com/schema/dubbo       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!--提供方信息-->    <dubbo:application name="dubbo-client" owner="yulong" />    <!--注册中心-->    <dubbo:registry address="N/A"/>

<dubbo:reference id="helloService"  interface="com.cn.dubbo.IGpHello"    url="dubbo://127.0.0.1:20880/com.cn.dubbo.IGpHello"    />

</beans>
package com.cn.dubbo;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {    public static void main(String[] args) {

ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("dubbo-client.xml");        IGpHello iGpHello = (IGpHello) context.getBean("helloService");        System.out.println(iGpHello.sayHello("yulong"));    }}控制台:

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
hello yulong yulong

Process finished with exit code 0



原文地址:https://www.cnblogs.com/Yulong123/p/10037099.html

时间: 2024-11-09 19:35:05

基于url发布无注册中心dubbo服务demo的相关文章

SpringCloud 服务注册中心 服务提供者 服务消费者

1. 建立"服务注册中心" 创建一个基础的Spring Boot工程,并在pom.xml中引入需要的依赖内容: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> 在主类中通过@EnableEurekaSe

SpringCloudGateWay修改请求路径,从注册中心获得服务

@Resource    private DiscoveryClient disClient;    @Resource    private LoadBalancerClient loadBlance; public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { String contentType; ServiceInstance serviceInstance = null; boole

windows搭建dubbo服务demo

1.安装zookeeper. 将/conf目录下的zoo_sample.cfg文件改名为zoo.cfg,修改scf.cfg文件,添加dataDir,dataLogDir. 进入bin/zkService.cmd启动(单机) 2.创建一个dubbo-demo项目(spring项目),建立三个moudle:dubbo-api.dubbo-consumer.dubbo-provider. consumer和provider项目均引入 <dependency> <groupId>org.a

11. Dubbo原理解析-注册中心之基于dubbo协议的接口介绍

服务注册与发现的中心,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务. Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,使用着可以直接实现自己的注册中心. @SPI("dubbo") public interface RegistryFactory { /** * 连接注册中心. * 连接注册中心需处理契约 * 1. 当设置check=false时表示不检查连接,否则在连接不上时抛出异常. * 2. 支持URL上的username:pas

12. Dubbo原理解析-注册中心之基于dubbo协议的简单注册中心实现

基于dubbo协议开源只是给出了默认一个注册中心实现SimpleRegistryService, 它只是一个简单实现,不支持集群,就是利用Map<String/*ip:port*/, Map<String/*service*/, URL>来存储服务地址, 具体不在啰嗦了,请读者翻看源代码,可作为自定义注册中的参考. 注册中心启动 SimpleRegistryService本身也是作为一个dubbo服务暴露. <dubbo:protocolport="9090"

基于ZooKeeper的Dubbo注册中心的简单例子

一:安装zookeeper 系统环境 Ubuntu 14.04.2 LTS x64 IP : 192.168.1.102 下载zookeeper-3.4.6.tar.gz到目录/opt,解压 mkdir /opt/zookeeper-3.4.6/data vim /opt/zookeeper-3.4.6/conf/zoo.cfg 输入如下内容 tickTime=2000 dataDir=/opt/zookeeper-3.4.6/data clientPort=2181 然后,启动 sh /opt

Dubbo点滴(5)之服务注册中心

首先DUBBO本质上是一款RPC框架,不可缺少的2个角色:服务提供者和服务消费者. 已经剖析了服务端暴露端口过程.本文简单说下注册中心. 1.注册中心是什么玩意 这是官网提供的图例 通过图例,可以看出消费者和提供者并不是直接通信的,中间有个第三者,就是注册中心.这种结构,可以实现消费者和提供者两者的依赖,和参数信息的集群化.所以这带来了几个问题. 服务注册 服务发现 服务订阅 服务通知 2. 服务暴露及服务注册过程 <Dubbo点滴(4)之暴露服务解析>已经剖析了dubbo协议具体打开网络端口

淘宝SOA框架dubbo学习(2)--搭建Zookeeper注册中心服务

淘宝SOA框架dubbo学习(1) http://my.oschina.net/hanshubo/blog/374974 1.下载 Zookeeper 下载页面地址: http://www.apache.org/dist/zookeeper/zookeeper-3.4.6/ 注:下面步骤,windows和linux下几乎没什么太大区别 2.解压缩后进入 C:\zookeeper-3.4.6 目录结构如下图 3.进入conf目录 备份zoo_sample.cfg文件,然后将zoo_sample.c

Spring Cloud Eureka 分布式开发之服务注册中心、负载均衡、声明式服务调用实现

介绍 本示例主要介绍 Spring Cloud 系列中的 Eureka,使你能快速上手负载均衡.声明式服务.服务注册中心等 Eureka Server Eureka 是 Netflix 的子模块,它是一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移. 服务注册和发现对于微服务架构而言,是非常重要的.有了服务发现和注册,只需要使用服务的标识符就可以访问到服务,而不需要修改服务调用的配置文件.该功能类似于 Dubbo 的注册中心,比如 Zookeeper. Eureka