初次学习dubbo记录

---------------------------------------10.17----------------------------------------

集群和分布式概念


集群:很多"人"做的相同的一件事,即使有一个人挂掉了,也不会对系统造成致命影响

分布式:很多"人"做的不相同的一件事,,合起来却是一件大事情,效率会提升。

集群:一个业务模块,同时部署在多个饿服务器上

分布式:一个大的业务拆分成多个小的业务模块,每一个小的业务模块部署在不同机器上(微服务)

架构演变

单体架构->垂直架构->分布式架构->SOA架构->微服务架构

分布式架构

把公共模块从垂直架构中抽离出来,形成独立的服务,让其他的项目来消费

消费者调用公共模块(远程服务),使用的是rpc

分布式的缺点:在分布式架构中,如果服务的地址变了,那么所有调用该服务的消费者都需要随之变更

SOA架构

在分布式基础上,添加了ESB组件,作为调度中心

微服务架构

在soa架构上的一个升华,将原来的单个业务系统拆分成多个单独的,可以独立开发的,设计,运行的小应用,这些小的应用通过服务来完成交互和集成

---------------------------------------10.18----------------------------------------

高级特性

序列化

生产者将需要传给消费者的对象序列化成流,但是同样的消费者也需要反序列化,导致两边都需要创建对象并实现序列化接口。

所以会将这个公用对象抽取出来放在一个公共模块中。

地址缓存

当注册中心zk挂掉了,仍然可以正常调用服务,因为在第一次从zk调用之后会进行一个地址缓存,每次去调用服务便不需要与zk进行交互,只有当提供者更改了地址zk会通知消费者

超时与重试

---------------------------------------10.17----------------------------------------

超时机制,如果一直连接不上的话太耗费资源,所以设置了超时机制。

建议在@reference(timeout = 3000)

也就是在服务提供者里面设置超时时间

重试机制:

多版本

发布新的版本时,并不是让所有消费者全部更新使用,而是先让部分的消费者使用,测试到版本稳定后再进行全部版本迁移

dubbo中使用version属性来设置和调用同一个接口到不同版本

服务提供者的注解@service(dubbo包下的service)

远程调用服务的注解@reference

负载均衡

在调用时选择负载均衡策略

@reference(loadbalance="")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/122543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ruoyi vue前后端分离功能介绍

文章目录 内置功能:用户管理:部门管理:岗位管理:菜单管理:角色管理:字典管理:参数管理: 可以设置是否开启验证码功能通知公告:操作日志:登录日志:在线用户&am…

Think-Queue3一直提示[Exception]redis扩展未安装

