Spring Cloud Alibaba之大整合

大家好,我是升仔

Spring Cloud Alibaba 组件详细介绍

1. Nacos - 服务发现和配置管理
  • 功能:Nacos 提供服务发现和动态配置服务,支持微服务架构中的服务动态注册和配置管理。

  • 基础配置:

    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yaml
    
2. Dubbo - 高性能 RPC 框架
  • 功能:Dubbo 是一种分布式服务框架,支持高性能和透明化的远程方法调用。

  • 服务提供者示例:

    @Service(version = "1.0.0")
    public class GreetingServiceImpl implements GreetingService {
        public String sayHello(String name) {
            return "Hello, " + name;
        }
    }
    
  • 服务消费者示例:

    @RestController
    public class GreetingController {
        @DubboReference(version = "1.0.0")
        private GreetingService greetingService;
    
        @GetMapping("/greet")
        public String greet(String name) {
            return greetingService.sayHello(name);
        }
    }
    
3. Seata - 分布式事务管理
  • 功能:Seata 用于处理分布式事务,确保跨多个服务的数据一致性。

  • 配置文件 (file.conf):

    service {
      vgroup_mapping.my_tx_group = "default"
      default.grouplist = "127.0.0.1:8091"
      enableDegrade = false
      disableGlobalTransaction = false
    }
    
  • 事务管理示例:

    @RestController
    public class OrderController {
        @Autowired
        private OrderService orderService;
    
        @GlobalTransactional
        @PostMapping("/order")
        public Response createOrder(@RequestBody Order order) {
            orderService.createOrder(order);
            return Response.success();
        }
    }
    
4. RocketMQ - 消息中间件
  • 功能:RocketMQ 用于处理大规模消息传递,支持异步通信和解耦。

  • 生产者示例:

    @Service
    public class OrderEventProducer {
        @Autowired
        private RocketMQTemplate rocketMQTemplate;
    
        public void sendOrderCreatedEvent(Order order) {
            rocketMQTemplate.convertAndSend("order-topic", order);
        }
    }
    
  • 消费者示例:

    @Service
    @RocketMQMessageListener(topic = "order-topic", consumerGroup = "order-group")
    public class OrderEventConsumer implements RocketMQListener {
        @Override
        public void onMessage(Order order) {
            // 处理订单事件
        }
    }
    
5. Sentinel - 流量控制和熔断降级
  • 功能:Sentinel 提供流量控制、熔断降级和系统负载保护功能。

  • 流量控制示例:

    @RestController
    public class ProductController {
        @GetMapping("/product")
        @SentinelResource(value = "getProduct", blockHandler = "handleOverFlow")
        public Product getProduct(Long id) {
            // 获取产品信息的逻辑
        }
    
        public Product handleOverFlow(Long id, BlockException ex) {
            // 流量控制处理逻辑
            return new Product();
        }
    }
    

总结

以上是 Spring Cloud Alibaba 主要组件的详细介绍。每个组件都在微服务架构中扮演着关键的角色,从服务注册与发现、远程过程调用、分布式事务管理,到消息传递和流量控制。通过这些组件的协同工作,可以构建出强大且可靠的微服务系统。

最后说一句(求关注,求赞,别白嫖)

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。

这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软

本文已收录于我的技术网站,next-java.com, 有大厂完整面经,工作技术等经验分享

求一键三连:点赞、分享、收藏

点赞对我真的非常重要!在线求赞,加个关注非常感激

你可能感兴趣的:(SpringCloud,spring,cloud)