美文网首页
SaaS应用12原则:(七)端口绑定

SaaS应用12原则:(七)端口绑定

作者: 低至一折起 | 来源:发表于2019-08-08 16:10 被阅读0次

通过端口绑定(Port binding)来提供服务

互联网应用有时会运行于服务器的容器之中。例如 PHP 经常作为 Apache HTTPD 的一个模块来运行,正如 Java 运行于 Tomcat。

12-Factor 应用完全自我加载而不依赖于任何网络服务器就可以创建一个面向网络的服务

互联网应用 通过端口绑定来提供服务,并监听发送至该端口的请求。

本地环境中,开发人员通过类似 http://localhost:5000/ 的地址来访问服务。在线上环境中,请求统一发送至公共域名而后路由至绑定了端口的网络进程。

通常的实现思路是,将网络服务器类库通过依赖声明载入应用。例如,Python 的 Tornado, Ruby 的 Thin, Java 以及其他基于 JVM 语言的 Jetty。完全由用户端,确切的说应该是应用的代码,发起请求。和运行环境约定好绑定的端口即可处理这些请求。

HTTP 并不是唯一一个可以由端口绑定提供的服务。
其实几乎所有服务器软件都可以通过进程绑定端口来等待请求。例如,使用 XMPP 的 ejabberd, 以及使用 Redis 协议的 Redis 。

还要指出的是,端口绑定这种方式也意味着一个应用可以成为另外一个应用的后端服务 ,调用方将服务方提供的相应 URL 当作资源存入配置以备将来调用。

原则总结

  • 应用内嵌 HTTP 库,如 Tomcat、Jetty等,例如 Spring Boot 的应用
  • 直接绑定端口对外提供服务,不依赖外部服务容器运行,例如 Dubbo
  • 通过在环境变量中声明,服务可以作为其他服务的依赖

需要注意的是,如果在一个宿主机中部署多个应用实例,就不能将一个宿主机端口映射到多个容器端口(端口冲突),解决方法是在这之上加一个负载均衡,负载宿主机的不同端口服务所对应的不同容器

参考:

相关文章

  • SaaS应用12原则:(七)端口绑定

    通过端口绑定(Port binding)来提供服务 互联网应用有时会运行于服务器的容器之中。例如 PHP 经常作为...

  • SaaS应用12原则:简介

    简介 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor(1...

  • SaaS应用12原则:(十一)日志

    把日志当作事件流 日志使得应用程序运行的动作变得透明。 在基于服务器的环境中,日志通常被写在硬盘的一个文件里,但这...

  • SaaS应用12原则:(八)并发

    通过进程模型进行扩展 任何计算机程序,一旦启动,就会生成一个或多个进程。互联网应用采用多种进程运行方式。例如,PH...

  • SaaS应用12原则:(二)依赖

    显式声明依赖关系( dependency ) 大多数编程语言都会提供一个打包系统,用来为各个类库提供打包服务,就像...

  • SaaS应用12原则:(三)配置

    在环境中存储配置 通常,应用的配置在不同部署(预发布、生产环境、开发环境等等)间会有很大差异。这其中包括: 数据库...

  • SaaS应用12原则:(六)进程

    以一个或多个无状态进程运行应用 运行环境中,应用程序通常是以一个和多个进程运行的。 最简单的场景中,代码是一个独立...

  • 7.端口绑定

    VII. 端口绑定 通过端口绑定(Port binding)来提供服务 互联网应用有时会运行于服务器的容器之中。例...

  • SaaS应用12原则:(十二)管理进程

    后台管理任务当作一次性进程运行 进程构成(process formation)是指用来处理应用的常规业务(比如处理...

  • SaaS应用12原则:(一)基准代码

    一份基准代码(Codebase),多份部署(deploy) 12-Factor 应用(基于 12 原则设计的应用称...

网友评论

      本文标题:SaaS应用12原则:(七)端口绑定

      本文链接:https://www.haomeiwen.com/subject/kpixjctx.html