作者:张宇驰,喻纯政 职务:解决方案顾问 公司:F5 本章节为 F5 现代应用网关系列文章之 Eureka 部分。本次主要分享 MSDA 现代应用网关融合 Eureka 服务注册发现中心,实现服务动态发现;通过这种融合,F5 就充当了传统单体应用架构与现代分布式应用架构的链接桥梁。 Eureka 包含两个组件:Eureka Client 和 Eureka Server。配合用户的应用客户端、应用服务端一起协同工作,以达到服务注册及调用的效果。 Eureka 具体的架构图如下:
图片来自官网 如图所示,应用服务会把 IP 地址和端口注册到 Eureka 上,并通过定时发送心跳包来告诉 Eureka 自己的健康状态。为了防止服务的消费方(图中的 Application Client)调用到已经下线的服务,应用服务在下线的时候,会给 Eureka 服务器发送消息,通知 Eureka 服务器把自己从服务列表删除。服务的消费方会通过查询 Eureka 服务器获取自己想要调用服务的具体信息。 当获取到服务的具体信息后,就会发送对服务的直接调用了。Eureka 服务器本身也是以集群的方式部署的,不同节点直接会复制同步数据。
Eureka 可以通过集群的方式部署, Eureka Server 利用节点之间的对等通信机制,而并非采用常见的选举机制,没有主从节点之分,每一个节点的关系都是平等的。节点互相通信,交换信息来保持一致,提高了可用性,每个节点需要添加一个或多个有效的 serviceUrl 指向其他节点。每个节点都可被视为其他节点的副本。 如果集群中某节点出现故障,Eureka 客户端就会自动切换,请求新节点。故障节点恢复后会重新加入集群节点中。 Eureka 会和注册的服务保持心跳检测,默认时间为30秒,如果发现某服务不能在30秒发送心跳信息,并持续3次(90秒),Eureka 服务器会下线这个实例。 Eureka 等服务注册中心的主要使用场景就是分布式、微服务架构。在分布式系统中,一个绕不开的概念就是一致性原则。根据 CAP 理论,我们知道,一个分布式系统在一致性的策略上,最多只能满足一致性、可用性和分区容错性三者中的两者。 Eureka 在设计时满足了可用性和分区容错性两项原则,也就是说,在 Eureka 集群中,只要有一台 Eureka 能够正常提供服务,就可以保证注册服务可用,但是带来的后果是 Eureka 会放弃强一致性,但这并不是完全放弃数据一致性,数据的最终一致性还是可以保障的。 相信通过前几期的文章,您已经了解到不同注册中心的特点差异了,在一致性方面,市面主流服务注册中心的的对比如下:
具体流量交互过程:
我们给提前定义好的接口发送一个创建服务的请求,POST 请求的 payload 为 json 格式的 template,这个 template 的内容是支持我们自定义的,在这里我们需要包含服务发现的类型,比如我们指定 Eureka。我们还要在这个 json 里面提供 Eureka 的 ip 地址,需要发现的服务名等。
当我们 iApps LX 组件收到这个 POST 请求的时候,就会触发 iApps LX 里定义的事件函数,去向服务注册中心发送 REST 请求,拿到数据。当然这个过程也完全支持用图形化界面 GUI 的方式配置。
与前几篇文章介绍的操作方式相似,在创建之前,我们需要设置好 Eureka 注册中心。
然后我们就开始 F5 的配置。
我们需要在 BIG IP 的 iApps LX 模块中导入事先下载好的 f5-iapplx-msda-eureka rpm 包
上传完成后会生成一个新的msdazk 的 Templetes,点击查阅 iApps LX->Templates->Templates LX
然后我们就可以通过 iApps LX->Application Services->Application LX 创建我们的服务
我们需要在 GUI 上填入对应信息,如 Eureka 的 IP 地址,端口,以及要访问的 URL,
我们还可以配置负载均衡算法及健康检查,如下图:
设置完毕,GUI 会将我们填入的信息自动生成一份 Json 文件,如下图所示:
以下 json 文件为示例,具体以实际生成为准:
我们点击 Deploy,则 iApps LX 服务就可以成功部署了。部署完成如下图:
检查Pool的创建
Pool 的详情如下
通过在 Local Traffic 中新建 Virtual Servers,这样我们就向外部用户或传统应用实现了微服务应用的暴露。
利用 MSDA 实现基于 Eureka 的平台的服务发现,可以让现有单体架构可以快速融入分布式机构,并且打通传统负载均衡设备与微服务架构的隔阂。您也可以下载我们的 rpm 包,自己亲手实践,下载链接见下文。
下载 MSDA 和 MSRA 的 RPM 包:
免责声明:
这些 iAppsLX RPM 软件包并非 F5 公司官方支持的产品,如有任何问题或反馈,请向 GitHub repo 上提交 issue,或发送电子邮件至 msda@f5.com 。
相关推荐: https://global.lianlianpay.com/article_platform_amazon/37-55082.html
厦门商城系统开发 对于那些刚刚入驻亚马逊平台的商家来说,在运营店铺的过程中,很可能因为不熟悉平台相关的运营规则导致犯错,轻则被警告重则店铺都会被封。所以这篇文章主要就是针对那些新手商家的,向其分享一下亚马逊的运营规则都有哪些? 1、亚马逊平台,一个人只允许开一…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.