做视频网站技术壁垒在哪里,做不锈钢的网站有哪些,wordpress 登陆界面,青少年心理建设网站前言 随着一年一度冬至的到来#xff0c;2023的步伐也将远去。而博主的系列文章#xff0c;也将从今天起#xff0c;越来越聚焦如何构建微服务“内核”上。前序系列文章几乎囊括了微服务的方方面面#xff0c;无论使用什么框架、组件或工具#xff0c;皆可拿来用之。 那么…前言 随着一年一度冬至的到来2023的步伐也将远去。而博主的系列文章也将从今天起越来越聚焦如何构建微服务“内核”上。前序系列文章几乎囊括了微服务的方方面面无论使用什么框架、组件或工具皆可拿来用之。 那么今天博主将推出微服务开发框架系列文章欢迎各位盆友继续跟着博主的步伐快乐徜徉于微服务的世界。Let’s Go
本期主题博主将带着各位盆友聚焦在经典的RPC框架Dubbo一个盛行于互联网平台的宠儿。 一、读懂RPC
我们提到Dubbo那不得不提RPC远程过程调用Remote Procedure Call缩写。首先了解一下什么是RPC RPC是一个通信协议允许客户端通过网络调用非本地的服务即像调用本地服务一样调用一个“远程”的网络服务。一般用于构建分布式平台实现跨网络访问通信。 1. 主要特点
经典3跨 无需关注“远程”服务如何实现支持3跨跨网络、跨平台、跨语言。只要一个Client根据RPC通信规范即可叩开一个Remote Server的大门。此乃经典的C/S程序架构模式。服务可重用性 既然满足3跨那可了不起了。随时随地任你“驰骋”。只要Server有统统皆拿走。此刻博主不禁暗然自喜中…
2. 核心组件
我们已知RPC是一个通信过程的协议如使用它必须遵循相应的“制度”否则乱了“江湖规矩”。满足RPC调用必须具备以下四个模块
模块名称模块简介Client一个客户端可发起远程调用的程序一般称之为“消费者”。Client Stub一个客户端的请求存根记录调用的服务信息实现请求信息“编码”和服务端返回信息的“解码”。Server一个服务端可提供服务的正在运行的程序一般称之为“生产者”。Server Stub一个服务端的响应存根记录接收的客户端信息实现客户端数据“解码”发起服务调用并向Client Stub返回经过“编码”的信息。
具体交互流程图示意如下请参考 3. 关键技术
我们可能知道或至少了解通信的基本原理
首先需要通信的双方其次需要一个通信的媒介或载体最后是信息内容。当然该过程存在一定的干扰项比如平台、网络、语言等等因此一定程度上存在可能“失真”的风险。
那么RPC既然是一个通信协议那也基本遵循该原理核心技术包括
–序列化和反序列化Sequence 将对象转换为二进制或逆向转换即实现RPC过程中的编码和解码的过程。 –动态代理Proxy 动态代理是一种在运行时创建代理类的机制动态代理可以在不修改源代码的情况下在运行时为某个接口动态生成实现类并且可以拦截接口中的方法调用从而实现一些特殊的功能.。 比如AOP、日志、注解等皆使用了动态代理技术实现。而在RPC中主要用它完成调用过程的核心处理逻辑2个Stub皆采用该技术包括封装请求信息、发起调用和返回响应信息等传输过程实现。
到此为止我想各位盆友已对RPC有了深刻的认识和了解。那么接下来博主顺势而为继续带着大家走进人见人爱的Dubbo。
二、走进Dubbo Apache Dubbo is a high-performance, Java-based open-source RPC framework. 翻译成大白话Dubbo是一个基于JAVA的高性能开源RPC框架。
1. 架构图 通过Dubbo架构图来自官网观察是不是很很高效很经典一个标准的端到端的服务框架。
组件名称组件含义Consumer服务消费者用于使用服务Provider服务提供者也叫生产者用于提供服务ZooKeeper用于满足Dubbo服务治理的工具称之为服务注册中心
当然Dubbo 在微服务应用开发框架之上抽象了一套 RPC 服务定义、暴露、调用与治理的编程范式所以实际上它的服务能力包含了服务治理内容可参考下图来自官网
2. 关键特性
- Transparent interface based RPC 提供基于RPC的透明接口 - Intelligent load balancing 提供智能的负载均衡策略 - Automatic service registration and discovery 提供自动的服务注册和发现能力 - High extensibility 提供较高的扩展能力 - Runtime traffic routing 提供运行时的服务管理和路由能力 - Visualized service governance 提供可视化服务治理能力
3. 交互原理
通过1、2两方面总结Dubbo可以说深刻体现了什么是发布、什么是订阅进而探究为实现高性能分布式系统Dubbo到底是如何工作的。 关键步骤
3.1 注册服务
服务提供者Provider在启动时向注册中心发布自己的服务。
3.2 订阅服务
服务消费者Consumer在启动时从注册中心订阅自己的服务。
3.3 调用服务
订阅完成后即可通过业务接口进行服务调用。
3.4 服务治理
包括服务调用、服务运维、服务限流、熔断等。 结语
作为支持分布式开发的高性能JAVA框架Dubbo显然具备很高的使用价值。不仅推动了微服务一时兴起的潮流也帮助使用者快速构建自己微服务体系提供了很好的参考坐标。
好了本期主题到此结束欢迎订阅与交流 历史回顾 微服务实战系列之ZooKeeper实践篇微服务实战系列之ZooKeeper下微服务实战系列之ZooKeeper中微服务实战系列之ZooKeeper上微服务实战系列之MQ微服务实战系列之通信微服务实战系列之J2Cache微服务实战系列之Cache技巧篇微服务实战系列之MemCache微服务实战系列之EhCache微服务实战系列之Redis微服务实战系列之Cache微服务实战系列之Nginx技巧篇微服务实战系列之Nginx微服务实战系列之Feign微服务实战系列之Sentinel微服务实战系列之Token微服务实战系列之Nacos微服务实战系列之Gateway微服务实战系列之加密RSA微服务实战系列之签名Sign