前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务端测试之服务注册与发现

服务端测试之服务注册与发现

作者头像
无涯WuYa
发布2021-09-22 15:09:18
5150
发布2021-09-22 15:09:18
举报

点击上方蓝字,关注我们

在传统或老式的应用程序架构中,IP 地址和端口主要是静态和固定的,因此可以轻松管理客户端应用程序。在静态的基于配置的应用程序中,每个服务都部署在同一位置,我们很少需要更改服务的位置。但是,在基于云的微服务应用中,IP 地址和端口很难管理,有时甚至是不可能的。在微服务架构中,我们不能保证会有静态配置,因为微服务是可独立部署的,各个团队在单个微服务上工作:每个团队都可以独立部署和扩展其微服务。系统中还可以添加更多服务和实例,以提供分布式应用程序的可扩展性。由于此缩放,服务位置可能会频繁更改,因此位置不能被视为静态位置。这意味着微服务架构需要更动态的配置。基于现实的部署策略,它的现状可能是如下这样的:

在微服务架构中,实现服务发现非常重要。这使客户端应用程序能够在没有硬编码的网络位置的情况下搜索服务。我们可以通过两种方式实施服务发现模式:通过客户端发现和服务端发现,下面主要详解服务端发现的模式。在服务器端发现模式中,客户端不知道服务注册表。客户服务使用负载均衡请求服务,然后查询服务注册处,在服务器端服务发现模式中,客户端无需担心管理用于负载平衡和发现服务的代码或算法。相反,我们可以使用单独的负载均衡服务器。具体交互如下:

如上所示,客户服务直接向负载平衡器提出请求,该平衡器会查询服务注册处,然后找到服务。

在SpringBoot的组件中,我们可以使用Eureka来实现服务的注册与发现的机制,它的具体交互如下:

下面还是以具体的案例实战下,我们首先需要创建maven的项目,该项目名称是app。然后删除该该src下的所有的文件夹,然后点击File,在新建中点击Module,出现如下的截图信息:

然后选择Spring Initializr,点击next

然后创建 eureka-server的组件,具体如下所示:

最后点击next,然后在SpringCloud Discovery中勾选Eureka Server,如下所示:

下来在EurekaServerApplication的文件中新增@EnableEurekaClient,整体源代码如下:

package com.example.provider;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication

@EnableEurekaClient

public class ProviderApplication

{

public static void main(String[] args)

{

SpringApplication.run(ProviderApplication.class, args);

}

}

然后把Resource下的application.properties修改为application.yml,文件内容为:

下来再创建新的组件provider,它的源代码为:

package com.example.provider;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication

@EnableEurekaClient

public class ProviderApplication

{

public static void main(String[] args)

{

SpringApplication.run(ProviderApplication.class, args);

}

}

配置文件具体为:

下来启动eureka-server的服务,启动后,然后访问http://localhost:8888/,发现并没有注册的,具体如下:

下来启动组件provider,然后再次查看eureka,发现服务provider被注册上了,如下所示:

感谢您的关注,后续会持续更新,聚焦于质量管理与测试效率提升。第十期“Python测试开发训练营”已直播开始,欢迎咨询。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档