当前位置: 首页 > news >正文

云原生应用里的服务发现

服务定义:

服务定义是声明给定服务如何被消费者/客户端使用的方式。在建立服务之间的同步通信通道之前,它会与消费者共享。

同步通信中的服务定义:

微服务可以将其服务定义发布到服务注册表(或由微服务所有者手动发布)。然后这些微服务的消费者可以连接到服务注册表并获取服务定义(通过程序或由开发人员手动进行)。这个步骤被称为服务发现。

您的每个微服务发布都符合带有不同版本的广告服务定义。

0c7f256092c600b0b8fc417fed354f3e.png
Image.png

消费者获得的服务定义可用于构建客户端应用程序或生成与服务器通信所需的客户端库。服务定义包含给定服务提供的接口,以及客户端和微服务之间交换的消息格式和数据类型的模式。

服务注册表通常是实现为元数据仓库,具有用于管理服务定义和其他元数据的 API。一些可以做到这一点的工具有Consul、etcd 和 Apache ZooKeeper。在大多数部署中,我们可以将服务注册表作为集中式组件运行。

异步通信中的服务定义

生产者和消费者之间交换的消息包含使用模式进行序列化或反序列化的结构化数据,该模式定义并验证各方之间交换的数据。由于通过消息代理或事件总线异步进行通信,执行生成和消费消息的微服务应使用公共模式。与同步消息传递场景中的服务定义类似,生产者和消费者微服务必须使用中央元数据注册表来存储模式。

当两个微服务使用异步消息驱动通信时,生产者可以在将消息发布到消息代理的队列或主题时,对消息进行模式(存储在模式注册表中)验证。

6d092596589c21940d1271cea844b07c.png
Image.png

模式定义技术:Apache Avro、Protocol Buffers 或 JSON schemas等。

根据您使用的代理类型,模式定义技术可能会有所不同。例如,Kafka注册表支持Avro、JSON 和 Protocol Buffers,Azure在其Event Hubs消息服务中使用Azure模式注册表

新兴的异步服务定义技术,如AsyncAPI,可以用于指定整个服务合同,而不仅仅是消息的模式。

复杂性的注意事项:

大多数异步消息传递是在不使用基于模式的序列化和反序列化的情况下实现的。这通常导致生产者和消费者之间的不一致和数据类型不匹配。此外,需要发送随消息一起传输的元数据会增加消息大小,从而降低异步通信的性能。因此,在异步通信中采用模式对于确保云原生应用程序的可靠性和安全性至关重要。

我们讨论了生产者和消费者端的模式验证。这本质上引入了性能开销,因为每个消息都需要经过验证过程。同时,从注册表中获取模式可能需要缓存机制,以避免性能瓶颈。

相关文章:

云原生应用里的服务发现

服务定义: 服务定义是声明给定服务如何被消费者/客户端使用的方式。在建立服务之间的同步通信通道之前,它会与消费者共享。 同步通信中的服务定义: 微服务可以将其服务定义发布到服务注册表(或由微服务所有者手动发布)…...

【零基础学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流

文章目录 简介:一,变量1,变量的定义2,变量的可变性3,变量的隐藏 二、数据类型1,标量类型2,复合类型 三,运算符1,算术运算符2,比较运算符3,逻辑运算…...

运输层---概述

目录 运输层主要内容一.概述和传输层服务1.1 概述1.2 传输服务和协议1.3 传输层 vs. 网络层1.4 Internet传输层协议 二. 多路复用与多路分解(解复用)2.1 概述2.2 无连接与面向连接的多路分解(解复用)2.3面向连接的多路复用*2.4 We…...

高速公路巡检无人机,为何成为公路巡检的主流工具

随着无人机技术的不断发展,无人机越来越多地应用于各个领域。其中,在高速公路领域,高速公路巡检无人机已成为公路巡检的得力助手。高速公路巡检无人机之所以能够成为公路巡检中的主流工具,主要是因为其具备以下三大特性。 一、高速…...

仓库管理系统有哪些功能,如何对仓库进行有效管理

