分布式服务框架(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的更多相关文章

  1. Spring Cloud Alibaba系列之分布式服务组件Dubbo

    本博客的例子代码可以在github找到下载链接:代码下载 SpringBoot.SpringCloud Alibaba系列博客专栏:链接 1.分布式理论 1.1.分布式基本定义 <分布式系统原理 ...

  2. 阿里巴巴分布式服务框架 Dubbo 介绍

    Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...

  3. ZooKeeper分布式专题与Dubbo微服务入门

    第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk ...

  4. 【转】阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访

    原文链接:http://www.iteye.com/magazines/103   Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ ...

  5. 【转】分布式理论-CAP理论

    一 CAP理论简述 CAP (Consistency, Availability, Partition  Tolerance,) 理论是NoSQL数据库管理系统构建的基础.     强一致性:等同于所 ...

  6. 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式架构

    分布式 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式消息中间件:KafKa+Flume+Zookeeper 分布式缓存:Redis    分布式文件:FastDFS ...

  7. 分布式理论——从ACID到CAP再到BASE

    在传统的数据中,有ACID四大原则,在分布式中也有对应的CAP理论和BASE理论,这些都是分布式理论的基础. 更多内容参考:大数据学习之路 ACID ACID分别是Atomicity 原子性.Cons ...

  8. 分布式理论(二)——Base 理论

    前言 在前文 分布式理论(一) -- CAP 定理 中,我们说,CAP 不可能同时满足,而分区容错是对于分布式系统而言,是必须的.最后,我们说,如果系统能够同时实现 CAP 是再好不过的了,所以出现了 ...

  9. 分布式理论系列(三)ZAB 协议

    分布式理论系列(三)ZAB 协议 在学习了 Paxos 后,接下来学习 Paxos 在开源软件 Zookeeper 中的应用. 一.Zookeeper Zookeeper 致力于提供一个高性能.高可用 ...

  10. 分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab

    分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab 本文介绍一致性算法: 2PC 到 3PC 到 Paxos 到 Raft 到 Zab 两类一致性算法(操作原 ...

随机推荐

  1. 解决Edge浏览器提示“此网站已被人举报不安全”

    今天下午微软旗下的 Microsoft Edge 浏览器将百度搜索的跳转域名 (*.baidu.com/link?url=*) 封杀,百度搜索首页可以打开,但搜索任何关键词点击搜索结果都会被拦截. 当 ...

  2. 5.0 Python 定义并使用函数

    函数是python程序中的基本模块化单位,它是一段可重用的代码,可以被多次调用执行.函数接受一些输入参数,并且在执行时可能会产生一些输出结果.函数定义了一个功能的封装,使得代码能够模块化和组织结构化, ...

  3. 4599元 铭凡推出NAG6迷你主机:12代i9+RX 6600M

    铭凡推出了新款迷你主机NAG6,首发价4599元. 据了解,新款迷你主机的处理器采用的是i9-12900H,14核心20线程.24MBL3缓存,最高睿频达5.0GHz. 不仅如此,新款迷你主机内置RX ...

  4. Oracle 11g ADG 部署(duplicate)快速参考

    本文旨在指导客户完成Oracle 11g的ADG部署工作,主库环境已具备,备库环境已安装完成数据库软件. 环境:RHEL 6.8 + Oracle 11.2.0.4 1.确认主库运行在归档模式 2.确 ...

  5. Kafka-启动时报错: ERROR Fatal error during KafkaServer startup. Prepare to shutdown

    一.问题描述 在启动kafka时报错: ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server. ...

  6. MySQL创建函数报错:1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled

    创建函数时报错: 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaratio ...

  7. Linux中单引号和双引号的区别

    区别:单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原封不动的使用:而双引号属于弱引用,它会对一些被引起来的字符进行特殊处理.简单来说,单引号直接输出内部字符串,不解析特 ...

  8. linux 中grep 命令详细使用方法说明

    前言在linux命令行中,经常需要对当前获取的一堆数据进行过滤.提取和分析,其中grep命令是其中非常重要的命令之一,比如,在生产环境服务器上,经常使用到下面这个命令 ps -ef | grep ja ...

  9. STM32 printf 方法重定向到串口UART

    在嵌入式系统中调试代码是很麻烦的一件事, 如果能方便地输出调试信息(与调试者交互), 能使极大加快问题排查的过程. 串口在嵌入式领域是一个比较重要的通讯接口. 因为没有显示设备, 在单片机的程序里调用 ...

  10. EasyExcel使用及自定义设置单元格样式

    EasyExcel使用及自定义设置单元格样式 https://www.cnblogs.com/Hizy/p/11825886.html easyexcel 自动设置列宽 https://www.man ...