关于容器:Rainbond-服务间通信端口别名的巧用

8次阅读

共计 1291 个字符,预计需要花费 4 分钟才能阅读完成。

明天给大家介绍一下 Rainbond 的一个小技巧——端口别名。

端口别名,顾名思义,是给组件端口定义一个别名。

端口别名的设置

当进入到 端口治理页面 ,点击 应用别名,即可设置端口的别名,如下图所示:

端口别名的作用

定义好端口别名后,Rainbond 会为该别名生成两个对外环境变量:端口别名_HOST端口别名_PORT。比方,端口别名是 MYSQL,则对应的环境变量就是 MYSQL_HOSTMYSQL_HOST

不晓得大家发现没有,这两个环境变量,其实就是该端口的拜访形式,拜访形式 =端口别名_HOST:端口别名_PORT
比方:端口别名是 MYSQL,对应的拜访形式就是 MYSQL_HOST:MYSQL_PORT,即 127.0.0.1:3306

还有一个很重要的点就是,不论组件所属利用的治理模式怎么变,端口别名_HOST 都能够感知到。

也就是说,只有须要拜访该端口的组件依赖上该组件,则能够很不便地晓得其拜访形式;不论利用的治理模式怎么变动,这个拜访的形式会作出相应的变动,始终放弃是正确的。

Spring 组件连贯 MySQL

为了做更进一步的阐明,咱们以 Spring 组件连贯 MySQL 为例,看看 Spring 是如何不便地获取 MySQL 的拜访形式。

相熟 Spring 的同学可能晓得,其配置文件能够是这样子的:

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:localhost}/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

可能有些同学不相熟 Spring,不过没有关系。咱们只须要晓得,Spring 会用环境变量去渲染配置文件里的变量。

只有 Spring 组件依赖了 MySQL 组件,Rainbond 则会把 MySQL 组件的对外环境变量注入到 Spring 组件里。

换句话说,Spring 组件依赖了 MySQL 之后,就会主动地失去环境变量 MYSQL_HOSTMYSQL_HOST。如果 MYSQL_HOST=127.0.0.1, MYSQL_PORT=3306, 经 Spring 渲染后,数据库的链接地址则变成了 spring.datasource.url=jdbc:mysql://127.0.0。1:3306/db_example,从而能够正确的拜访 MySQL 组件。

总结

端口别名 是 Rainbond 组件间的通信里的一个十分不便的性能,通过为端口设置别名,能够很不便地获取到该端口的拜访形式。


Rainbond 云原生利用治理平台,实现微服务架构不必改代码,治理 Kubernetes 不必学容器,帮企业实现利用上云,一站式将任何企业应用继续交付到 Kubernetes 集群、混合云、多云等基础设施。是 Rainstore 云原生利用商店的撑持平台。

1. Rainbond 官网

2. Rainbond 装置应用

3. Rainbond 参考手册选集


本文作者:黄润豪

正文完
 0