写点什么

Joyent 的容器名服务让服务发现更便捷

  • 2016-03-21
  • 本文字数:905 字

    阅读完需:约 3 分钟

云计算公司 Joyent 近日宣布自家的DNS 服务正式上线。该服务被称为Triton 容器名服务(Triton Container Name Service,简称CNS),可以让应用客户端及用户更容易地定位那些所在托管服务器不断变动的服务。

此处所指的服务器是由Triton 控制的计算实例,它可以是Docker 容器、架构容器(功能类似裸机虚拟机),也可以是虚拟机。Triton CNS 通过利用Triton 实例的名称和标签,来定位服务。一组提供某个服务的容器共享一个标签和一个CNS 地址记录(address record)。该记录可以直接通过互联网访问。

许多现代应用已经采用了不可变架构模型,意味着应用的每次更新会被推送到全新配置的服务器(或容器)上,随后新服务器上线,老服务器被废弃。大部分情况下,新部署服务的地址会有变化,客户端应用必须通过新的地址才能定位服务,这就涉及到手动修改配置。如果使用DNS 来实现服务发现(service discovery),那么就必须首先更新DNS 项(DNS entry)。这对于经常发布版本更新的环境来说操作繁琐。

大部分应用会在第三方DNS 服务商托管自己的域名。在这种情况下,自定义的域名可以映射到CNS 记录上。DNS 查找将会返回托管该服务的一台在线容器。由于CNS 与Triton 容器服务(Triton Container Service)高度集成,它掌握了每个容器的在线状态。随着容器不断新增和删除,Triton CNS 将密切追踪其状态,只返回当前在线的容器。

其他云计算服务商也能实现不可变服务器,尽管方式不同。例如,AWS 公司提供的“弹性IP”是可以指定给任意实例(AWS 对虚拟机的称呼)的一个IP 地址。准备好新实例后,弹性IP 就可以被指定给新实例,并不需要更改服务注册表(service registry)或DNS。Openstack 云部署中有一个叫作“浮动IP”的类似概念,支持同样的功能。

去年,Joyent 在一个讨论请求(Request for Discussion,简称RFD)中提出了CNS 这个概念。并在同一年推出了容器管理架构 Triton

查看英文原文: Joyent’s Container Name Service Eases Service Discovery


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-03-21 19:001729

评论

发布
暂无评论
发现更多内容

常用Git命令速查手册

jiangling500

git

甲方日常 51

句子

工作 随笔杂谈 日常

线程池运用不当的一次线上事故

AI乔治

Java 架构 高并发 线程池

记一次 Java 服务性能优化

AI乔治

Java 架构 性能优化 高性能

Java反射说得透彻一些

秦怀杂货店

Java 反射 java反射

serialVersionUID作用是什么以及如何生成的?

秦怀杂货店

Java 序列化 serialVersionUID 反序列化

Java 集合(5)-- Collections源码解析

秦怀杂货店

Java 集合 Collections

ARTS打卡 第23周

引花眠

微服务 ARTS 打卡计划 springboot

Java 集合(9)-- Vector超级详细源码解析

秦怀杂货店

Java 源码 集合 ArrayList vector

Scala语法特性(二):控制语句及函数方法

正向成长

Scala函数 Scala控制语句

一次“诡异”的JVM缓存加载问题排查

AI乔治

Java 缓存 架构 JVM

JVM系列-java内存模型(JMM)

诸葛小猿

JMM Java内存模型 共享变量读写

踩了一个java命令行参数顺序的坑

AI乔治

Java 架构 stream

Java 集合(7)-- List 接口源码解析

秦怀杂货店

Java List 源码 集合 java集合使用

JDBC【2】-- 工作原理以及简单封装

秦怀杂货店

Java JDBC 工作原理

四周 习题与总结

水浴清风

transient关键字的作用以及几个疑问的解决

秦怀杂货店

序列化 反序列化 transient

大量类加载器创建导致诡异FullGC

AI乔治

Java 架构 JVM GC

Mybatis【1】-- 第一个Mybatis程序

秦怀杂货店

mybatis 入门 教程

你还在使用迭代器删除集合数据,out了,Java 中函数removeIf 不香么

Geek_6f0746

Java JAVA集合 Java迭代器

Java 集合(6)-- Collection源码解析

秦怀杂货店

Java 源码 collection 集合 JAVA集合

Java 集合(6.1)-- Collection 和Collections什么关系?

秦怀杂货店

Java collection 集合 Collections

JDBC【1】-- 初级入门之增删改查

秦怀杂货店

数据库 jbdc crud

架构师训练营第八周作业

四夕晖

Mybatis【2】-- 多个mapper文件以及namespace作用

秦怀杂货店

mybatis Mapper namespace

Mybatis【2.1】-- 从读取流到创建SqlSession发生了什么?

秦怀杂货店

数据库 mybatis SQLSession

ARTS打卡 第24周

引花眠

微服务 ARTS 打卡计划 springboot

Java 集合(8)-- ArrayList 源码解析

秦怀杂货店

Java 源码 集合 ArrayList

Mac 安装Homebrew慢的问题解决

秦怀杂货店

Mac homebrew

免费图床+CDN:GitHub+jsDeliver

jiangling500

GitHub CDN 免费图床 jsDeliver

JDBC【3】-- SPI技术以及在数据库连接中的使用

秦怀杂货店

数据库 spi

Joyent的容器名服务让服务发现更便捷_服务革新_Hrishikesh Barua_InfoQ精选文章