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/7/28 18:33:13 阅读更多 →
全球首个3T级模型Kimi K3开源,魔搭社区同步上线

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

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

2026/7/28 18:33:13 阅读更多 →
虚拟机无法连接虚拟设备sata0:1

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

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

2026/7/28 18:33:13 阅读更多 →

最新新闻

自学opencv日记,day6

自学opencv日记,day6

形态学操作应用-提取水平与垂直线 原理方法: 图像形态学操作时候,可以通过自定义的结构元素实现结构元素 对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏 感的对象改变而不敏感的对象保留输出。通过使用两个最基本的 形态学操作 –…

2026/7/28 18:43:16 阅读更多 →
戴尔G15散热控制终极指南:免费开源工具告别AWCC卡顿烦恼

戴尔G15散热控制终极指南:免费开源工具告别AWCC卡顿烦恼

戴尔G15散热控制终极指南:免费开源工具告别AWCC卡顿烦恼 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为戴尔G15笔记本的散热问题烦恼吗&…

2026/7/28 18:43:16 阅读更多 →
LeetCode——110,判断平衡二叉树

LeetCode——110,判断平衡二叉树

/*** \* Created: liuhuichao* \* Date: 2019/8/29* \* Time: 30:09 PM* \* Description: 判断平衡二叉树* \* 给定一个二叉树,判断它是否是高度平衡的二叉树。* <p>* 本题中,一棵高度平衡二叉树定义为:* <p>* 一个二叉树每个节点 的左右两个子树的高度差的绝对…

2026/7/28 18:43:16 阅读更多 →
MyBatis流式查询实战:解决海量数据查询内存溢出问题

MyBatis流式查询实战:解决海量数据查询内存溢出问题

这次我们来看一个 Java 开发中非常实际的问题&#xff1a;如何用 MyBatis 的流式查询&#xff0c;解决一次性加载海量数据导致的内存溢出&#xff08;OOM&#xff09;。很多开发者都遇到过&#xff0c;一个看似简单的SELECT * FROM large_table&#xff0c;在数据量达到百万级时…

2026/7/28 18:43:16 阅读更多 →
基于孔雀优化算法的无人机集群路径规划Matlab实现

基于孔雀优化算法的无人机集群路径规划Matlab实现

1. 无人机集群路径规划概述无人机集群路径规划是当前智能控制领域的热点研究方向&#xff0c;它要解决的核心问题是在三维空间内为多个无人机找到从起点到目标点的最优飞行路径。这个"最优"通常包含多重约束&#xff1a;路径长度最短、能耗最低、避障安全、避免机间碰…

2026/7/28 18:43:16 阅读更多 →
计算机JAVA毕设实战-基于 WEB 架构的校园心理健康咨询互助平台 高校学生心理科普与社区互助服务系统设计【完整源码+LW+部署说明+演示视频,全bao一条龙等】

计算机JAVA毕设实战-基于 WEB 架构的校园心理健康咨询互助平台 高校学生心理科普与社区互助服务系统设计【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026/7/28 18:42:16 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿&#xff01;3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑&#xff1a;把几百页的财报、法规、技术手册扔给向量库&#xff0c;问一个具体问题&#xff0c;搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了&#xff0c;要么藏在几十条结果的最下面。语义相似≠真正相关&#xff0c;这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营&#xff0c;从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候&#xff0c;每天刷半小时抖音&#xff0c;手动把爆款视频的口播敲进备忘录&#xff0c;一条2分钟的视频得花十来分钟&#xff0c;碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