zookeeper 密码_「附源码」Dubbo+Zookeeper 的 RPC 远程调用框架
技术博文,及时送达
作者 | 码农云帆哥
链接 | blog.csdn.net/sinat_27933301
上一篇:从零搭建创业公司后台技术栈
这是一个基于Dubbo+Zookeeper 的 RPC 远程调用框架 demo,希望读者可以通过这篇文章大概能看懂这一个简单的框架搭建。
Demo 源码获取方式:关注微信公众号「Java后端 」,回复「DZ」获取
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。微信搜索 web_resource 关注获取更多推送
provider:暴露服务的服务提供方
consumer:调用远程服务的服务消费方
registry:服务注册于发现的注册中心
monitor:统计服务调用次数和调用时间的监控中心
container:服务运行容器
一、dubbo-provider(服务提供方)
1、Java Bean
为什么要实现Serializable接口?当我们需要把对象的状态信息通过网络进行传输,或者需要将对象的状态信息持久化,以便将来使用时都需要把对象进行序列化。
使用了Lombok,它能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。
@Data
public class UserInfo implements Serializable {
private String account;
private String password;
}
2、UserService
服务提供方 暴露的服务,将注册到zookeeper上。
public interface UserService {
// 定义用户登录的api
UserInfo login(UserInfo user);
}
3、UserServiceImpl
服务提供方暴露的服务对应的实现类。
@Component
@Service(interfaceClass = UserService.class)
public class UserServiceImpl implements UserService {
public UserInfo login(UserInfo user) {
UserInfo reUser = new UserInfo;
reUser.setAccount("登录的账号为:"+user.getAccount);
reUser.setPassword("登录的密码为:"+user.getPassword);
return reUser;
}
}
4、DubboProviderApplication
@SpringBootApplication
@EnableDubboConfiguration // 启用dubbo自动配置
public class DubboProviderApplication {
public static void main(String[] args) {
SpringApplication.run(DubboProviderApplication.class, args);
}
}
5、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.boot.dubbo.demo
dubbo-provider
0.0.1-SNAPSHOT
jar
dubbo-provider
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
com.alibaba.spring.boot
dubbo-spring-boot-starter
2.0.0
org.projectlombok
lombok
1.16.20
provided
com.101tec
zkclient
0.10
org.apache.zookeeper
zookeeper
3.4.10
org.slf4j
slf4j-log4j12
log4j
log4j
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
6、application.yml
spring:
dubbo:
application:
name: dubbo-provider
protocol:
name: dubbo
port: 20880
registry:
address: zookeeper://127.0.0.1:2181
二、dubbo-consumer(服务消费方)
1、UserController
@RestController
public class UserController {
@Reference // 引用dubbo服务器提供服务器接口
private UserService userService;
@GetMapping("/login")
public UserInfo login(UserInfo userInfo) {
return userService.login(userInfo);
}
}
2、DubboConsumerApplication
@SpringBootApplication
@EnableDubboConfiguration // 启用dubbo自动配置
public class DubboConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DubboConsumerApplication.class, args);
}
}
3、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.boot.dubbo.demo
dubbo-consumer
0.0.1-SNAPSHOT
jar
dubbo-consumer
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
com.boot.dubbo.demo
dubbo-provider
0.0.1-SNAPSHOT
com.alibaba.spring.boot
dubbo-spring-boot-starter
2.0.0
com.101tec
zkclient
0.10
org.apache.zookeeper
zookeeper
3.4.10
org.slf4j
slf4j-log4j12
log4j
log4j
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
4、application.yml
spring:
dubbo:
application:
name: dubbo-consumer
protocol:
name: dubbo
port: 20880
registry:
address: zookeeper://127.0.0.1:2181
server:
port: 8081
三、Zookeeper安装配置
Zookeeper是什么:
https://blog.csdn.net/sinat_27933301/article/details/80101970
Zookeeper的安装配置:
https://blog.csdn.net/sinat_27933301/article/details/84001530
Zookeeper集群环境搭建:
https://blog.csdn.net/sinat_27933301/article/details/84351404
四、项目启动
五、查看Zookeeper服务注册情况
六、通过浏览器发送请求(dubbo-provider的服务注册到Zookeeper上,dubbo-consumer消费者可以调用注册的服务)。
到此,rpc远程调用服务通了!感兴趣的话可以去学习下。
Demo 源码获取方式:关注微信公众号「Java后端 」,回复「DZ」获取
-END-
zookeeper 密码_「附源码」Dubbo+Zookeeper 的 RPC 远程调用框架相关推荐
- 用Html5实现天气预报的原理,HTML5 Canvas和jQuery实时天气预报代码解析「附源码」...
HTML5 Canvas和jQuery实时天气预报代码解析「附源码」 这是一款非常有意思的纯CSS3扁平风格天气预报卡片动画特效.该天气预报特效将各种天气制作为卡片形式,包括下雨,闪电,白天,夜间和下 ...
- 「表白神器」Python超火隐藏表白图 你能看出来吗?「附源码」
导语 浪漫至死不渝,温柔绝对屈服. -马上国庆了-没啥送的-那就送大家一些表白的代码吧- 大兄弟小姐妹们,大家好! 我是准时上线更新代码+讲故事的程序媛小姐姐! 整理了一款超火的『 隐藏表白代码 』希 ...
- 利用C++打造双人对战的五子棋游戏,界面新颖「附源码」
五子棋游戏的历史可谓源远流长,是一款老少皆宜的两人对弈纯策略游戏,讲究的是有攻有守的五子棋技巧,玩法简单易上手,五个棋子连成一线就可获胜.单机五子棋,双人五子棋,好友联机对战模式-你想要的都能在这里找 ...
- animation基础练习源码_用vue简单写一个音乐播放组件「附源码」
作者:vipbic 转发链接:https://segmentfault.com/a/1190000022980992 前言 上次小编也分享一个关于Vue 开发过音乐播放对项目: 基于 electron ...
- PHP密码生成管理源码,php密码生成类(附源码)
本节内容: 好用的php 密码生成类. 访代码实现的功能: 1,可设定密码长度. 2,可设定要生成的密码个数,批量生成. 3,可以指定密码的规则,字母,数字,特殊字符等. 1,密码生成类文件 Gene ...
- java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...
原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...
- maven 公共模块依赖_「spring-boot 源码解析」spring-boot 依赖管理
问题 maven 工程,依赖管理是非常基本又非常重要的功能,现在的工程越来越庞大,依赖越来越多,各种二方包.三方包太多太多,依赖冲突处理起来真是让人头疼,经常需要涉及到多个地方需要调整. 微信公众号: ...
- C/C++编程打造单机麻将「附源码+说明文档」一个不错的入门项目
项目介绍 基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简.注释详细. 如果你刚刚接触Cocos2 ...
- SM4密码算法(附源码)
from:http://blog.csdn.net/mao0514/article/details/52930944 SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的.网址戳 ...
最新文章
- Hololens Unity 开发入门 之 Hello HoloLens
- yield( )函数的使用
- scrapyd部署_第八章 第一节 scrapyd和scrapy-client
- 阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制
- 【报告分享】2020年中国数据驱动型企业成长路径研究报告.pdf(附下载链接)...
- Java面试易错题精选
- 利用正则表达式限制网页表单里的文本框输入内容
- 陈国君Java程序设计基础笔记和习题
- hls解密key获取失败_请求帮助。M3U8里的加密key无法下载。
- mysql两个库相互同步_实现两个Mysql数据库之间同步的方案
- xfs文件系统误删除文件恢复(testdisk工具)
- 基于Multisim的简易数字钟
- Vivo应用商店上架最全最细流程
- 下载文件进度显示--小小Demo——桃先森
- latex 分行 表格标题过长_使用latex撰写Elsevier论文,遇到的表格标题caption换行以及左对齐问题的解决办法...
- 如何查找涉密文件_涉密文件信息资料保密管理规定
- 《项目管理问题分析与解决方案小册》(持续更新中)
- JavaSE练习题之不死神兔
- 微信支付服务器商模式,微信支付分正式支持服务商模式!
- Linux学习-Boot Loader: Grub2
热门文章
- 无偏估计【统计学-通俗解释】
- java 正则 小数_详解Java判断是否是整数,小数或实数的正则表达式
- 笔记本电脑怎样连接打印机_佳能无线便携打印机上市
- ARM 之五 发展史及各时期内核(ARM1 ~ ARM11 / Cortex)介绍
- FreeRTOS 低功耗之 tickless 模式
- python3安装setuptools步骤_linux环境下的python安装过程(含setuptools)
- WT32-SC01是ESP32驱动3.5彩屏开发板方案适合用arduino方式开发吗?因为需要彩屏和电容触摸的驱动的
- java main 参数传递参数_Java千问:Java语言如何给main方法传递参数?
- linux sed 测试文件夹,测试开发笔记二(Linux与Shell脚本)
- java聚合excel_java操作excel