dubbo实战01-入门案例
学习一门新技术的时候我们不仅要学会怎样运用这门技术同时还必须明白这项技术是为了解决什么样的问题而产生的真正做到知其然并知其所以然。dubbo 是什么Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架 使得应用可通过高性能的 RPC 实现服务的输出和输入功能 可以和Spring框架无缝集成。dubbo的作用Dubbo是一款高性能、轻量级的开源Java RPC框架 它提供了三大核心能力面向接口的远程方法调用 智能容错和负载均衡以及服务自动注册和发现。准备工作1、选择dubbo的注册中心:目前主流的几种注册中心主要有zookeeper、redis、Multicast、Simple 本案列中选择zookeeper充当注册中心版本为3.4.13 2、dubbo的版本为2.6.2 3、jdk版本为jdk8 4、maven版本为3.5.4 5、idea为开发工具工程的架构dubbo-project |dubbo-provider |src |main |java |com.kkcl.gmall |service |impl UserServiceImpl.java |MainApplication.java |resources |provider.xml |dubbo-consumer |src |main |java |com.kkcl.gmall |service |impl OrderServiceImpl.java |MainApplication.java |resources |consumer.xml |gmall-interface |src |main |java |com.kkcl.gmall |bean |UserAddress.java |service |UserService.java |OrderService.java工程的搭建本示例工程主要分为以下几个module:dubob-project为父工程 gmall-interface、dubbo-provider、dubbo-consumer为子module, gmall-interface主要的主要是集成接口与实体类供dubbo-provider和dubbo-consumer调用dubbo-provider充当生产者的角色为消费者提供服务dubbo-consumer充当消费者的角色 主要消费生产者提供的服务。实战案列UserAddress.java public class UserAddress implements Serializable { private Integer id; private String userAddress; //用户地址 private String userId; //用户id private String consignee; //收货人 private String phoneNum; //电话号码 private String isDefault; //是否为默认地址 Y-是 N-否 constructor... getter and setter.... } UserService.java public interface UserService { public ListUserAddress getUserAddressList(String userId); } UserServiceImpl.java public class UserServiceImpl implements UserService { Override public ListUserAddress getUserAddressList(String userId) { UserAddress address1 new UserAddress(1, 北京市, 1, 李老师, 010-56253898, Y); UserAddress address2 new UserAddress(2, 西安市, 1, 王老师, 010-56253809, N); return Arrays.asList(address1,address2); } } Order.service public interface OrderService { public ListUserAddress initOrder(String userId); } OrderServiceImpl.java Service public class OrderServiceImpl implements OrderService { Autowired UserService userService; Override public ListUserAddress initOrder(String userId) { // TODO Auto-generated method stub System.out.println(用户iduserId); //1、查询用户的收货地址 ListUserAddress addressList userService.getUserAddressList(userId); for (UserAddress userAddress : addressList) { System.out.println(userAddress.getUserAddress()); } return addressList; } } provider.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:dubbohttp://code.alibabatech.com/schema/dubbo xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd !--指定当前服务或者应用的名字 -- dubbo:application namedubbo-provider/ !--指定注册中心的位置(以下两种方式选择其中的一种即可) -- !--dubbo:registry addresszookeeper://127.0.0.1:2181/-- dubbo:registry protocolzookeeper address127.0.0.1:2181/ !---指定通信的规则(通信协议通信端口)-- dubbo:protocol namedubbo port20880/ !--暴露的服务-- dubbo:service interfacecom.kkcl.gmall.service.UserService refuserServiceImpl/ !--服务实现-- bean iduserServiceImpl classcom.kkcl.gmall.service.impl.UserServiceImpl/ /beans consumer.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:dubbohttp://code.alibabatech.com/schema/dubbo xmlns:contexthttp://www.springframework.org/schema/context xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd context:component-scan base-packagecom.kkcl.gmall.service.impl/ !--应用的名称-- dubbo:application namedubbo-consumer/ !--注册中心-- dubbo:registry addresszookeeper://127.0.0.1:2181/ !--声明需要调用的远程服务的名称生成远程服务代理-- dubbo:reference interfacecom.kkcl.gmall.service.UserService iduserService/ /beans MainApplication.java public class MainApplication { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext ioc new ClassPathXmlApplicationContext(provider.xml或者consumer.xml); ioc.start(); System.in.read(); } }项目部署1、到zookeeper官网下载zookeeper,这里下载的版本为3.4.13下载完成后到zookeeper的conf目录下将zoo_simple.cfg复制重命名为zoo.cfg并配置对应的data存储的目录 dataDir../data 2、分别启动dubbo-provider中的MainApplication.java 3、进入到dubbo的admin后台服务管理页面查看服务的启用情况源码地址https://github.com/kkcl/kkcl-learning-example/tree/master/dubbo-project

相关新闻

JVS视角:工信部新提的“小快轻准“,到底在说什么

JVS视角:工信部新提的“小快轻准“,到底在说什么

最近工信部出了一份文件——《"小快轻准"数字化产品和服务培育指引(2026年版)》。四个字:小、快、轻、准。看着像口号,但细看内容,其实是对过去几年制造业数字化转型路线的一次方向性调整。过去几年行业里的…

2026/11/2 12:19:31 阅读更多 →
全球首个3T级模型Kimi K3开源,魔搭社区同步上线

全球首个3T级模型Kimi K3开源,魔搭社区同步上线

7月28日,Kimi K3已上线魔搭社区,用户可在魔搭社区官网一键下载。作为全球首个开放的 3T 级模型,Kimi K3 总参数量达 2.8T,具备原生视觉能力与 100 万 token 上下文窗口,面向长程编码、知识工作与推理等前沿智能场景设计…

2026/11/1 11:36:41 阅读更多 →
虚拟机无法连接虚拟设备sata0:1

虚拟机无法连接虚拟设备sata0:1

以下仅作为自己的一个尝试设置,验证对自己的虚拟机问题有效。在设置里面修改CD/DVD(SATA),改为使用ISO影像文件。改完后虚拟机开机黑屏的问题也解决了。同时我虚拟机设置硬件设备中删除了打印机。这个主要是因为虚拟机每次开启的时候总是消息提醒找不到打…

2026/10/25 10:19:51 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/3 1:09:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/3 2:27:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