阅读本文,您可以了解:1、仓库管理系统有哪些功能;2、如何对仓库进行有效管理。 仓库是制造业的开端,原材料的领料开始。企业的仓库管理是涉及企业生产、企业资金流和企业的经营风险的关键环节。在众多的工业企业、制造型企业、贸…...

Java 比Automic更高效的累加器

1、 java常见的原子类 类 Atomiclnteger、AtomicIntegerArray、AtomicIntegerFieldUpdater、AtomicLongArray、 AtomicLongFieldUpdater、AtomicReference、AtomicReferenceArray 和 AtomicReference- FieldUpdater 常见的原子类使用方法 使用 AtomicReference 来创建一个原…...

antDv table组件滚动截图方法的实现

在开发中经常遇到table内容过多产生滚动的场景,正常情况下不产生滚动进行截图就很好实现,一旦产生滚动就会变得有点棘手。 下面分两种场景阐述解决的方法过程 场景一:右侧不固定列的情况 场景二:右侧固定列的情况 场景一 打开…...

JavaSE【抽象类和接口】(抽象类、接口、实现多个接口、接口的继承)

一、抽象类 在 Java 中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用 给出具体的实现体。 1.语法 // 抽象类:被 abstract 修饰的类 public abstract class Shape { …...

微信小程序如何跳转H5页面

1、登录微信公众后台,进入【开发->开发管理->业务域名】,点击修改。 2、首先请下载校验文件,并将文件放置在域名根目录下。 我是把文件放在nginx主机的data目录下,然后通过增加nginx.config配置,重启nginx后可…...

C++(20):bit_cast

C++20之前如果想对不同的指针之间做类型转换需要通过reinterpret_cast,对于整数与指针之前的转换也需要通过reinterpret_cast: C++:reinterpret_cast_c++ reparant_cast_风静如云的博客-CSDN博客 但是reinterpret_cast的缺点是不同的编译环境下,无法包装转型的安全一致。 …...

STM32 低功耗-停止模式

STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止以及待机模式。 在系统…...

Hutool中 常用的工具类和方法

文章目录 日期时间工具类 DateUtil日期时间对象-DateTime类型转换工具类 Convert字符串工具类 StrUtil数字处理工具类 NumberUtilJavaBean的工具类 BeanUtil集合操作的工具类 CollUtilMap操作工具类 MapUtil数组工具-ArrayUtil唯一ID工具-IdUtilIO工具类-IoUtil加密解密工具类 …...

K8s(健康检查+滚动更新+优雅停机+弹性伸缩+Prometheus监控+配置分离)

前言 快速配置请直接跳转至汇总配置 K8s SpringBoot实现零宕机发布:健康检查滚动更新优雅停机弹性伸缩Prometheus监控配置分离(镜像复用) 配置 健康检查 健康检查类型:就绪探针(readiness) 存活探针&am…...

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查 数据库操作 MySQL数据库pymysql Django开发操作数据库更简单,内部提供了ORM框架。 安装第三方模块 pip install mysqlclientORM可以做的事: 1、创建、修改、删除数据库中的…...

React Hooks 中的 useEffect(副作用)

useEffect 是什么? useEffect 是一个 React Hook,它允许你将组件与外部系统同步 当我们在 React 中使用 useEffect 这个 Hook 时,实际上是在告诉 React 在特定情况下执行我们定义的副作用函数。这种副作用函数可以处理一些与组件渲染结果无关…...

[CKA]考试之持久化存储卷PersistentVolume

由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 创建一个pv,名字为app-config,大小为2Gi,…...

基于LLM的SQL应用程序开发实战(一)

基于LLM的SQL应用程序开发实战(一) 16.1 SQL on LLMs应用程序初始化 本节主要从案例代码的角度切入,探索ChatGPT以及大模型,尤其是从生产环境的视角,来思考具体的最佳实践。本节主要跟大家谈的是,在LangChain这样一个框架下,我们使用GPT-3.5或者GPT-4大模型,同时使用第…...

如何批量实现多行合并后居中

思路: 1.先填充数据 2.数据分类统计制作格式 3.格式刷刷制作出的格式 1.填充数据 思路:选中,F5定位空值,,⬆(键盘上的上下左右哪里的上键),按住Ctrl然后按Enter。 2.数据分类统计…...

