首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不使用领事在码头发现服务

不使用领事在码头发现服务
EN

Stack Overflow用户
提问于 2017-02-05 07:52:35
回答 3查看 1.9K关注 0票数 6

我刚开始做码头和微型服务。我已经开始将我的web应用程序分解成微服务,目前,我正在进行手动配置。

经过一些研究后,我遇到了码头群模式,允许服务发现。此外,我还遇到了其他服务发现工具,如尤里卡和领事。

我的主要目标是用服务名称替换curl调用中的IP地址,并在同一服务的多个实例之间实现负载平衡。

也就是前任。curl http://192.168.0.11:8080/ to curl http://my-service

我必须保持服务语言的独立性。

请建议,我是否需要使用领事与码头群服务发现,或我可以做到这一点,没有领事?有什么好处?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-05 09:45:19

使用新的“群模式”,您可以使用停靠器服务创建跨多个群集节点的集群服务。然后,您可以通过在请求中使用服务名称而不是节点名称来访问这些相同的服务,即负载平衡服务。

这只适用于群集覆盖网络中的节点。如果您的客户端系统是同一群的一部分,那么发现应该在不需要任何外部解决方案的情况下开箱即用。

另一方面,如果您希望能够从群集之外的系统中发现服务,那么您有几种选择:

  • 对于无状态服务,您可以使用docker的路由网格,这将使服务端口在所有群集节点上都可用。这样,您只需指向群中的任何节点,停靠者就会将您的请求定向到运行该服务的节点(不管您单击的节点是否有该服务)。
  • 如果您需要控制路由或处理不同的状态,请在群集服务前面使用实际的负载均衡器。这可能是另一个带有--mode global选项的码头服务(即haproxy,nginx),以确保它在所有节点上运行,或者是一个单独的负载均衡器,比如citrix。您需要让您的服务容器通过它们的启动脚本或通过供应工具(或者手动添加它们)重新配置LB。
  • 使用领事之类的方法来发现外部服务。可能与登记员一起自动添加服务。在这个场景中,您只需配置您的外部客户端,使其能够使用领事服务器/集群进行DNS解析(或使用API)。

当然,您也可以将您的服务消费者转移到群体中。但是,如果要将客户端与不同物理VLAN(或VPC等)中的服务分离,则需要在单独的覆盖网络中启动客户端容器,以确保不会有效地消除任何已经存在的物理网络隔离。

票数 6
EN

Stack Overflow用户

发布于 2017-02-05 11:44:34

服务发现(通过dns)从1.12版本开始就被内置到了docker中。当您创建一个自定义网络时(比如桥接或覆盖,如果您有多个主机),只要容器是同一个网络的一部分,就可以让容器通过名称相互交谈。您还可以为每个容器设置一个别名,以循环具有相同别名的容器列表。有关简单的示例,请参见:

https://linuxctl.com/docker-networking-options-bridge

票数 1
EN

Stack Overflow用户

发布于 2017-07-11 22:23:45

只要您在码头网络中使用桥接器模式,并在该网络中创建容器,服务发现就可以立即提供给您。

一旦基础设施开始扩展到分布在它们上的多个服务器和微服务,您将需要从其他工具获得帮助。

蜂群是一个很好的工具,然而,如果我的产品负载涉及到像亚马逊这样的IaaS提供商,我想继续坚持下去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42054051

