相关的资料

项目结构

项目说明

  • [lesson1-config-api] 是一个接口工程,编译后是jar包,被其他工程依赖
  • [lesson1-config-2-properties-provider] 是服务提供者

代码示例

  • [IEchoService]
public interface IEchoService {
void echo();
}
  • [EchoServiceImpl]
@Service
public class EchoServiceImpl implements IEchoService {
public void echo() {
System.out.printf("hello");
}
}
  • [ProviderApp]
@RestController
@SpringBootApplication
@EnableDubbo(scanBasePackages = "provider.service.impl")
@PropertySource("classpath:/spring/dubbo-provider.properties")
public class ProviderApp { @GetMapping("/hello")
public String hello() {
return "hello";
} public static void main(String[] args) throws IOException {
/**
* 这种方式启动不能注册服务到zookeeper
*/
//SpringApplication.run(ProviderApp.class, args); /**
* 官方的demon采用这种方式
*/
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ProviderApp.class);
context.start();
System.in.read(); } }

或者

@RestController
@SpringBootApplication
public class ProviderApp { @GetMapping("/hello")
public String hello() {
return "hello";
} public static void main(String[] args) throws IOException {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ProviderConfiguration.class);
context.start();
System.in.read(); } @Configuration
@EnableDubbo(scanBasePackages = "provider.service.impl")
@PropertySource("classpath:/spring/dubbo-provider.properties")
static class ProviderConfiguration {
} }
  • [dubbo-provider.properties]
# dubbo-provider.properties
dubbo.application.name=annotation-provider
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.address=zookeeper://127.0.0.1:2181

如果配置文件不指定注册中心的话,可以在代码里指定


@Configuration
@EnableDubbo(scanBasePackages = "provider.service.impl")
@PropertySource("classpath:/spring/dubbo-provider.properties")
static class ProviderConfiguration {
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
//registryConfig.setAddress("multicast://224.5.6.7:1234");
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
return registryConfig;
} }
  • [pom.xml]
            <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.1</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-config-spring</artifactId>
<version>2.7.1</version>
</dependency>

dubbo-config-spring是必须的,如果没有是不会报错,但是服务注册不上

zkCli 查看

[zk: localhost:2181(CONNECTED) 259] ls /dubbo/com.xh.dubbo.learn.lesson1.api.IEchoService/providers
Node does not exist: /dubbo/com.xh.dubbo.learn.lesson1.api.IEchoService/providers
[zk: localhost:2181(CONNECTED) 260] ls /dubbo/com.xh.dubbo.learn.lesson1.api.IEchoService/providers
[dubbo%3A%2F%2F127.0.1.1%3A20880%2Fcom.xh.dubbo.learn.lesson1.api.IEchoService%3Fanyhost%3Dtrue%26application%3Dannotation-provider%26bean.name%3Dproviders%3Adubbo%3Acom.xh.dubbo.learn.lesson1.api.IEchoService%26default.deprecated%3Dfalse%26default.dynamic%3Dfalse%26default.register%3Dtrue%26deprecated%3Dfalse%26dubbo%3D2.0.2%26dynamic%3Dfalse%26generic%3Dfalse%26interface%3Dcom.xh.dubbo.learn.lesson1.api.IEchoService%26methods%3Decho%26pid%3D3935%26register%3Dtrue%26release%3D2.7.1%26side%3Dprovider%26timestamp%3D1557307484341]

在控制台关闭服务后发现zk中的节点没有删除

delete path # 删除叶子节点

rmr path # 递归删除节点和他的子节点

