初试Eureka注册中心

news2024/11/27 0:00:23

Eureka是spring cloud中的一个负责服务注册与发现的组件。遵循着CAP理论中的A(可用性)P(分区容错性)。一个Eureka中分为eureka server和eureka client。其中eureka server是作为服务的注册与发现中心。

搭建eureka服务

引入eureka依赖

引入SpringCloud为eureka提供的starter依赖.

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

 添加注解

要添加一个@EnableEurekaServer注解,开启eureka的注册中心功能

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

编写配置文件

server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://127.0.0.1:10086/eureka

启动服务

启动微服务,然后在浏览器访问:http://127.0.0.1:10086  

服务注册

接下来我们将user-service注册到eureka-server中去  

引入依赖

引入下面的eureka-client依赖

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

配置文件

 在user-service中,修改application.yml文件,添加服务名称、eureka地址

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

启动实例

启动user服务

启动多个user-service实例,选择services选项,再点击Run Configuration Type        

点击Spring Boot 

开启多服务选项 

 

复制原来的user-service启动配置,改为8082

 启动2个user服务

服务发现

我们将order-service的逻辑修改:向eureka-server拉取user-service的信息,实现服务发现.

引入依赖

引入下面的eureka-client依赖

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

配置文件

在order-service中,修改application.yml文件,添加服务名称、eureka地址  

spring:
  application:
    name: orderservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

服务拉取和负载均衡

我们要去eureka-server中拉取user-service服务的实例列表,并且实现负载均衡 .

在order-service的OrderApplication中,给RestTemplate这个Bean添加一个@LoadBalanced注解

 /**
     * 创建RestTemplate并注入Spring容器
     */
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

访问的url路径,用服务名代替ip、端口:  

  @Resource
    private RestTemplate restTemplate;

    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        // 2.利用RestTemplate发起http请求,查询用户
        // 2.1.url路径
        String url = "http://userservice/user/" + order.getUserId();
        // 2.2.发送http请求,实现远程调用
        User user = restTemplate.getForObject(url, User.class);
        // 3.封装user到Order
        order.setUser(user);
        // 4.返回
        return order;
    }

启动服务 

 测试

spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡 。 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/940687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0828|C++day6 菱形继承+虚继承+多态+抽象类+模板

一、思维导图 二、今日知识回顾 1&#xff09;多态 父类的指针或者引用&#xff0c;指向或初始化子类的对象&#xff0c;调用子类对父类重写的函数&#xff0c;进而展开子类的功能。 #include <iostream> using namespace std;class Zhou { private:string name;int age…

论文阅读_扩散模型_LDM

英文名称: High-Resolution Image Synthesis with Latent Diffusion Models 中文名称: 使用潜空间扩散模型合成高分辨率图像 地址: https://ieeexplore.ieee.org/document/9878449/ 代码: https://github.com/CompVis/latent-diffusion 作者&#xff1a;Robin Rombach 日期: 20…

Spring补充

一.Spring JDB 配置两个jar包 <!-- spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.2.RELEASE</version> </dependency> <!-- 阿里数据…

Python实现T检验

今天来分享一下T检验的python实现方法。 01 先来上一波概念。 1.单样本t检验&#xff0c;又称单样本均数t检验&#xff0c;适用于来自正态分布的某个样本均数与已知总体均数的比较&#xff0c;其比较目的是检验样本均数所代表的总体均数是否与已知总体均数有差别。已知总体均数…

权限提升-数据库提权-MSF-UDF提权

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的&#xff1f; 后台权限&#xff0c;网站权限&#xff0c;数据库权限&#xff0c;接口权限&#xff0c;系统权限&#xff0c;域控权限等 2、以上常见权限获取方法简要归类说明&#xff1f; 后台权限&#xff1a;SQL注入,数…

PVE 8.0.4 配置记录

前言 七夕收到了媳妇送的礼物 Beelink SER 5 PRO (Ryzen 5700U), 记录打造成私人服务器的过程. 下载安装 Proxmox 8.0.4 https://www.proxmox.com/en/downloads 安装过程中修改磁盘设置: swap 分区设置为物理内存的 2 倍, 防止虚机太多内存不足 root 最大设置为 32 GB, 多了…

SpringCloud入门——微服务调用的方式 RestTemplate的使用 使用nacos的服务名初步(Ribbon负载均衡)

目录 引出微服务之间的调用几种调用方法spring提供的组件 RestTemplate的使用导入依赖生产者模块单个配置的情况多个配置的情况没加.yaml的报错【报错】两个同名配置【细节】 完整代码config配置主启动类controller层 消费者模块进行配置restTemplate配置类controller层 使用na…

云渲染对本地电脑要求高不高?对配置有要求吗?

自己本地电脑渲不动&#xff0c;又没有用过云渲染的朋友们一般都会有这样的疑问&#xff1a;云渲染对电脑要求高不高&#xff1f;需要什么样的配置才能用上云渲染&#xff1f; 其实云渲染对本地电脑的配置是完全没有要求的&#xff0c;相反它还能减轻你本地电脑的运行负担&…

