首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(6服务发现

    距离上一篇文章居然已经过去两个月了,毕竟苦逼打工人忙得一点空都没有……本文我们来讲一讲对于微服务架构来说,最重要的一个点了:服务发现及其对应的名字服务功能。 组件生态和使用腾讯 tRPC-Go 教学——(5)filter、context 和日志组件腾讯 tRPC-Go 教学——(6服务发现腾讯 tRPC-Go 教学——(7)服务配置和指标上报腾讯 tRPC-Go 但是直接指定下游服务的 IP 地址有几个问题:在微服务集群中,一个服务可能有多个节点,只配置一个 IP 不能满足业务主备的需求,也无法实现一致性哈希等复杂的寻址能力随着服务节点的持续伸缩,服务的 IP 我们也可以从这两个服务的日志上看到。其他注意项至此,使用北极星进行名字服务注册、发现的功能就介绍完了。 原文标题:《腾讯 tRPC-Go 教学——(6服务发现》发布日期:2024-05-01原文链接:https://cloud.tencent.com/developer/article/2414446。

    2.1K71编辑于 2026-01-02
  • 来自专栏全栈工程师修炼之路

    6-Kubernetes入门基础之服务发现Service介绍

    ; – 0x01 服务发现 描述: 谈到微服务服务发现,那么久离不开服务发现这个棘手的问题,前面说了Service与Cluster IP关联原理,但随之而来的是K8S如何做到四层/七层服务发现的呢? 四层服务发现 描述: 四层服务发现主要有两种方式环境变量或者DNS; 环境变量-environment 说明: 在K8s早期采用了Linux环境变量的方式,即每个Service生成一些对应的Linux环境变量 描述: 在实际的应用场景中一定是由某些服务要暴露给用户或者集群外部访问的比如网站服务, 而此时前面所提的四层服务发现仅仅限于K8s集群内部访问, 通过需要我们的前端代理来进行实现,例如采用Nginx-Ingress kube-proxy去监控,以及通过监控kube-proxy去实现服务端点信息的发现; kube-proxy: 通过选择标签去监控对应的pod并写入到iptable规则里面去; client: 访问服务时通过 七层负载均衡原理: 可以对同一个Web服务器进行负载,它除了根据IP加端口进行负载外,还可根据http协议中的URL/浏览器类别/语言来决定是否要进行负载均衡; ---- 0x02 服务发现类型 描述

    3.2K21编辑于 2022-09-29
  • 来自专栏区块链入门

    【知识总结】6.服务注册发现框架比较(ConsulZookeeperetcdEureka)

    前言 服务发现就是服务提供者将自己提供的地址post或者update到服务中介,服务消费者从服务中介那里get自己想要的服务的地址。 但是对于服务发现来说,情况就不太一样了,针对同一个服务,即使注册中心的不同节点保存的服务提供者信息不尽相同,也并不会造成灾难性的后果。 而服务发现恰好相反,默认依赖于SDK,但可以通过Consul Template(下文会提到)去除SDK依赖。 ? 很多系统都采用或支持etcd作为服务发现的一部分,比如kubernetes。但正事因为其只是一个存储系统,如果想要提供完整的服务发现功能,必须搭配一些第三方的工具。 etcd 比较多的应用场景是用于服务发现服务发现 (Service Discovery) 要解决的是分布式系统中最常见的问题之一,即在同一个分布式集群中的进程或服务如何才能找到对方并建立连接。

    2.8K11发布于 2021-03-11
  • 来自专栏愿天堂没有BUG(公众号同名)

    6年架构师带你学习微服务的注册与发现服务发现的意义

    服务发现的意义 服务发现,意味着用户发布的服务可以让其他人找得到。在互联网里面,最常用的服务发现机制莫过于域名。通过域名,用户可以发现该域名所对应的IP,继而能够找到发布到这个IP的服务。 需要服务的注册和发现 知道了上面的问题,用户就能更好地理解需要服务的注册和发现机制的原因。 服务注册和发现正像互联网上的DNS,可以让用户启动的每个微服务都把自己注册进-一个服务注册表(或称为注册中心),当其他微服务需要调用这个服务的时候,就通过服务的名称来获取到这个服务。 本节将着重讲解如何通过Eureka 来实现微服务的注册与发现。选择使用Eureka 的原因,大致总结了以下几个方面。 1.完整的服务注册和发现机制 Eureka提供了完整的服务注册和发现机制,并且也经受住了Netflix自己的生产环境考验,使用起来相对会比较省心。

    46330编辑于 2022-10-28
  • 来自专栏Java架构师历程

    4、服务发现

    有两种主要的服务发现模式:客户端发现(client-side discovery)与服务发现(server-side discovery)。让我们先来看看客户端发现。 该模式的一个重要缺点是它将客户端与服务注册中心耦合在一起。您必须为服务客户端使用的每种编程语言和框架实现客户端服务发现逻辑。 现在我们已经了解了客户端发现,接下来让我们看看服务发现。 4.3、服务发现模式 服务发现的另一种方式是服务发现模式。图 4-3 展示了该模式的结构: ? 客户端通过负载均衡器向服务发出请求。负载均衡器查询服务注册中心并将每个请求路由到可用的服务实例。 Consul 一个发现与配置服务工具。它提供了一个 API,可用于客户端注册与发现服务。Consul 可对服务进行健康检查,以确定服务的可用性。 系统组件使用查询 API 来发现可用的服务实例。 有两种主要的服务发现模式:客户端发现服务发现。在使用了客户端服务发现的系统中,客户端查询服务注册中心,选择一个可用实例并发出请求。

    2.8K30发布于 2018-09-26
  • 来自专栏AI.NET极客圈

    Kubernetes 服务发现

    目录 什么是服务发现? 环境变量 DNS 服务 Linux 中 DNS 查询原理 Kubernetes 中 DNS 查询原理 调试 DNS 服务 存根域及上游 DNS 什么是服务发现服务发现的关键在于服务元数据(metadata)的存储,包括服务名、服务 IP、服务端口等信息。 Kubernetes 支持两种服务发现方式,环境变量和 DNS。 如依赖的服务宕机或绑定新地址,Pod 无法发现,仍然持有旧的地址。 幸好,我们还有另一种服务发现机制。 DNS 服务 在讲述 Kubernetes 中使用 DNS 进行服务发现之前,我们不得不先了解下 Linux 中是如何进行 DNS 查询的。 MX Mail exchange record,邮件服务记录 TXT Text record,为某条记录设置说明 AAAA IPv6 address record,域名到 IPv6 地址 ( 128

    2.3K20发布于 2019-08-20
  • 来自专栏SRE运维实践

    服务发现--prometheus

    服务发现,好像用zk的比较多,不要问我为什么不用etcd,就是这么任性,就想用consul。 使用consul进行服务发现 1、运行consul容器 ? 服务注册,服务发现。。。傻傻分不清楚。 风言风语 推荐一首歌,感觉一般般。。。 这个城市风很大。。。看了没用,没用也看。。。 脑子漏风 配置中心与服务中心,配置中心主要是用来存储配置的,而服务中心,则主要是提供服务注册和服务发现的功能,所谓的ESB。。。企业级SB,呵呵哒。。。 配置中心用来存储所有实例的配置,在进行服务重启或者服务重建的时候,只要拉取相关的配置就OK了。 而服务中心,主要是用来进行解耦,其实无论是分层,还是拆分组件,模块,都是为了解耦。 站在应用的角度来说,又可以分为web服务,存储,大数据等,就看怎么去定义指标。

    88530发布于 2019-07-08
  • 来自专栏sktj

    Prometheus:服务发现

    1、基于文件的服务发现 ? image.png 2、基于API的服务发现 EC2的服务发现 ? ? ? 3、基于DNS的服务发现 ? 基于A记录 ?

    82320发布于 2020-01-15
  • 来自专栏java学习java

    服务发现@EnableDiscoveryClient

    @SpringBootApplication @EnableEurekaClient @EnableDiscoveryClient //服务发现 public class PaymentMain8001

    1K30编辑于 2022-11-13
  • 来自专栏sktj

    Etcd 服务发现

    定制 etcd 发现服务 发现使用已有集群来启动自身。 这将导致每个成员使用定制的 etcd 发现服务注册自身并开始集群,一旦所有的机器都已经注册。 公共 etcd 发现服务 如果没有现成的集群可用,可以使用托管在 discovery.etcd.io 的公共发现服务。 discovery https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de 这将导致每个成员使用定制的 etcd 发现服务注册自身并开始集群 使用环境变量 ETCD_DISCOVERY_PROXY 来让 etcd 使用 HTTP 代理来连接到发现服务

    96120发布于 2019-10-29
  • 来自专栏生如夏花的个人博客

    服务系列(一)-服务发现

    服务发现 什么是服务发现 在微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。 服务发现就是服务消费方通过服务发现中心智能发现服务提供方,从而进行远程调用的过程。 如下图: ? 上图中服务实例本身并不记录服务生产方的网络地址,所有服务实例内部都会包含服务发现客户端。 (1)在每个服务启动时会向服务发现中心上报自己的网络位置。这样,在服务发现中心内部会形成一个服务注册 表,服务注册表是服务发现的核心部分,是包含所有服务实例的网络地址的数据库。 (2)服务发现客户端会定期从服务发现中心同步服务注册表 ,并缓存在客户端。 (3)当需要对某服务进行请求时,服务实例通过该注册表,定位目标服务网络地址。 各服务实例会上报自己的网络地址,这样服务中心就形成了一个完整的服务注册表,各服务实例会通过服务发现中 心来获取访问目标服务的网络地址,从而实现服务发现的机制。

    61310发布于 2021-01-06
  • 来自专栏民工哥技术之路

    Kubernetes 之服务发现

    Kubernetes 中为了实现服务实例间的负载均衡和不同服务间的服务发现,创造了 Service 对象,同时又为从集群外部访问集群创建了 Ingress 对象。 ? 就之前学习的知识,我们都是部署单独的服务,并没有应用实际的示例。 ,可以查到对应的防火墙规则和默认的 SVC 服务。 ,可以查到对应的防火墙规则和默认的 SVC 服务。 相反的,对于运行在集群外部的服务,它通过返回该外部服务的别名这种方式来提供服务

    79940发布于 2021-04-21
  • 来自专栏linux技术

    prometheus (三) 服务发现

    简介# 手动添加 job 配置未免过于繁琐, prometheus 支持很多种方式的服务发现, 在 k8s 中是通过 kubernetes_sd_config 配置实现的. 配置, prometheus-operator 抽象了出了两种 CRD 资源: serviceMonitor: 创建 endpoints 级别的服务发现 podMonitor: 创建 pod 级别的服务发现 通过对这两种 CRD 资源的管理实现 prometheus 动态的服务发现. 1.1 kubernetes_sd_config# https://prometheus.io/docs/prometheus 种服务发现级别. node 适用于与主机相关的监控资源,如节点中运行的 Kubernetes 组件状态、节点上运行的容器状态等; service 和 ingress 适用于通过黑盒监控的场景,如对服务的可用性以及服务质量的监控 如果该 endpoints 是由 service 创建的, 那么所有 service 发现模式的标签也会被附加上 如果该 endpoints 的后端是 pod 提供服务, 那么所有 pod 发现模式的标签也会被附加上

    1.6K30编辑于 2023-05-02
  • 来自专栏SRE运维实践

    服务注册发现-consul

    风言风语 在微服务的世界中,各种各样的restful api,今天我要升级,明天我要变更,大大小小的服务几百个,从而就有了服务中心,自动服务发现了解一下。。。 服务中心主要用来解决系统之间的强耦合关系,而且系统之间的调用基本上是同步调用的。 所谓的自动服务发现,只不过是不需要修改配置,就发现服务,调用了服务。。。 在服务中心中,分为两种: 一种是名称总线系统,也就是A系统需要调用某个服务的时候,只要请求服务中心即可,服务中心会自己去调用远程的服务然后得到响应,最后由服务中心响应给A系统。 服务发现,你在使用服务的时候,其实你也在提供服务。。。这种调用的方式,像不像LVS的几种调度方法。。。 4、 界面查看注册了服务,并且能进行健康检查 ? 用脚指头思考 在不知道何为服务发现的时候,苦苦思索,为什么要服务发现发现服务是为了干啥,概念上的玩法。。。存在是为了解决什么?

    80660发布于 2019-07-08
  • 来自专栏【云原生 • Prometheus】

    prometheus 服务发现原理

    服务发现 概述 如上图,Prometheus核心功能包括服务发现、数据采集和数据存储。 服务发现模块专门负责发现需要监控的目标采集点(target)信息,数据采集模块从服务发现模块订阅该信息,获取到target信息后,其中就包含协议(scheme)、主机地址:端口(instance)、请求路径 为什么需要服务发现模块? 类似于微服务通过引入注册中心组件解决众多微服务间错综复杂的依赖调用。 1、Prometheus服务启动加载prometheus.yml配置文件会被解析Config结构体: ❝ Config结构体是配置类的最顶层结构,内部包含6个字段分别对应prometheus配置的6 服务发现核心原理 说明: Prometheus服务发现核心逻辑的入口主要关注Manager结构体的ApplyConfig方法:基于服务发现的配置使其生效; ApplyConfig方法包括四个主要步骤:

    95831编辑于 2023-03-22
  • 来自专栏CNCF

    为人员服务发现注释Kubernetes服务

    随着 Kubernetes 应用程序的增长,其中一个问题是服务的扩散。随着服务数量的增长,开发人员开始专门处理特定的服务。 然而,当涉及故障排除时,开发人员需要能够找到源,了解服务和依赖关系,并与拥有任何服务的团队交谈。 人员服务发现 故障排除总是从信息收集开始。 在集中机器数据(如日志、指标)的同时,对服务发现的人员方面的关注却少得多。谁拥有一个特定的服务?团队在哪个 Slack 频道工作?服务的源在哪里?目前已知并正在跟踪的问题是什么? 请注意,不应将这些服务目录与Kubernetes 服务目录项目[3]混淆。 现在就注释你的服务,以后感谢你自己 就像在微服务系统中实现可观察性一样,当你意识到需要人员服务发现时,往往为时已晚。

    55010发布于 2021-05-07
  • 来自专栏Java实战博客

    Eureka 注册中心 & 服务注册 & 服务发现

    Eureka实际运行机制 如果我们要启动登陆服务3个。 我们每个登陆服务都会向eureka发送注册信息 Eureka-Server就会记录这些ip、端口信息。 如果有请求登陆服务,就会随机从3个健康的登陆服务抽取一个进行处理登陆业务。 服务发现如何体现呢? 到从Eureka的注册与发现就完成了! 但是Eureka只有服务注册与发现,实现的负载均衡就是的Ribbon(你可以点击一下@Loadbalance注解看一下):https://www.zanglikun.com/13046.html 特殊说明

    2.5K10编辑于 2022-08-24
  • 来自专栏IT技术精选文摘

    服务架构中的服务发现

    服务实例具有动态分配的网络位置。此外,由于自动缩放,故障和升级,服务实例集合会动态更改。因此,您的客户端代码需要使用更精细的服务发现机制。 有两种主要的服务发现模式:客户端发现服务器端发现。 我们来看看客户端发现。 客户端发现模式 当使用客户端发现时,客户端负责确定可用服务实例的网络位置和负载均衡请求。客户端查询服务注册表,它是可用服务实例的数据库。 现在我们已经看过了客户端发现,那我们再来看看服务器端的发现 服务器端发现模式 服务发现的另一种方法是服务器端发现模式。下图显示了此模式的结构。 ? 客户端通过负载均衡器向服务器发出请求。 服务器端发现模式有几个好处和缺点。这种模式的一个很大的好处是发现的细节从客户端抽象出来。客户端只需向负载均衡器发出请求。这消除了为服务客户端使用的每个编程语言和框架实现发现逻辑的必要性。 有两种主要的服务发现模式:客户端发现服务发现。在使用客户端服务发现的系统中,客户端查询服务注册表,选择可用实例并发出请求。

    3K80发布于 2018-01-30
  • 来自专栏架构进阶

    服务注册中心:Consul——服务发现

    系列文章: 微服务注册中心:Consul——概念与基础操作 微服务注册中心:Consul——服务注册 公众号:程序员架构进阶 一 概述 说完了Consul的服务注册,那么就该到服务发现了。 服务注册,是服务提供方把自己的信息(ip、端口、方法、参数&返回值信息)注册到一个中心;服务发现就是服务使用方,从中心获取到可用的服务提供方信息,并像本地方法调用一样调用其方法(远程方法),这也就是RPC 三 Consul服务发现 3.1 Consul已注册服务查看 大概了解了Consul的架构,接下来回到本篇的主题,我们先搞清楚怎样获取到已注册的服务,来供调用。 3.2.2 依赖配置 主要是spring-cloud,spring boot,以及spring-cloud-starter-consul-discovery,用于做consul的服务发现。 四 小结 至此,我们从本地安装启动Consul,到服务注册和发现,可以简单的使用起来了,但还是非常简单的应用,并未深入到原理和架构,后面的文章中,将会对其原理进行分析,敬请期待。

    2.4K00发布于 2021-05-29
  • 来自专栏生如夏花的个人博客

    服务系列(四):服务发现模型

    服务发现数据模型 Namespace隔离设计 命名空间(Namespace)用于进行租户粒度的隔离,Namespace 的常用场景之一是不同环境的隔离,例如开发测试 环境和生产环境的资源(如配置、服务) 数据模型 Nacos在经过阿里内部多年生产经验后提炼出的数据模型,则是一种服务-集群-实例的三层模型,这样基本可以满 足服务在所有场景下的数据存储和管理。在这里插入图片描述 ? 服务 对外提供的软件功能,通过网络访问预定义的接口。 实例 提供一个或多个服务的具有可访问网络地址(IP:Port)的进程,启动一个服务,就产生了一个服务实例。 元信息 Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标 签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。 集群 服务实例的集合,服务实例组成一个默认集群, 集群可以被进一步按需求划分,划分的单位可以是虚拟集群,相同 集群下的实例才能相互感知。

    67510发布于 2021-01-06
领券