微服务服务治理

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 微服务服务治理


什么是服务治理?

服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。
假如现在分别有订单模块和商品模块这两个部分,当订单模块中生成订单的时候肯定要调用商品模块中的查询功能,但因为是微服务架构,两个模块此时在不同的服务器上,所以这时候我们就要用到远程调用了


基本远程调用示例代码:

第一步:请求调用模块的启动类中

  @Bean
  public RestTemplate restTemplate(){
        return new RestTemplate();
    }

第二步:请求调用模块的serviceImpl类

@Service
@Slf4j
public class OrderServiceImpl implements IOrderService {
    @Autowired
    private OrderDao orderDao;
    @Autowired
    private RestTemplate restTemplate;
     @Override
    public Order createOrder(Long productId, Long userId) {
        log.info("接收到()号商品的下单请求,接下来调用商品微服务查询此商品信息",productId);
               String url = "http://localhost:8081/product/"+productId;
        Product product = restTemplate.getForObject(url,Product.class);
        log.info("查询到()号商品的信息,内容是:()",productId, JSON.toJSONString(product));
        //创建订单并保存
        Order order = new Order();
        order.setUid(userId);
        order.setUsername("杨宸教育");
        order.setPid(productId);
        order.setPname(product.getPname());
        order.setPprice(product.getPprice());
        order.setNumber(1);
        orderDao.save(order);
        log.info("创建订单成功,订单信息为()",JSON.toJSONString(order));
        return order;
    }
}

核心部分:


虽然起到了远调用的作用,但这种方法的缺点是显而易见的
1.若改变调用模块的IP地址,需要手动进行更改

2.若有两三个服务器操作相同的微服务模块的时候,没有办法判断到底该操作哪个IP地址,并且当一个服务器出现故障的时候,此时也没有办法进行人为的感知到
因此就有人想要做出一种可以来监测管理这一问题的办法


服务管理

第一部分 服务注册

服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去监测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。

第二部分 服务发现

服务发现:服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实例的访问。


Nacos(常见注册中心)入门




搭建Nacos环境

第一步:安装nacos

下载地址: https: //github.com/alibaba/ nacos/releases

下载zip格式的安装包,然后进行解压缩操作,上课使用的Nacos Server版本是1.3.2
第二步:启动nacos

#切换目录

cd nacos/bin

#启动nacos

startup.cmd -m standalone

第三步:访问nacos


第四步:导入依赖

   <!--nacos客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

第五步: 在主类上添加@EnableDiscoveryClient注解


第六步:在application.yml中添加Nacos服务的地址





Nacos远程调用

代码示例




实现商品服务的负载均衡

什么是负载均衡?

通俗的讲,负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。

根据负载均衡发生的位置的不同,一般分为服务器负载均衡和客户端负载均衡

服务器负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡

而客户端负载均衡指的是发生在服务器请求的一方,也就是在发送请求之前已经选好了由哪个实例处理请求



手动实现负载均衡




利用组件实现负载均衡

请求调用启动类下:



请求调用service类下




修改负载均衡策略







相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
6月前
|
运维 监控 负载均衡
探索微服务架构下的服务治理
在当今软件开发的世界中,微服务架构已成为一种流行的设计模式。它通过将大型应用程序分解为一组小型、独立的服务来促进敏捷性和可伸缩性。然而,随着服务的增多和网络交互的复杂性提升,有效的服务治理变得至关重要。本文深入探讨了在微服务架构中实施服务治理的策略和挑战,旨在提供一套可行的解决方案,以优化系统的整体性能和稳定性。我们将讨论服务发现、配置管理、负载均衡、故障处理和重试机制等关键方面,以及它们如何共同作用以确保系统的高可用性和弹性。
|
分布式计算 网络协议 Java
微服务技术系列教程(20) - SpringCloud- 服务治理Eureka(替代方案)
微服务技术系列教程(20) - SpringCloud- 服务治理Eureka(替代方案)
166 0
微服务技术系列教程(20) - SpringCloud- 服务治理Eureka(替代方案)
|
搜索推荐 Java 网络架构
微服务技术系列教程(19) - SpringCloud- 服务治理Eureka(详解)
微服务技术系列教程(19) - SpringCloud- 服务治理Eureka(详解)
73 0
|
微服务
微服务技术系列教程(18) - SpringCloud- 服务治理Eureka(集群搭建)
微服务技术系列教程(18) - SpringCloud- 服务治理Eureka(集群搭建)
86 0
|
负载均衡 Java Maven
微服务技术系列教程(17) - SpringCloud- 服务治理Eureka(搭建注册中心)
微服务技术系列教程(17) - SpringCloud- 服务治理Eureka(搭建注册中心)
59 0
|
监控 负载均衡 安全
服务治理:构建健壮的微服务生态系统的关键
在微服务架构中,服务治理是确保服务可靠性、可伸缩性和高可用性的关键组成部分。本博客将深入探讨服务治理的概念、重要性以及如何有效地在微服务生态系统中实施它。
|
1月前
|
负载均衡 算法 应用服务中间件
深入探索微服务架构中的服务治理
【10月更文挑战第15天】深入探索微服务架构中的服务治理
44 0
|
1月前
|
监控 安全 Java
深入探索微服务架构中的服务治理
【10月更文挑战第10天】深入探索微服务架构中的服务治理
35 0
|
6月前
|
存储 运维 负载均衡
探索微服务架构下的服务治理
【4月更文挑战第30天】 在当今软件开发领域,微服务架构已经成为了解决复杂系统问题的重要技术手段。随着微服务的广泛应用,如何有效管理与治理这些分散的服务成为了开发和维护的关键。本文将探讨在微服务架构下,实现高效服务治理的策略与实践,重点分析服务发现、配置管理、负载均衡和故障处理等核心要素,旨在为读者提供一套系统的服务治理思路。
|
3月前
|
Prometheus 监控 Java
微服务架构下的服务治理策略:打破服务混乱的惊天秘籍,开启系统稳定的神奇之门!
【8月更文挑战第7天】微服务架构将应用细分为可独立部署的小服务,提升灵活性与可扩展性。但服务增多带来治理挑战。通过服务注册与发现(如Eureka)、容错机制(如Hystrix)、监控工具(如Prometheus+Grafana)、集中配置管理(如Spring Cloud Config)和服务网关(如Zuul),可有效解决这些挑战,确保系统的高可用性和性能。合理运用这些技术和策略,能充分发挥微服务优势,构建高效应用系统。
62 1
下一篇
无影云桌面