分布式理论 & RPC & Dubbo
分布式服务框架(RPC)
用于提高机器利用率的资源调度和治理中心*(SOA)[ Service Oriented Architecture]
Dubbo(RPC框架)
服务提供者**(Provider)**:暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提 供的服务。
服务消费者**(Consumer)**: 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自 己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如 果调用失败,再选另一台调用。
注册中心**(Registry)**:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基 于长连接推送变更数据给消费者
监控中心**(Monitor)**:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发 送一次统计数据到监控中心
荐我们使用Zookeeper 注册中心
Zookeeper官网:https://zookeeper.apache.org/
下载地址:https://archive.apache.org/dist/zookeeper/
修改zkServer.cmd 添加"-Dzookeeper.audit.enable=true"
先打开服务端,再打开客户端
简单测试使用
s /:列出zookeeper根下保存的所有节点
create –e /oop 123:创建一个oop节点,值为123
get /oop:获取/kuangshen节点的值
安装Dubbo
dubbo-admin-master-0.2.0\dubbo-admin\src\main\resources
#注册中心的地址 注意端口号
dubbo.registry.address=zookeeper://127.0.0.1:2181
在项目目录下打包dubbo-admin
mvn clean package -Dmaven.test.skip=true
若是没有配置maven环境(用的IDEA的)
把dubbo-admin在idea中打开(执行main方法)就行(记得提前开启Zookeeper服务)
访问
http://localhost:7001/ (账号密码都是root)
dubbo-admain: 是一个监控管理后台 ,查看我们注册了哪些服务,哪些服务被消费
搭建一个简单的环境
流程:
provider--->注册中心--->consumer
创建好provider项目(做好服务)与consumer项目
先开启zkServer,然后开启provider,再打开dubbo-admin就可以在界面中查看到相关的服务提供者,然后consumer去获取需要的服务就行
2.让provider连接注册中心
导入依赖
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<!-- 引入zookeeper-->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>5.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>5.2.1</version>
</dependency>
<!-- 注意 zookeeper 日志冲突-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.3</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
配置
server.port=8001
#服务应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#哪些服务要被注册
dubbo.scan.base-packages=com.ljm.service
加注解 2个
//服务注册与发现 @Service //注入bean
@DubboService //注册中心相关 ,项目启动就自动注册到注册中心
public class TIcketServiceImpl implements TIcketService{
@Override
public String getTicket() {
return "您的票号55678";
}
}
启动dubbo-admin( 访问http://localhost:7001/)
3.consumer消费
导入依赖(与provider相同)
创建一个与provider相同的接口
配置
server.port=8002
#去哪里拿服务 需要暴露自己的名字
dubbo.application.name=consumer-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
获取服务
@Service
public class UserService1 { @DubboReference //引用 也可以用pom坐标,可以定义路径相同的接口名
TIcketService ICKET_SERVICE; //与provider相同的接口 public void buyTicker(){
String ticket = ICKET_SERVICE.getTicket();
System.out.println("拿到票:"+ticket);
}
} //测试
@SpringBootTest
class ConsumerServerApplicationTests {
@Autowired
UserService1 userService1; @Test
void contextLoads() {
userService1.buyTicker();
} }
分布式理论 & RPC & Dubbo的更多相关文章
- Spring Cloud Alibaba系列之分布式服务组件Dubbo
本博客的例子代码可以在github找到下载链接:代码下载 SpringBoot.SpringCloud Alibaba系列博客专栏:链接 1.分布式理论 1.1.分布式基本定义 <分布式系统原理 ...
- 阿里巴巴分布式服务框架 Dubbo 介绍
Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...
- ZooKeeper分布式专题与Dubbo微服务入门
第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk ...
- 【转】阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访
原文链接:http://www.iteye.com/magazines/103 Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ ...
- 【转】分布式理论-CAP理论
一 CAP理论简述 CAP (Consistency, Availability, Partition Tolerance,) 理论是NoSQL数据库管理系统构建的基础. 强一致性:等同于所 ...
- 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式架构
分布式 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式消息中间件:KafKa+Flume+Zookeeper 分布式缓存:Redis 分布式文件:FastDFS ...
- 分布式理论——从ACID到CAP再到BASE
在传统的数据中,有ACID四大原则,在分布式中也有对应的CAP理论和BASE理论,这些都是分布式理论的基础. 更多内容参考:大数据学习之路 ACID ACID分别是Atomicity 原子性.Cons ...
- 分布式理论(二)——Base 理论
前言 在前文 分布式理论(一) -- CAP 定理 中,我们说,CAP 不可能同时满足,而分区容错是对于分布式系统而言,是必须的.最后,我们说,如果系统能够同时实现 CAP 是再好不过的了,所以出现了 ...
- 分布式理论系列(三)ZAB 协议
分布式理论系列(三)ZAB 协议 在学习了 Paxos 后,接下来学习 Paxos 在开源软件 Zookeeper 中的应用. 一.Zookeeper Zookeeper 致力于提供一个高性能.高可用 ...
- 分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab
分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab 本文介绍一致性算法: 2PC 到 3PC 到 Paxos 到 Raft 到 Zab 两类一致性算法(操作原 ...
随机推荐
- 8、数据库学习规划:MS SQL Server - 学习规划系列文章
微软的SQL Server数据库是笔者最先接触的数据库,虽然之前有Access,但是那个是学校里知道的,没实际去开发基于Access的程序.SQL Server发展到现在已经有很多个版本了,其功能也非 ...
- Docker从认识到实践再到底层原理(四-1)|Docker镜像仓库|超详细详解
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- 【文件】C语言文件操作及其使用总结篇【初学者保姆级别福利】
[文件]C语言文件操作及其使用总结篇[初学者保姆级别福利] 一篇博客学好动态内存的管理和使用 这篇博客干货满满,建议收藏再看哦!! 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很 ...
- 如果在循环中不改变vector的大小,C++编译器是否会将.size()优化为常数?
在C++中,可以使用以下代码计算vector<int>中所有元素的和: vector<int> v = {1, 3, 7, 9}; sums = 0; for (int i ...
- 双层nn逻辑回归BP过程的另外一种解释
双层nn逻辑回归 吴恩达的双层nn逻辑回归的一些符号说明比较复杂导致视频难以理解,这里简单做一个说明 注意:阅读下面内容需要具备基本的矩阵求导知识 下面是手推过程,有空在进行修改
- VMware全版本下载工具
有很多小伙伴想下载适合自己的虚拟机版本,但是官网全是英文看不懂 百度找的还怕带病毒 这里栀煜单独制作了个工具,内置vm9 10 11 12 14 15 16 17版本的虚拟机下载地址,都是官方版 不是 ...
- DRF解决跨域问题
Django Rest Framework提供了corsheaders模块解决跨域问题 安装模块 pip3.9 install django-cors-headers 注册应用 # 注册 corshe ...
- P2P通讯方式
概述 实现p2p通讯我们提供两种方式,这两种方式分别是通过客户端直接互通和p2p映射: 无论哪一种,首先设备两端都得部署好fastnat客户端,NAT类型不能是对称类型NAT(Symmetric),否 ...
- django学习第十三天--自定义中间件
jquery操作cookie 下载地址 http://plugins.jquery.com/cookie/ 引入 <script type="text/javascript" ...
- 基于java的个人博客
基于java的个人博客 效果预览 首页 详情 文章管理 文章发布 分类管理 访问地址 前台地址http://localhost:8080 后台地址:http://localhost/admin/ 开发 ...