Eureka服务注册与发现

简介: Eureka服务注册与发现一、服务注册注册Eureka的服务非常的简单,只需要引入spring-cloud-starter-netflix-eureka-client的jar包即可。

Eureka服务注册与发现

一、服务注册

注册Eureka的服务非常的简单,只需要引入spring-cloud-starter-netflix-eureka-client的jar包即可。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

当然,我们要在配置文件中指明注册中心的地址:

server:
  port: 8100
spring:
  application:
    name: service-order
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

我们为了简单,注册中心用的是单机,大家也可以使用集群方式。

我们启动这个应用,它就是将自己的ip地址、端口、应用名称等信息向注册中心注册。我们可以打开注册中心的管理后台看到:

控制台

我们service-user服务已经注册成功了。

只要我们引入了spring-cloud-starter-netflix-eureka-client的jar包,它就使得我们的应用即是
Eureka实例(instance,是服务的提供者)又是Eureka的客户端(client,可以注册中心发现其他的服务地址)。

Spring Cloud的服务提供和发现是在一起的,这有别于我们认识的其他的服务框架(如:dubbo)。既然服务的提供
和发现是在一起的,我们来看一看怎么发现其他服务,并完成调用。

二、服务的调用

我们已经引入了spring-cloud-starter-netflix-eureka-client的jar包,就可以从注册中心找到其他的服务。
我们这里写个远程调用的例子供大家参考:

@RequestMapping("remote")
public class RemoteController {

    @Autowired
    private DiscoveryClient discoveryClient;

    @RequestMapping("order")
    public Order remoteOrder(){
        List<ServiceInstance> instances = discoveryClient.getInstances("SERVICE-ORDER");
        String url = instances.get(0).getUri()+"/order/detail";
        RestTemplate restTemplate = new RestTemplateBuilder().build();
        Order order = restTemplate.getForObject(url, Order.class);
        return order;
    }
}

其中,“SERVICE-ORDER”是我们order服务中的spring.application.name的名字,discoveryClient通过服务的名称找到对应的地址。
我们可以看到它返回的是一个List,这说明我们的服务可以搭建集群,我们取服务中的第一个地址,并通过RestTemplate进行调用。
这种方法是比较原始的方法,Spring Cloud给我们封装更简便的Feign,它可以更方便的调用服务,并提供了负载均衡策略,这是我们下一张要讲的内容。

至此,Eureka服务注册与发现就介绍完了,示例地址:https://github.com/liubo-tech/spring-cloud-eureka

目录
相关文章
|
数据采集
JSoup 爬虫遇到的 404 错误解决方案
JSoup 爬虫遇到的 404 错误解决方案
|
6月前
|
SQL 数据库连接 Go
Go语言数据库编程:GORM 的基本使用
GORM 是 Go 语言最流行的 ORM 框架,封装了 database/sql,支持自动迁移、关联关系、事务等功能,开发体验接近高层语言的 ORM。本文介绍了 GORM 的安装与初始化、模型定义、自动迁移、基本 CRUD 操作、条件构造器、钩子函数、事务处理、日志调试等内容,帮助开发者快速掌握其使用方法。
|
11月前
|
数据采集 人工智能 异构计算
Sky-T1:开源版"OpenAI o1-preview",训练成本竟不到450美元
Sky-T1是NovaSky发布的开源推理AI模型,支持低成本训练,性能优异,适用于数学问题解决、编程评估和科学研究。
545 3
Sky-T1:开源版"OpenAI o1-preview",训练成本竟不到450美元
|
JavaScript
el-table 使用了 修改行使用了v-model双向绑定 如何记录修改前的数据
el-table 使用了 修改行使用了v-model双向绑定 如何记录修改前的数据
389 2
|
自然语言处理 测试技术 人工智能
Meta等最新研究:多token预测,提升大模型推理效率
【6月更文挑战第2天】Meta等机构的研究人员提出了一种新的大型语言模型训练方法——多token预测,以提高样本效率和推理速度。该方法要求模型同时预测多个接下来的token,而非传统的单一token预测,从而减少局部模式依赖,提高模型的宏观决策能力。实验表明,这种方法在提升模型性能和推理速度方面效果显著,尤其在编程任务中表现出色。然而,多token预测可能需要更多计算资源,并不适用于所有NLP任务,其在自然语言处理领域的应用仍有待深入研究。论文链接:https://arxiv.org/abs/2404.19737
612 7
|
数据采集 JavaScript 前端开发
如何判断一个网站是否采取了反爬虫措施
通过观察请求响应、分析请求频率限制和检测JavaScript动态加载来初步判断网站是否使用反爬虫措施。使用Python `requests` 发送请求并检查响应头和内容,寻找验证码、限制信息。尝试短时间内多次请求,看是否被限制。使用Selenium模拟浏览器行为,获取动态加载内容。注意,这些方法仅为初步判断,实际可能需更深入分析,并确保爬取行为合法合规。
|
缓存 Linux Shell
Linux Command screen 后台运行
Linux Command screen 后台运行
|
安全 搜索推荐 物联网
有没有好用的低代码平台,支持本地私有化部署的?
简单而言,本地部署就是:将服务器部署在企业内部,公司数据储存在服务器上。这样一来,最大程度地保障了企业的信息安全。还支持本地开发,灵活扩展各种功能应用等。
有没有好用的低代码平台,支持本地私有化部署的?
|
安全 jenkins API
通过jenkins API去build一个job
背景 查看jenkins的api 直接访问 JENKINS_URL/job/JOB_NAME/api/ 就可以查看jenkins的api build一个job的话,是POST请求 JENKINS_URL/job/JOB_NAME/build 会提示: 这是jenkins的安全策略导致的,需要传递一个crumb    解决方法 有两个方案, 第一种方案: 1.
3027 0