热门标签 | 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后,两个控制台如下图所示。
在这里插入图片描述
在这里插入图片描述


推荐阅读
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了 org.apache.commons.io.IOCase 类中的 checkCompareTo() 方法,通过多个代码示例展示其在不同场景下的使用方法。 ... [详细]
  • 本文介绍如何在Spring Boot项目中集成Redis,并通过具体案例展示其配置和使用方法。包括添加依赖、配置连接信息、自定义序列化方式以及实现仓储接口。 ... [详细]
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社区 版权所有