Java----使用eureka进行注册连接(微服务简单实现)

        当采用微服务架构时,各个业务流程被逐一分解,虽说是分解,但还是要进行连接的,最简单的就是使用http请求,将他们联系起来,通过给容器注入restTemplate,然后使用内置的方法进行请求,但是在请求过程中,难免就会涉及请求地址,请求路径之类,而这些变量是会随之改变的,也就是常说的硬编码,要改就要整个路劲都改了。而通过使用我们的eureka就可以解决这类,问题:

        在eureka中,不是根据项目的路径进行寻找,而是通过在yaml文件中定义的项目名称,一个名称可以对应多个项目,使用负载均衡算法,可以优化对同名项目的调用情况。使用eureka的流程首先就是对各个流程服务进行注册,当需要哪个服务时,就指明目标项目名称,来我们的eureka里面拿。由eureka统一管理,这样就可以减少硬编码带来的不便。使用eureka也是极其简单,只需要三步:

        第一步:创建eureka服务的服务,专门用来管理所有的注册信息:

在该模块中需要导入如下pom:

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

然后在其启动类中,需要加入如下注解(@EnableEurekaServer),就可以开启eureka服务,注意此处是服务端!

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

配置yaml文件(规定允许的端口号,项目名称,还有这个服务端的路径,供其他业务进行注册使用):

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

        第二步,对需要由eureka管理的服务导入如下pom,注意此处的服务为客户端,需要使用eureka来管理自己的服务:

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

配置客户端的yaml文件(给项目起名,还有注册的路径):

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

        第三步,也就是客户端通过eureka拉取其他客户端的数据,此处使用向eureka发送http请求,不需要通过路径而是通过项目名称进行访问。以下是在service层的示例代码:

    public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);
//以下的http后跟着项目的名称即可访问String url = "http://userserver/user/" + order.getUserId();User user = restTemplate.getForObject(url,User.class);order.setUser(user);// 4.返回return order;}

如此下来便可以通过eureka完成微服务架构间的联系了!

效果如下(所有在线的服务都会在最下方位置出现,同名服务采用负载均衡调整被调用):

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音seo源码-源代码开发搭建-开源部署操作日志

一、开发者前言大环境概述 抖音seo源码开发是一项非常重要的技术&#xff0c;在抖音上&#xff0c;有很多视频&#xff0c;如果你想让自己的视频脱颖而出&#xff0c;那么就需要优化自己的seo源码。不过&#xff0c;为了保护用户的隐私&#xff0c;抖音并不公开其seo算法的细节…

Git的使用

初始化仓库 git init 查看仓库状态 git status 仓库的四种状态&#xff1a; Untracked&#xff08;未跟踪&#xff09;: 文件未被Git追踪&#xff0c;即Git对文件的版本控制尚未开始。这意味着文件还没有被添加到Git仓库中。Unmodified&#xff08;未修改&#xff09;: 文…

opencv图片根据规则改变颜色

解析 1. 读入图片 2.通道分离 3.像素值在【100&#xff0c;200】之间&#xff0c;赋值128。大于200赋值255&#xff0c;小于100赋值0。 源码 import cv2 img_raw_path"past/unet-test_result0-0-1-0.png" img_rawcv2.imread(img_raw_path) (r,g,b)cv2.split(img_…

【网络编程】Linux服务器程序规范相关内容

文章目录 1、日志1.1、syslog()函数 2、用户信息2.1、UID、EUID、GID、EGID 3、进程间关系3.1、进程组3.2、会话 4、服务器程序后台化&#xff08;守护进程&#xff09; 1、日志 Linux提供一个守护进程rsyslogd来处理系统日志&#xff0c;系统日志中包括用户进程产生的日志以及…

less预处理语言的运用之-变量拼接那点事

less语法的技巧总结&#xff0c;很基础&#xff0c;熟练掌握后能提高我们在大型项目中的开发效率 a:0.5; showdaw-px:100; mkcolor1:#6ec5ff; num:1; .outer{//拼接的字符串在变量后面&#xff0c;需要在冒号后面加~width:~"{showdaw-px}px";//拼接的字符串在冒号后…

Intellij IDEA突然无法启动问题

遇到的情况&#xff1a;Intellij IDEA 双击或者鼠标右键右键单击都无法启动&#xff0c;打开任务管理器也没有Intellij IDEA线程启动。 解决方法&#xff1a; 第一步&#xff1a;以管理员身份打开命令提示符&#xff0c;输入命令(“ netsh winsock reset ”)&#xff0c;关闭…

selenium查找svg元素

目录 如何为SVG元素编写XPath 使用local-name&#xff08;&#xff09;的语法 需要记住的一点 将“and”与SVG元素一起使用 如何定位嵌套的SVG元素&#xff1f; XPath是一种用于定位XML文档中的web元素的语言&#xff0c;包括构成网页的HTML文档。在Selenium中&#xff0…

用VScode运行vue框架时,报无法运行的错误

报错内容 问题出在了版本上面&#xff0c;从reason可以了解到是由于不支持的原因 然后上面报错的几乎都属于node_modules包内的&#xff0c;因此我们可以判断&#xff0c;是node.js版本的问题导致的&#xff08;尤其是你从网上拷贝比较旧的项目的时候&#xff0c;可能需要对依赖…

在VMware Workstation安装 ESXI8.0初体验

文章目录 &#x1f41f;前言&#x1f41f;安装&#x1f41f;在VMware WorkStation中创建虚拟机&#x1f41f;ESXI部署安装&#x1f41f;安装完成后配置 &#x1f41f;前言 ESXI8.0版本开始最低RAM从以前的4GB变为8GB 本文所使用到的镜像以及Key都可以到我的网站中下载 地址&…

PreparedStatement 相比于 Statement的优点

PreparedStatement 相比于 Statement&#xff0c;有以下几个优点&#xff1a; 1. 预编译&#xff1a;PreparedStatement 对象在执行 SQL 语句之前会进行预编译&#xff0c;这意味着数据库管理系统可以提前解析和编译 SQL 语句&#xff0c;以优化执行计划&#xff0c;从而提高查…

多条件见多值查询的 Excel 公式和 python 函数

问题 Python草堂 群的一位群友问&#xff1a;excel 数据表&#xff0c;用 vlookup 函数怎样实现多条件查询多值&#xff0c;多值排到一行上。如下图所示&#xff1a; 左边是数据清单&#xff0c;希望根据两个条件&#xff1a;产品、日期&#xff0c;查询数量&#xff0c;列到…

【C++】priority_queue使用与模拟实现

认识priority_queue 1、priority_queue(优先级队列)是一种容器适配器&#xff0c;底层是一个完全二叉树的大堆&#xff08;堆总是一颗完全二叉树&#xff0c;根结点最大的堆叫做大堆&#xff1b;根结点最小的堆叫做小堆&#xff09;&#xff0c;头文件在queue中&#xff0c;根…