分布式理论 & 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 两类一致性算法(操作原 ...
随机推荐
- 深空物联网通信中视频流的智能多路TCP拥塞控制|文献阅读|文献分析和学习|拥塞控制|MPTCP|SVC
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...
- Linux用户被锁定后如何解锁
客户的一台机器,按照提供的常用密码尝试使用oracle用户登陆,超过指定次数账号被锁定,提示如下: Account locked due to 6 failed logins 这需要使用root用户解 ...
- 冰点还原 deep freeze 安装,招聘机试时用到
官方地址:https://www.faronics.com https://www.bingdiancn.com/(也可以从这个网站下载,我是从这个网站下载的) 需求:招聘时 需要机试,需要做项目,为 ...
- Centos7部署django+uwsgi+nginx 转载: https://www.cnblogs.com/wztshine/p/16172154.html
Centos7部署django+uwsgi+nginx Django + uwsgi + nginx on Centos7 wsgi 介绍 本小节来自 廖雪峰 wsgi 一文 一个Web应用的本质 ...
- 前端开发面试快速复盘,不标准的面试经验分享与杂谈(终章),我拿到满意offer了
壹 ❀ 引 找工作半个月了,一周面两三家的样子,前前后后大概面了八家左右,先说结论,拿到了三家offer,虽然没有进大厂,但其中一家是自己很想去的公司所以后面不会再面试了,福利待遇(弹性打卡,导师一对 ...
- C 语言常用头文件解释
C系统提供了丰富的系统文件,称为库文件,整理一下以后好实用: <stdio.h> 定义了三个变量类型.一些宏和各种函数来执行输入和输出 https://www.runoob.com/cpr ...
- 子集 II
子集 II 给定一个可能包含重复元素的整数数组nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例 输入: [1,2,2] 输出: [ [2], [1], [1,2,2] ...
- patch命令
patch命令 patch指令让用户利用设置修补文件的方式.修改.更新原始文件,倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行,如果配合修补文件的方式则能一次修补大批文件,这也是Linux系 ...
- springboot jpa自定义SQL查询
说明 在使用JPA实现数据持久化过程中经常会遇到这种情况:我有2张表是一对多的关系,需要通过一个外键ID去关联查询到另外一张表的字段.例如,1张商品表food_info其中存有商品分类ID categ ...
- Vue实现静态列表增删查功能
知识点 1.双向数据绑定 2.自定义指令 3.自定义过滤器 4.v-for循环对象数组 5.ES6操作数组的新方法:forEach some filter findIndex 实现效果 页面源码 &l ...