dubbo学习笔记一(服务注册)
相关的资料
项目结构

项目说明
- [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学习笔记一(服务注册)的更多相关文章
- SpringCloud学习笔记:服务注册与发现Eureka(2)
1. Eureka简介 Eureka是一个用于服务注册和发现的组件,分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中心,Eureka Cl ...
- SpringCloud学习笔记:服务支撑组件
SpringCloud学习笔记:服务支撑组件 服务支撑组件 在微服务的演进过程中,为了最大化利用微服务的优势,保障系统的高可用性,需要通过一些服务支撑组件来协助服务间有效的协作.各个服务支撑组件的原理 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多注册中心 可以自行扩展注册中心,参见:注册中心扩展 (1) 多注册中心注册 比如 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 只注册
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 只注册 问题 如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 服务分组 当一个接口有多种实现时,可以用group区分. <dubbo:se ...
- 阿里巴巴分布式服务框架dubbo学习笔记
Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的 ...
- Dubbo学习笔记10:Dubbo服务消费方启动流程源码分析
同理我们看下服务消费端启动流程时序图: 在<Dubbo整体架构分析>一文中,我们提到服务消费方需要使用ReferenceConfig API来消费服务,具体是调用代码(1)get()方法来 ...
- Dubbo学习笔记9:Dubbo服务提供方启动流程源码分析
首先我们通过一个时序图,直观看下Dubbo服务提供方启动的流程: 在<Dubbo整体框架分析>一文中我们提到,服务提供方需要使用ServiceConfig API发布服务,具体是调用代码( ...
- Dubbo学习笔记2:Dubbo服务提供端与消费端应用的搭建
Demo结构介绍 Demo使用Maven聚合功能,里面有三个模块,目录如下: 其中Consumer模块为服务消费者,里面TestConsumer和consumer.xml组成了基于Spring配置方式 ...
随机推荐
- Winform使用ML.NET时无法加载 DLL“CpuMathNative”问题的解决方法
同样的代码运行在netcore下可以,运行在winform中就出现错误: 引发的异常:“System.DllNotFoundException”(位于 Microsoft.ML.Data.dll 中) ...
- ubuntu最近升级到最新的linux内核后,网络无法使用怎么办?
答:进入旧的内核中编译需要的网卡模块 1. 启动旧的内核进入系统 2. 安装新内核源码 3. 找出当前的网卡型号 4. 尝试卸载某个与网卡相关的内核模块,观察是否影响当前网卡的使用,如果有影响,那么便 ...
- Nova 实现的 Fit Instance NUMA to Host NUMA 算法
目录 文章目录 目录 前文列表 numa_fit_instance_to_host _numa_fit_instance_cell _numa_fit_instance_cell_with_pinni ...
- 安装好oracle11gR2之后在相应路径下却没有生成tnsnames.ora和listener.ora
oracle安装帖子:https://blog.csdn.net/wjb123sw99/article/details/80780277 oracle安装过程中检查失败:需开启C盘共享,或者勾选忽略, ...
- subprocess.call 使用
1.subprocess.call 里面的命令分开写,实例如下: subprocess.call 是不能作为赋值的,需要用到 subprocess.check_output 函数,而且如果要引用赋值就 ...
- EncryptionAndDecryptionC# 加密 解密
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- PJzhang:任意密码重置的常规姿势
猫宁!!! 之前在360补天看过carry_your分享的46分钟短视频“任意用户密码重置的10种姿势”. 在京东SRC安全小课堂第89期,也有一篇他的文章:web漏洞之逻辑漏洞挖掘.内容朴实无华. ...
- logistics二分类
binaryclassification #DATASET: https://archive.ics.uci.edu/ml/datasets/Glass+Identificationimport nu ...
- 分布式锁用Redis还是ZooKeeper?(转载)
文章系网络转载,侵删. 来源:https://zhuanlan.zhihu.com/p/73807097 为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景. 图片来自 Pexels 为什么 ...
- DCN模型
1. DCN优点 使用Cross Network,在每一层都运用了Feature Crossing,高效学习高阶特征. 网络结构简单且高效 相比DNN,DCN的Logloss值更低,而且参数的数量少了 ...