热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringCloud注册服务及负载均衡

SpringCloud怎样创建父子项目工程新创建一个Maven工程–勾选此处,点击finfish即可创建子项目,点击finish即可项目一使用Eur

Spring Cloud
怎样创建父子项目工程
新创建一个Maven工程–>勾选此处,点击finfish即可
在这里插入图片描述
创建子项目,点击finish即可
在这里插入图片描述

项目一 使用Eureka注册服务
1 搭建Maven父工程
在Eclipse中,创建一个Maven父工程cloud,并在工程的pom.xml中添加Spring Cloud的版本依赖等信息。
在这里插入图片描述
2 搭建服务端工程
在父工程cloud中,创建Maven子模块microservice-eureka-server作为服务端工程,该模块是一个基础的Spring Boot工程。
①添加依赖(microservice-eureka-server)
在这里插入图片描述
编写配置文件
在这里插入图片描述
修改服务端java代码
在这里插入图片描述
启动应用,查看信息
在这里插入图片描述
3 搭建客户端工程
①添加依赖(microservice-eureka-user)
在这里插入图片描述
编写配置文件在这里插入图片描述
修改客户端Java代码
在这里插入图片描述
启动应用,查看信息。完成上述配置后,分别启动服务器工程和客户端工程,并在浏览器中访问地址即可看到Eureka的信息面板中注册的服务信息
在这里插入图片描述
在这里插入图片描述
项目二 如何实现服务器间的调用
1 搭建订单服务工程
①在pom.xml中,添加spring-cloud-starter-eureka依赖
在这里插入图片描述
编写配置文件,在配置文件中添加Eureka服务实例的端口号,服务端地址等信息
在这里插入图片描述
创建实体订单类
在这里插入图片描述
在这里插入图片描述
创建订单控制器类,模拟编写一个通过id查询订单的方法
在这里插入图片描述
在引导类中添加@EnableEurekaClient注解
在这里插入图片描述
2 编写用户服务功能
①在microservice-eureka-user工程的引导类中,创建RestTemplate的Spring实例
在这里插入图片描述
创建用户控制器类,并在类中编写查询方法
在这里插入图片描述
3 启动服务应用,测试服务调用
分别启动服务注册中心应用,订单服务应用和用户服务应用,此时Eureka信息页面显示如下
通过浏览器访问地址http://localhost:8000/findOrdersByUsers/1(1表示用户id),浏览器显示如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
项目三 客户端负载均衡
1 Ribbon介绍
在这里插入图片描述
2 Ribbon的使用
①添加注解。在microservice-eureka-user工程引导类中的restTemplate()方法上添加@LoadBalanced注解
在这里插入图片描述
②使用服务实例名称。在用户服务实例的查询方法中,使用服务提供者(订单服务)的实例名称来执行已注册服务列表中实例的方法
在这里插入图片描述
③添加服务监听类。在microservice-eureka-order工程中创建一个用于服务实例端口的工具类ServiceInfoUtil
在这里插入图片描述
④添加输出语句。在订单控制器类OrderController的查询订单方法中,增加一行执行输出当前实例端口号的语句
System.out.println(ServiceInfoUtil.getPort());
⑤启动服务,测试应用。分别启动注册中心,用户服务和订单服务,然后修改订单服务端口号(此处用7902),再次启动一个订单服务后,Eureka信息页面注册信息如下
在这里插入图片描述
⑥当通过浏览器连续6次访问地址http://localhost:8000/findOrderByUser/1后,两个控制台如下图所示。
在这里插入图片描述
在这里插入图片描述


推荐阅读
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • springboot项目引入jquery浏览器报404错误的解决办法
    本文介绍了在springboot项目中引入jquery时,可能会出现浏览器报404错误的问题,并提供了解决办法。问题可能是由于将jquery.js文件复制粘贴到错误的目录导致的,解决办法是将文件复制粘贴到正确的目录下。如果问题仍然存在,可能是其他原因导致的。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
author-avatar
潇洒树春不_970
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有