美文网首页
Spring Cloud Alibaba -示范案例

Spring Cloud Alibaba -示范案例

作者: Hengry | 来源:发表于2023-11-08 01:49 被阅读0次

    阿里巴巴的Spring Cloud框架提供了一系列用于构建微服务架构的工具和组件。以下是一个基本的Spring Cloud Alibaba示例,展示如何使用Nacos作为注册中心,以及如何使用Feign和Sentinel来构建一个简单的微服务应用。

    步骤1:创建Nacos服务器

    首先,你需要创建一个Nacos服务器作为服务注册中心。你可以下载Nacos的发布版本并按照官方文档进行部署。

    步骤2:创建生产者微服务

    创建一个Spring Boot应用程序,充当生产者微服务。这个微服务将提供一个简单的HTTP接口,并将其注册到Nacos服务注册中心。

    1. pom.xml中添加Spring Cloud Alibaba的依赖:
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
    1. 创建一个生产者控制器:
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
        @GetMapping("/hello")
        public String hello() {
            return "Hello from Producer!";
        }
    }
    
    1. application.properties中配置Nacos注册中心的地址:
    spring.application.name=producer-service
    server.port=8080
    
    spring.cloud.nacos.discovery.server-addr=localhost:8848
    

    步骤3:创建消费者微服务

    创建另一个Spring Boot应用程序,充当消费者微服务。这个微服务将使用Feign来调用生产者微服务,并使用Sentinel来实施流量控制。

    1. pom.xml中添加Spring Cloud Alibaba的依赖,包括Feign和Sentinel:
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    </dependency>
    
    1. 创建一个Feign客户端接口,用于调用生产者微服务:
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @FeignClient("producer-service")
    public interface ProducerClient {
        @GetMapping("/hello")
        String hello();
    }
    
    1. 创建一个消费者控制器,使用Feign客户端调用生产者微服务:
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
        private final ProducerClient producerClient;
    
        public HelloController(ProducerClient producerClient) {
            this.producerClient = producerClient;
        }
    
        @GetMapping("/consume")
        public String consume() {
            return "Consumer says: " + producerClient.hello();
        }
    }
    
    1. application.properties中配置Nacos注册中心的地址和Sentinel的规则配置:
    spring.application.name=consumer-service
    server.port=8081
    
    spring.cloud.nacos.discovery.server-addr=localhost:8848
    
    # Sentinel
    spring.cloud.sentinel.transport.dashboard=localhost:8080
    

    步骤4:配置Sentinel规则

    在Sentinel控制台中配置限流规则、降级规则等,以实现流量控制和熔断。你可以在Sentinel控制台中可视化配置规则。

    步骤5:运行应用程序

    分别启动生产者和消费者微服务,然后访问http://localhost:8081/consume,你将看到消费者微服务调用生产者微服务并返回结果。同时,Sentinel会监控和控制流量。

    这只是一个简单的示例,演示了如何使用Spring Cloud Alibaba的Nacos、Feign和Sentinel来构建微服务应用程序。根据项目需求,你可以进一步扩展和配置应用程序,以满足更复杂的场景。

    相关文章

      网友评论

          本文标题:Spring Cloud Alibaba -示范案例

          本文链接:https://www.haomeiwen.com/subject/fqxqwdtx.html