【深度学习_TensorFlow】手写数字识别

写在前面 到这里为止,我们已经学习完张量的常用操作方法,已具备实现大部分神经网络技术的基础储备了。这一章节我们将开启神经网络的学习,然而并不需要像学习前面那样了解大量的张量操作,而是将重点转向理解概念知识,…...

antv/l7地图,鼠标滚动,页面正常滑动-- 我们忽略的deltaY

背景 在官网项目中,需要使用一个地图,展示产品的分布区域及数量。希望的交互是,鼠标放上标点,tooltip展示地点和数量等信息。鼠标滚动,则页面随着滚动。但是鼠标事件是被地图代理了的,鼠标滚动意味着地图的…...

OpenCore Legacy Patcher技术揭秘:老Mac升级macOS的底层原理与实战指南

OpenCore Legacy Patcher技术揭秘:老Mac升级macOS的底层原理与实战指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 对于拥有2007年以后的Inte…...

编写程序让智能文具收纳盒检测物品缺失,常用笔不在时提示“寻找放回”。

项目名称:PenPal Guardian (智能文具收纳盒)一、 实际应用场景描述场景设定为一个带有重量感应和RFID识别功能的智能文具收纳盒。在这个场景中,收纳盒被放置在办公桌的固定位置。盒子里预先放置了“必备三件套”:一支签字笔、一支铅笔、一把尺…...

[PL2303老芯片兼容性困境]:驱动适配方案实现设备激活(适用于工业控制与嵌入式开发场景)

[PL2303老芯片兼容性困境]:驱动适配方案实现设备激活(适用于工业控制与嵌入式开发场景) 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 …...

3个革新性步骤:Cursor Free VIP突破AI编程助手使用限制

3个革新性步骤:Cursor Free VIP突破AI编程助手使用限制 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tr…...

VUE.JS实践--事件对象和计算属性

一、什么是事件对象1.2 演示事件对象&#xff0c;在控制台输出 单击事件 的两种方法。<template><!-- 两个作用函数完全一样&#xff1a;接收事件对象 → 打印到控制台 --><!-- 按钮1&#xff1a;点击触发 greet 方法 --><button click"greet"…...

【数字化合集】6000余份AI大模型行业应用、数字化转型、数据治理、数据资产、数据要素、IT战略信息化、数据仓库、主数据等方案报告

本方案覆盖AI大模型、数字化转型、数据治理、数据资产、数据要素、IT战略、数据仓库及主数据八大领域&#xff0c;提供政策依据、核心架构与实践指引。各领域相互关联&#xff1a;战略规划引领基础设施与治理&#xff0c;资产化驱动要素流通&#xff0c;AI赋能全链路&#xff0…...

多平台内容同步利器:面向教育工作者的开源推流方案

多平台内容同步利器&#xff1a;面向教育工作者的开源推流方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在数字化教学日益普及的今天&#xff0c;教育工作者常常面临一个挑战&…...

如何免费优化电脑散热?FanControl风扇控制软件5分钟入门教程

如何免费优化电脑散热&#xff1f;FanControl风扇控制软件5分钟入门教程 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trend…...

2026 企业办公家具采购指南:如何成为高端定制首选?

企业办公环境不仅是工作场所&#xff0c;更是公司的“第一面片”。对于行政采购人员而言&#xff0c;如何在预算范围内选择既有质感又靠谱的厂家&#xff1f;本文以佛山知名定制厂家——佛山市豪亿家具&#xff08;Hooye&#xff09; 为例&#xff0c;为您梳理采购避坑指南。一…...

【仅限前500名开发者】EF Core 10向量搜索成本诊断工具包(含SQL Server 2022向量索引开销分析器CLI)

第一章&#xff1a;EF Core 10向量搜索扩展成本控制策略全景概览EF Core 10 引入的向量搜索扩展&#xff08;Microsoft.EntityFrameworkCore.Vector&#xff09;为.NET开发者提供了原生支持近似最近邻&#xff08;ANN&#xff09;查询的能力&#xff0c;但其底层依赖向量索引构…...