复制
相关文章
Prometheus 服务的自动发现使用
前面我们了解了 Prometheus 中 Relabeling 重新标记的使用,本文我们将学习 Prometheus 中是如何使用服务发现来查找和抓取目标的。我们知道在 Prometheus 配置文件中可以通过一个 static_configs 来配置静态的抓取任务,但是在云环境下,特别是容器环境下,抓取目标地址是经常变动的,所以用静态的方式就不能满足这些场景了。所以我们需要监控系统能够动态感知这个变化,不可能每次变动都去手动重新配置的,为了应对复杂的动态环境,Prometheus 也提供了与基础设施中的服务发现集成的功能。
我是阳明
2021/10/08
5.9K0
SpringCloud服务发现Eureka的使用教程
PS:eureka在springcloud中充当服务注册功能,相当于dubbo+zk里面得zk,但是比zk要简单得多,zk可以做得东西太多了,包括分布式锁,分布式队列都是基于zk里面得四种节点加watch机制通过长连接来实现得,但是eureka不一样,eureka是基于HTTPrest来实现的,就是把服务的信息放到一个ConcurrentHashMap中,然后服务启动的时候去读取这个map,来把所有服务关联起来,然后服务器之间调用的时候通过信息,进行http调用。eureka包括两部分,一部分就是服务提供者(对于eureka来说就是客户端),一部分是服务端,客户端需要每个读取每个服务的信息,然后注册到服务端,很明显了,这个服务端就是接受客户端提供的自身的一些信息。
IT架构圈
2021/10/21
4730
SpringCloud服务发现Eureka的使用教程
使用nacos的服务注册与发现
- https://cloud.tencent.com/developer/article/1881623
eeaters
2021/09/24
8160
使用nacos的服务注册与发现
Python | Python 使用 consul 做服务发现
前言一、目标二、使用步骤1. 安装 consul2. 服务注册定义基类具体实现3. 服务发现基类定义具体实现4. 测试用例总结参考
双鬼带单
2021/03/19
4.9K1
Python | Python 使用 consul 做服务发现
SofaBoot使用Nacos进行服务注册发现
最近创业公司的项目组基于业务需要,开发一套新的微服务,考虑到选用的组件必须是主流、社区活跃、生态完善以及方便迁移到云上等因素,引入了SOFAStack全家桶。微服务开发里面,一个很重要的功能就是服务发现与注册,笔者花了点时间做了一个SOFABoot、SOFARpc结合Nacos实现微服务发现注册与远程调用的示例。
Throwable
2020/06/23
1.1K0
SofaBoot使用Nacos进行服务注册发现
Go | Go 使用 consul 做服务发现
我们可以直接使用官方提供的二进制文件来进行安装部署,其官网地址为 https://www.consul.io/downloads
双鬼带单
2020/10/29
2.9K0
Go | Go 使用 consul 做服务发现
徒手教你使用zookeeper编写服务发现
zookeeper的内部是一个key/value存储引擎,key是以树状的形式构成了一个多级的层次结构,每一个节点既可以存储数据,又可以作为一个目录存放下一级子节点。
老钱
2018/08/15
8670
使用IPVS代理模式在Kubernetes中实现负载均衡和服务发现
首先,需要在每个Kubernetes节点上安装和配置IPVS。可以使用以下命令在节点上安装IPVS:
玖叁叁
2023/04/28
6080
在系统中用etcd实现服务注册和发现
在分布式系统中,如何管理节点间的状态一直是一个难题,etcd 是由开发并维护的,它使用 Go 语言编写,并通过Raft 一致性算法处理日志复制以保证强一致性。etcd像是专门为集群环境的服务发现和注册而设计,它提供了数据 TTL 失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。
KevinYan
2019/11/18
1.7K0
DNS SRV:使用DNS服务器做服务发现
DNS SRV 是 DNS 记录中一种,用来查询指定服务的地址。与常见的A记录、CNAME 不同的是,SRV中除了记录服务器的地址,还记录了服务的端口,并且可以设置每个服务地址的优先级和权重。RFC-2782 给出DNS SRV的建议标准,它是在2000年的时候提出来的。
Debian中国
2020/01/21
11.5K0
使用Consul做服务发现的若干姿势
作者:波斯码 来源:http://blog.bossma.cn/consul/consul-service-register-and-discovery-style/?hmsr=toutiao.io&
程序猿DD
2018/12/06
4.6K0
Kubernetes中如何使用ClusterDNS进行服务发现?
“本文主要介绍了kubernetes网络结构、pod和service之间域名通信”
用户5166556
2020/01/23
1.2K0
Spring Cloud 使用 Nacos 进行服务注册发现
上一篇我们实现了Spring Cloud从nacos server 远端拉取并加载配置。今天我将给大家介绍nacos的另一个重要功能服务注册与发现。服务注册与发现功能在微服务中服务治理的基础。本篇将对nacos的服务治理进行介绍和一些入门使用。
码农小胖哥
2019/12/05
1K0
4、服务发现
本书主要介绍如何使用微服务来构建应用程序,现在是第四章。第一章已经介绍了微服务架构模式,并讨论了使用微服务的优点与缺点。第二章和第三章介绍了微服务间的通信,并对不同的通信机制作出对比。在本章中,我们将探讨服务发现(service discovery)相关的内容。
Java架构师历程
2018/09/26
2.2K0
4、服务发现
SpringBoot使用AOP导致dubbo服务不注册
在搭建SpringBoot项目的时候,原本已经集成了Dubbo并且测试也没问题,在加AOP的时候,发现Dubbo的provider不注册了。说明一下,本着极简原则,Dubbo的provider在这里用@Service注解来发布服务,并没有使用xml配置的方式。 这时用的springboot和dubbo的版本为:
DannyHoo
2019/02/25
1.7K0
[翻译]微服务设计模式 - 5. 服务发现 - 服务端服务发现
服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地址和端口是固定并且提前预知的,所以只需要简单的 HTTP/REST 调用或者其他的 RPC 机制直接调用即可。但是在当下的云原生微服务体系中,微服务大多在某个虚拟机或者某个容器下运行,服务实例数量以及提供服务的地址以及端口都是不固定的,可以理解为,这些服务实例都是临时的。所以,需要实现使服务客户端能够对一组动态变化的临时服务实例发请求的机制。
干货满满张哈希
2021/04/12
7410
[翻译]微服务设计模式 - 5. 服务发现 - 服务端服务发现
服务发现--prometheus
每次启动prometheus都要启动好长的时间,说好的容器秒启动呢。。啊呸,骗子。。。容器的秒启动只不过容器启动了,而真正提供服务的还是里面的进程,所以呢,实际上并不是秒启动。。。
SRE运维实践
2019/07/08
7500
Prometheus:服务发现
mkdir -p /usr/local/prometheus/targets/nodes,docker touch nodes.json touch daemons.json
用户5760343
2020/01/15
6980
服务发现@EnableDiscoveryClient
@EnableEurekaClient只适用于Eureka作为注册;@EnableDiscoveryClient 可以是其他注册中心。 
一个风轻云淡
2022/11/13
8040
服务发现@EnableDiscoveryClient
Etcd 服务发现
此外,discovery URL 应该仅仅用于集群的初始化启动。在集群已经运行之后修改集群成员,阅读 运行时重配置 指南。
用户5760343
2019/10/29
7260

相似问题

与码头及领事的微型服务发现

12

在Nodejs上使用DNS发现领事服务

11

基于码头的两个网络领事服务发现失败

116

自动代理服务与领事服务发现

13

跨平台服务发现与领事

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文