IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 2022/1/16 北京 dubbo-----注册服务、消费服务 -> 正文阅读

[网络协议]2022/1/16 北京 dubbo-----注册服务、消费服务

单体架构的优点:部署成本低

负载均衡:让每一个服务器都有很均衡的负载量


rpc(远程过程调用)??

rpc工作原理:socket套接字(ip+端口)

为什么用这个?因为随着用户量和海量的请求,后端基本都是规模庞大的分布式集群,而rpc就是其中核心技术。

rpc好处是什么呢?好到这个地步:调用服务的时候就如同调用本地服务一样,不必关心网络通信细节。


Dubbo架构: 是高性能的java rpc框架

dubbo是阿里巴巴2011年开源的分布式服务框架,主要提供三个功能

远程接口调用,负载均衡和容错,服务注册和服务发现。


dubbo运行流程的是这样的:


注册中心:订单业务想做支付业务,怎么知道支付业务在哪个模块上呢

dubbo支持四种注册中心:

multicast注册中心,Zookeeper注册中心,redis注册中心,simple注册中心


1.将服务提供者注册到注册中心(暴露服务)

? ? ? (1)导入dubbo依赖和操作Zookeeper的客户端(curator)依赖

? ? ? dubbo2.6之前引入zkclient操作zookeeper

? ? ? dubbo2.6及之后引入curator操作zookeeper

<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.10</version>
</dependency>

<!--注册中心使用zookeeper,引入操作zookeeper的客户端 -->
<!-- https://mvnrepository.com/artifact/org.apache.curator/curator-framework -->
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>4.3.0.7.2.10.0-148</version>
</dependency>

?(2)配置服务提供者? ?provider.xml


    <!--当前服务名/应用名(同样的服务名字相同,不要和别的服务同名) -->
    <dubbo:application name="user-service-provider"/>

    <!-- 注册中心位置 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/>

    <!-- 指定通信规则("使用dubbo通信协议和20800通信端口") -->
    <dubbo:protocol name="dubbo" port="28080"/>

    <!-- 暴露服务  ref:服务真正的实现对象-->
    <dubbo:service registry="dubbodemo" timeout="3000" 
    interface="com.atguigu.gmall.service.UserService" ref="userServiceImpl"/>
   
    <!--服务的实现-->
    <bean id="userServiceImpl" class="com.atguigu.gmall.service.impl.UserServiceImpl"/>

2.让服务消费者去注册中心订阅服务提供者的服务地址

(3)配置消费者 consumer.xml

dubbo-monitor:用来统计服务的调?次数和调?时间的监控中?。


    <!--当前服务名/应用名(同样的服务名字相同,不要和别的服务同名) -->
    <dubbo:application name="user-service-consumer"/>

    <!-- 注册中心位置 -->
    <dubbo:registry  address="zookeeper://127.0.0.1:2181"/>
    <!-- <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/>-->

    <!-- 指定通信规则("使用dubbo通信协议和20800通信端口") -->
    <dubbo:protocol name="dubbo" port="28080"/>

    <!-- 声明需要调用的远程服务接口,生成远程服务代理 -->
    <!-- userService放入容器中-->
    <dubbo:reference interface="com.atguigu.gmall.service.UserService"  id="userService"/>

    <!-- 消费者和提供者都要连上监控中心,从注册中心发现监控中心的地址,另外一种配置方式是直连监控中心-->
    <dubbo:monitor protocol="registry" />

服务提供者的真正实现类:

public class UserServiceImpl implements UserService{
//按照用户id返回他所有的收货地址
    public List<UserAddress> getUserAddressList(String userId){
        UserAddress address1=new UserAddress(1,"北京市昌平区","1");
        UserAddress address1=new UserAddress(2,"深圳市宝安区","1");
        return Arrays.asList(address1,address2);
  }
}

服务消费者:

public class MainApplication{

    public static void main(){
       ClassPathXmlApplicationContext applicationContext=new 
       ClassPathXmlApplicationContext("consumer.xml");
       OrderService orderService=applicationContext.getBean(OrderService.class);
       //查询用户的地址   
      List<UserAddress> addressList=orderService.initOrder("1");
      }
}

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:49:32  更:2022-01-17 11:51:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 9:24:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码