Linux驱动——模块化编程

文章目录 模块化编程方法一方法二前提模块化编程模块化编程基本框架&#xff08;重要&#xff09;模块化编程的编译ubantu上操作开发板的文件系统的指令——make超级终端上的模块指令 多模块情况1情况2 传递参数传递单个参数传递数组 模块化编程 方法一 修改kconfig&#xff…

时间序列数据在工厂运营管理中的作用

工业领域中&#xff0c;数据一直扮演着不可或缺的角色&#xff0c;而时间序列数据则因其独特的特性在工厂运营管理中发挥着极其重要的作用。从揭示趋势到支持实时决策&#xff0c;时间序列数据成为工厂智能化的关键组成部分&#xff0c;以下将对时间序列数据在工厂运营管理中的…

Linux - Docker 安装使用教程

Docker 官方文档地址: Get Started | Docker 中文参考手册: https://docker_practice.gitee.io/zh-cn/ 1.什么是 Docker 1.1 官方定义 最新官网首页 # 1.官方介绍 - We have a complete container solution for you - no matter who you are and where you are on your contain…

git difftool对比差异,避免推送不相关内容

问题 在利用git进行版本管理的时候&#xff0c;经常会由于对其他不相关的代码&#xff0c;做了一些小改动&#xff0c;例如删除了一个空行&#xff0c;多了一个缩进等。 为避免将这些不相关的改动也提交到远程&#xff0c;对PR造成不必要的影响&#xff0c;可以利用git diff命…

JVM-性能优化工具 MAT

一、MAT下载和安装 1、概述 MAT&#xff08;Memory Analyzer Tool&#xff09;工具是一款功能强大的]ava堆内存分析器。可以用于查找内存泄漏以及查看内存消耗情况。MAT是基于Eclipse开发的&#xff0c;不仅可以单独使用&#xff0c;还可以作为插件的形式嵌入在Eclipse中使用…

对话iPayLinks:在支付赛道,用技术创新发现出海“潮水的流向”

2023是充满变化和机遇的一年。从突飞猛进的Temu、TikTok Shop等新渠道&#xff0c;到“全托管模式”席卷整个跨境电商行业&#xff0c;以及Chat GPT等人工智能大模型的横空出世&#xff0c;都让出海每一环的从业者感受到“潮水流向的变化”。 不久前&#xff0c;7月及上半年进出…

爬虫项目(一):艺术二维码制作

《Python网络爬虫入门到实战》京东购买地址,这里讲解了大量的基础知识和实战,由本人编著: https://item.jd.com/14049708.html配套代码仓库地址:https://github.com/sfvsfv/Crawer艺术二维码制作 到知数云https://data.zhishuyun.com/services ,申请艺术二维码API,可免费…

【广州华锐互动】AR昆虫认知学习系统实现对昆虫形态的捕捉和还原

随着科技的不断发展&#xff0c;人们对自然界的认识也在不断加深。在这个过程中&#xff0c;AR&#xff08;增强现实&#xff09;技术的出现为人们带来了全新的体验方式。为此&#xff0c;广州华锐互动开发了AR昆虫认知学习系统&#xff0c;本文将为大家详细介绍这款系统的特点…

谷歌发布Gemini以5倍速击败GPT-4

在Covid疫情爆发之前&#xff0c;谷歌发布了MEENA模型&#xff0c;短时间内成为世界上最好的大型语言模型。谷歌发布的博客和论文非常可爱&#xff0c;因为它特别与OpenAI进行了比较。 相比于现有的最先进生成模型OpenAI GPT-2&#xff0c;MEENA的模型容量增加了1.7倍&#xf…

Android 中SettingsActivity(PreferenceFragmentCompat)的简单使用

如果你需要一个简单的APP设置&#xff0c;可以使用sharedPreferences进行存储&#xff0c;我们可以借助AndroidStudio快速创建一个用于设置的Activity&#xff0c;其实它是继承PreferenceFragmentCompat&#xff0c;存储方式用的就是sharedPreferences&#xff0c;只是帮我们节…

一文教你如何防御数据库渗透入侵

前言 前段时间博主在做学校内部项目的时候&#xff0c;项目需要暂时上线测试&#xff0c;没想到上线测试几天&#xff0c;MySQL 数据库数据就被恶意删除&#xff0c;但是当时我们没有太当回事&#xff0c;以为只是一次普通黑客攻击&#xff0c;恢复数据之后仍然可以正常使用。…

『 LeetCode题解 』203. 移除链表元素

题目链接 : 『 LeetCode题解 』203. 移除链表元素 https://leetcode.cn/problems/remove-linked-list-elements/ 目录 &#x1f31f;题目要求&#x1f31f;解题思路&#xff08;动图解析&#xff09;&#x1f9d0;方案一&#x1f601;方案二 &#x1f31f;代码示列 &#x1f31…