dubbo学习笔记一(服务注册)的更多相关文章

  1. SpringCloud学习笔记:服务注册与发现Eureka(2)

    1. Eureka简介 Eureka是一个用于服务注册和发现的组件,分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中心,Eureka Cl ...

  2. SpringCloud学习笔记:服务支撑组件

    SpringCloud学习笔记:服务支撑组件 服务支撑组件 在微服务的演进过程中,为了最大化利用微服务的优势,保障系统的高可用性,需要通过一些服务支撑组件来协助服务间有效的协作.各个服务支撑组件的原理 ...

  3. Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多注册中心 可以自行扩展注册中心,参见:注册中心扩展 (1) 多注册中心注册 比如 ...

  4. Dubbo -- 系统学习 笔记 -- 示例 -- 只注册

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 只注册 问题 如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部 ...

  5. Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 服务分组 当一个接口有多种实现时,可以用group区分. <dubbo:se ...

  6. 阿里巴巴分布式服务框架dubbo学习笔记

    Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的 ...

  7. Dubbo学习笔记10:Dubbo服务消费方启动流程源码分析

    同理我们看下服务消费端启动流程时序图: 在<Dubbo整体架构分析>一文中,我们提到服务消费方需要使用ReferenceConfig API来消费服务,具体是调用代码(1)get()方法来 ...

  8. Dubbo学习笔记9:Dubbo服务提供方启动流程源码分析

    首先我们通过一个时序图,直观看下Dubbo服务提供方启动的流程: 在<Dubbo整体框架分析>一文中我们提到,服务提供方需要使用ServiceConfig API发布服务,具体是调用代码( ...

  9. Dubbo学习笔记2:Dubbo服务提供端与消费端应用的搭建

    Demo结构介绍 Demo使用Maven聚合功能,里面有三个模块,目录如下: 其中Consumer模块为服务消费者,里面TestConsumer和consumer.xml组成了基于Spring配置方式 ...

随机推荐

  1. Winform使用ML.NET时无法加载 DLL“CpuMathNative”问题的解决方法

    同样的代码运行在netcore下可以,运行在winform中就出现错误: 引发的异常:“System.DllNotFoundException”(位于 Microsoft.ML.Data.dll 中) ...

  2. ubuntu最近升级到最新的linux内核后,网络无法使用怎么办?

    答:进入旧的内核中编译需要的网卡模块 1. 启动旧的内核进入系统 2. 安装新内核源码 3. 找出当前的网卡型号 4. 尝试卸载某个与网卡相关的内核模块,观察是否影响当前网卡的使用,如果有影响,那么便 ...

  3. Nova 实现的 Fit Instance NUMA to Host NUMA 算法

    目录 文章目录 目录 前文列表 numa_fit_instance_to_host _numa_fit_instance_cell _numa_fit_instance_cell_with_pinni ...

  4. 安装好oracle11gR2之后在相应路径下却没有生成tnsnames.ora和listener.ora

    oracle安装帖子:https://blog.csdn.net/wjb123sw99/article/details/80780277 oracle安装过程中检查失败:需开启C盘共享,或者勾选忽略, ...

  5. subprocess.call 使用

    1.subprocess.call 里面的命令分开写,实例如下: subprocess.call 是不能作为赋值的,需要用到 subprocess.check_output 函数,而且如果要引用赋值就 ...

  6. EncryptionAndDecryptionC# 加密 解密

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. PJzhang:任意密码重置的常规姿势

    猫宁!!! 之前在360补天看过carry_your分享的46分钟短视频“任意用户密码重置的10种姿势”. 在京东SRC安全小课堂第89期,也有一篇他的文章:web漏洞之逻辑漏洞挖掘.内容朴实无华. ...

  8. logistics二分类

    binaryclassification #DATASET: https://archive.ics.uci.edu/ml/datasets/Glass+Identificationimport nu ...

  9. 分布式锁用Redis还是ZooKeeper?(转载)

    文章系网络转载,侵删. 来源:https://zhuanlan.zhihu.com/p/73807097 为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景. 图片来自 Pexels 为什么 ...

  10. DCN模型

    1. DCN优点 使用Cross Network,在每一层都运用了Feature Crossing,高效学习高阶特征. 网络结构简单且高效 相比DNN,DCN的Logloss值更低,而且参数的数量少了 ...