发布时间:2025-11-16
浏览次数:0
注册中心 ()
服务的中介目录,实现服务的注册与发现。
在此进行“挂号”操作的是服务提供者,在此开展“查号”行为的是消费者,它是起着连接提供者与消费者作用的桥梁,经常见到的实现方式有 、Nacos。
监控中心 ()
服务的“仪表盘”,负责收集和统计调用数据。
有可供选择的组件codejock dockingpane,其作用在于对服务调用的次数、所耗费的时间等情况予以监控,以此协助开展性能方面的分析以及进行优化 。
工作原理与流程
Dubbo的工作流程可归纳成如下几个主要关键步骤,下面的这个图清楚明晰地把服务提供者和服务消费者之间借助注册中心来开展协作的完整生命历程展示了出来:
flowchart TD
A[服务提供者 Provider
启动服务] --> B[向注册中心 Registry
注册服务地址]
C[服务消费者 Consumer
启动服务] --> D[向注册中心 Registry
订阅所需服务]
B --> E[注册中心
维护服务地址列表]
D --> E
E --> F[注册中心将提供者
地址列表推送给消费者]
F --> G[消费者根据负载均衡策略
调用远程提供者]
G --> H[调用过程中
统计信息上报至监控中心]
快速入门指南
使用“用户服务”()提供的能够快速上手的查询功能,“订单服务”()调用这个功能,通过这样一个经典场景来进行演示。
第一步:定义公共服务接口
开端,构建一个独自的模块,比如说 api 模块,去确定服务接口。此模块的 JAR 包得同时被提供者以及消费者所依赖codejock dockingpane,这属于 Dubbo 面向接口编程的要点,确保了双方具备相同的“契约”。
// 在 api 模块中定义接口
公共的接口,名为用户服务,其定义为{ }。
返回值类型为字符串的,用于获取用户名的,以长期用户标识作为参数的方法 。
}
第二步:达成服务提供者,引入依赖,于提供者项目的pom.xml里引入Dubbo以及注册中心好比的客户端依赖。实现接口并暴露服务,达成接口,且运用@注解标注,Dubbo会自行将该服务发布至注册中心。
@Service // Spring的 @Service
@DubboService ,此乃 Dubbo 的注解,其作用是表明这儿是那种要予以暴露的远程服务 。
公有类,用户服务实现类,进行相应实现动作,达成用户服务接口所需功能 ,即实现用户服务 。
@Override
公共的,字符串类型的,获取用户名的方法,参数是长整型的用户ID 。,。
// 模拟业务逻辑,例如查询数据库
return "用户名: 张三";
}
}

配置注册中心:在 .yml 中配置注册中心地址和应用名。
dubbo:
application:
名称呢,是用户-服务-提供者,请注意哦,这是服务提供者应用的名称呀。
registry:
地址是,动物园管理员协议方式下,本地主机的2181端口号,这是注册中心地址 。
第三步:去调用远程服务,要先来引入依赖,消费者项目同样得引入Dubbo以及注册中心的赖依。引用远程服务,在消费者端,运用@注解,Dubbo会给你生成一个远程服务的代理对象,你能够像是使用本地Bean那样进行注入并且调用它。
@RestController
公用的类,名为订单控制器,进行编排与控制 。
// 通过注解引用远程服务
@DubboReference
私有的用户服务,是用户服务对象,是用户服务实例。 ,这种对象是用户服务类型 ,是用户服务变量格式 。
使用“@GetMapping”注解,映射到路径为“/order/”后紧跟“{userId}”部分的 API 端点 ,。
得到次序信息,通过路径变量长时间用户标识,这是公开的字符串类型方法,有此声明。
// 像调用本地方法一样调用远程服务
String类型的变量userName,其值是通过userService调用getUserName方法,并传入userId获取到的 。
return "订单属于用户: " + userName;
}
}
配置注册中心时,消费者的配置和提供者的配置相类似,这就要求必须要指定相同的注册中心。
dubbo:
application:
名字是,那被称作订单服务消费者的应用的名 # 服务消费者应用名 #。
registry:
住址是,动物园管理员所在处,通过本地主机,端口号为两千一百八十一 。
开启注册中心之后,按顺序启动提供者应用,再启动消费者应用。去到 http://:8080/order/123处进行访问,如此便可以望见订单服务成功调用了远程的用户服务 。
️核心进阶特性
掌握基本用法后,以下特性对于构建健壮的分布式系统至关重要:
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码