黄页网站推广公司,广州网站设计成功刻,网络规划设计师正高级任职资格,如何查看网站图片尺寸✅作者简介#xff1a;大家好#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式#xff0c;持续分享Java技术内容。 #x1f34e;个人主页#xff1a;Meteors.的博客 #x1f49e;当前专栏#xff1a; 微服务 ✨特色专栏#xff1a; 知识分享 #x…✅作者简介大家好我是 Meteors., 向往着更加简洁高效的代码写法与编程方式持续分享Java技术内容。 个人主页Meteors.的博客 当前专栏 微服务 ✨特色专栏 知识分享 本文内容【1.4】Java微服务服务注册和调用EurekaRibbon ** ps ** 阅读这篇文章如果有问题或者疑惑欢迎各位在评论区提问或指出 ----------------------------------------------------- 目录 ---------------------------------------------------------- 目录
一、介绍
1. 问题
2.关于Eureka的介绍
介绍
组成
3. 关于Ribbon的介绍
介绍
常见的Ribbon负载均衡策略
二、相关代码的实现
1. 搭建Eureka服务
1 导入依赖 2在主函数内开启Eureka注解编辑
3编写yml文件 4进入服务中心 5页面说明 2. Eureka服务注册
1导入服务端依赖
2在yml文件中添加配置
3添加多个服务
4简单的使用 3.Ribbon的使用 --------------------------------------------------------------------------------------------------------------------------------
一、介绍 1. 问题 在介绍Eureka与Ribbon实现服务注册和调用功能之前我们需要先回答一些问题 1微服务的远程调用在使用注册中心之前是怎么实现的 一种比较多的方式是通过HTTP请求实现像前端一样访问另一个服务的接口。 而具体的实现方式像通过通过SpringBoot框架内的RestTemplate组件发送HTTP请求到其他接口实现代码如下 Autowiredprivate RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.findById(orderId);// 2.利用RestTemplate发起http请求查询用户// 2.1.url路径String url http://localhost:8081/user/ order.getUserId();// 2.2.发送http请求实现远程调用User user restTemplate.getForObject(url, User.class);// 3.封装user到Orderorder.setUser(user);// 4.返回return order;} j结果截图 2使用restTemplate的方式进行微服务的远程调用会哪些缺点 首先使用restTemplate不能解决许多微服务的许多问题。如服务的管理服务调用的的负载均衡实现、发生故障或下线的即时处理 2.关于Eureka的介绍 介绍 Eureka是Netflix开源的一个用于服务发现和注册中心的组件。它是基于RESTful风格的微服务框架主要用于在分布式系统中管理和监控服务实例的状态。服务管理Eureka允许服务在启动时向注册中心注册自己的信息并周期性地发送心跳来更新状态。其他服务可以通过查询注册中心来获取可用服务的信息以实现服务的调用和负载均衡。 组成 EurekaServe服务端注册中心 记录服务信息心跳监控EurekaClient客户端 Provider服务提供这例如案例中的user-service 注册自己的信息到EurekaServe每隔20秒向EurekaServer发送心跳请求consumer服务消费者例如案例中的order-server 根据服务名称从EureksServer拉取服务列表基于服务列表做负载均衡选中一个微服务后发起远程调用 3. 关于Ribbon的介绍 介绍 Ribbon 是SpringCloud的其中一个组件用于实现客户端负载均衡。它提供了负载均衡、故障转移和重试等功能可以与服务注册中心如 Eureka集成使用。通过使用 Ribbon可以实现负载均衡的客户端使服务消费者能够可靠高效的访问多个服务提供者Ribbon 提供了各种负载均衡策略如轮询、随机、加权随机等开发者可以根据需求选择合适的策略。 常见的Ribbon负载均衡策略 RoundRobinRule简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡策略。AvailabilityFilteringRule对两种服务器进行忽略 在默认情况下。这台服务器如果3次连接失败这台服务器就会被设置为“短路”状态。短路状态持续20秒如果再次连接失败短路的持续时间就会几何级地增加。并发数过高的服务器。如果一个服务器的并发连接数过高配置了AvailabilityFilteringRule规则的客户端也会将其忽略。并发连接数上限可以由客户端的clientNameclientConfigNameSpace.ActiveConnectionsLimit属性进行设置。WeightedResponseTimeRule为每一个服务器赋予一个权重值。服务器响应时间越长这个服务器的权重就越小。这个规则会随机选择服务器这个权重值会影响服务器的选择。ZoneAvoidanceRule以区域可用的服务器的选择。使用Zone对服务器进行分类这个Zone可以理解为一个机房、一个机架等。而后再对Zone内多个服务做轮询。BestAvailableRule忽略哪些短路的服务器并选择并发数较低的服务器。RandomRule随机选择一个可用的服务器。RetryRule重试机制的选择逻辑 二、相关代码的实现 1. 搭建Eureka服务 1 导入依赖 !--eureka服务端--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependency 2在主函数内开启Eureka注解 3编写yml文件 server:port: 10086 # 服务端口
spring:application:name: eurekaserver # eureka的服务名称
eureka:client:service-url: # eureka的地址信息defaultZone: http://127.0.0.1:10086/eureka 4进入服务中心 5页面说明 2. Eureka服务注册 1导入服务端依赖 在服务模块如userServiece的pom文件中导入 !--eureka客户端依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency 2在yml文件中添加配置 userService的配置文件中 orderService的配置文件中 3添加多个服务 4简单的使用 3.Ribbon的使用 在服务中自定义负载均衡注解 最后
后续文章会陆续更新希望文章对你有所帮助.. 参考文献
Spring CloudLevel up your Java code and explore what Spring can do for you.https://spring.io/projects/spring-cloud/
09-Eureka-搭建eureka服务_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p11spm_id_frompageDrivervd_sourced0dc59eeb02e4e4b81ee32c868da3cfe