场景 tp6tq3实现的任务队列,使用redis作为数据驱动,目前是tp6可以正常使用redis了,但tq3不行,一直提示[Exception]redis扩展未安装。 解决思路 1.分析tq3源码 定位到是这一行出了问题 if (!extension_loaded(redis)) {throw n…

PAT 乙级1070结绳

题目: 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两…

【ChatGPT系列】ChatGPT:创新工具还是失业威胁?

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

香港服务器如何做负载均衡?

​  在现代互联网时代,随着网站访问量的不断增加,服务器的负载也越来越重。为了提高网站的性能和可用性,负载均衡成为了一种常见的解决方案。 什么是负载均衡? 负载均衡是一种技术解决方案,用于在多个服务器之间分配负载&#…

【C】想练习C语言?通讯录的实现了解一下

目录 实现思路 开始实现 添加增加联系人功能 添加显示联系人信息的功能 添加删除联系人功能 添加查找指定联系人的功能 添加修改指定联系人的功能 测试 代码 Test.c Contact.c Contact.h 实现思路 1.通讯录中保存人的信息:名字、年龄、性别、电话、住址…

音视频常见问题(六):视频黑边或放大

摘要 本文介绍了视频黑边或放大的原因和解决方案。主要原因包括视频分辨率与显示视图尺寸不一致、摄像头采集、美颜滤镜格式兼容和分辨率。为了解决这些问题,开发者可以选择合适的渲染模式、动态调整分辨率、处理视频旋转和使用自定义视频渲染。 即构音视频SDK提供…

每日一道算法题:26. 删除有序数组中的重复项

难度 简单 题目 给你一个 非严格递增排列 的数组 nums ,请你原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为…

Winform 多语言化快速解析替换工具-1分钟一个界面

随着业务的扩展,有的软件有多语言化的需求。那么如果软件已经很多写死的文字内容如何快速进行语言化替换呢,一个一个去改工作量太大。 于是开发了个小工具用来替换现有内容并生成语音包,原理就是采用正则表达式进行匹配控件关键字以及中文进…

基础数据类型和引用数据类型区别?

基础数据类型和引用数据类型的区别如下: 存储上的区别:基础数据类型是存放在栈中的简单数据段;引用数据类型是存放在堆内存中的对象,在栈内存中存放的是堆内存中具体内容的引用地址,通过这个地址可以快速查找到对象。…

AS/400简介

AS400 AS400 简介AS/400操作系统演示 AS400 简介 在 AS400 中,AS代表“应用系统”。它是多用户、多任务和非常安全的系统,因此用于需要同时存储和处理敏感数据的行业。它最适合中级行业,因此用于制药行业、银行、商场、医院管理、制造业、分销…

基于长短期神经网络的可上调容量PUP预测,基于长短期神经网络的可下调容量PDO预测,LSTM可调容量预测

目录 背影 摘要 代码和数据下载:基于长短期神经网络的可上调容量PUP预测,基于长短期神经网络的可下调容量PDO预测,LSTM可调容量预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88230834 LSTM的基本定义 LSTM实现的步骤 基于长短…

使用FastAPI部署Ultralytics YOLOv5模型

YOLO是You Only Look Once(你只看一次)的缩写,它具有识别图像中的物体的非凡能力,在日常应用中会经常被使用。所以在本文中,我们将介绍如何使用FastAPI的集成YOLOv5,这样我们可以将YOLOv5做为API对外提供服务。 Python有几个web框…

CGAL+QT

先安装CGAL和QT 安装完QT其中MSVC 这两个没配置 1、x32配置选择的是 x64配置选择的是 2、CGAL 5.4.5 - Manual: Using CGAL on Windows (with Visual C) 参数文章配置一些环境变量 3、 测试 新建build 进行cmake QT、Boost、CGAL都自动匹配上了(环境变量已经配…

FastAPI框架学习笔记(快速入门FastAPI框架)

1. 写在前面 今天整理一篇后端框架的笔记, fastapi框架是比较主流的后端异步web框架,关键是python语言可以写,正好公司最近安排了一些后端服务的活, 所以就看了一个fastapi框架的入门课程(链接在底部),完成任务&#…

lua-web-utils和proxy设置示例

以下是一个使用lua-web-utils和proxy的下载器程序: -- 首先安装lua-web-utils库 local lwu require "lwu" ​ -- 获取服务器 local function get_proxy()local proxy_url "duoipget_proxy"local resp, code, headers, err lwu.fetch(proxy_…

图像识别在自动驾驶汽车中的决策规划与控制策略研究。

图像识别在自动驾驶汽车中的决策规划与控制策略研究 随着自动驾驶技术的不断发展,图像识别已经成为实现自动驾驶的关键技术之一。在自动驾驶汽车中,图像识别技术主要用于环境感知、决策规划和控制系统。本文将重点探讨图像识别在自动驾驶汽车中的决策规…

Mysql底层执行过程及基于PK的“数据跳跃”

Mysql底层执行过程 当MySQL收到一个查询,特别是像 WHERE id ? 这样的基于主键的查询时,它可以高效地找到所需的数据。以下是基于InnoDB存储引擎(MySQL的默认存储引擎)进行查询的底层过程: 解析查询: MySQL首先会解析…

后端实现大文件分片上传

项目框架 net6 webapi 放开上传大小限制 放开代码 | 框架层限制 在 Program.cs 文件中添加如下代码 不然会出现下面的限制错误 From表单限制:Failed to read the request form. Multipart body length limit 134217728 exceeded 请求体超长:Request bo…

pytorch:Model模块专题

一、说明 关于pytorch使用中,模块扮演重要校色,大部分功能不能密集展现,因此,我们这个文章中,将模块的种种功能详细演示一遍。 二、模块 PyTorch使用模块来表示神经网络。模块包括: 有状态计算的构建块。…