Spring Cloud Alibaba 新手小白入门

本文详细介绍了SpringCloudAlibaba的使用,包括Nacos作为服务注册与配置中心,Sentinel流量控制,Feign服务调用等。通过实例展示了如何搭建微服务,配置Nacos,以及使用Feign进行服务间的通信。最后,演示了消费者通过Feign远程调用提供者服务的过程。
摘要由CSDN通过智能技术生成

一,什么是Spring Cloud Alibaba

Spring Cloud Alibaba 是一种分布式的解决方案,不是框架,也不是架构,而是一种方案。方案的作用是用来解决分布式服务所遇到的问题。
比如说如果我们在做微服务之间的调用的时候,Spring Cloud Alibaba 给的解决方案是用Nacos 来做服务注册和管理,用Feign 来做服务之间的自由调用。
二、Spring Cloud Alibaba 主要组件

Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架。
Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道

三、搭建准备工作。

1idea,这个自行下载安装,网上有很多教程。

2,jdk,自行安装下载。

3,maven,自行安装下载。

2,把Nacos作为配置中心

     下载地址:nacos.io/zh-cn/docs/quick-start.html

选择对应版本进行解压(注意 Nacos 解压后 是一个完整的运行包,如果用的不熟练,不要动里面的配置信息)

Spring Cloud Alibaba从入门到实践一网打尽
启动安装目录bin目录下startup.cmd

如启动失败,提示"unable to start embedded tomcat"

 修改startup.cmd文件set MODE="standalone",重新启动成功。

 如正常启动成功,则下一步(访问启动提示网址)

 启动成功后 默认账号密码 nacos/nacos(初始账号密码)

 

        Nacos 真正作用是将配置从应用中剥离出来,统一管理,优雅地解决了配置的动态变更、持久化、运维成本等问题。应用自身既不需要去添加管理配置接口,也不需要自己去实现配置的持久化,更不需要引入“定时任务”以便降低运维成本。Nacos 提供的配置管理功能,将配置相关的所有逻辑都收拢,并且提供简单易用的 SDK,让应用的配置可以非常方便被 Nacos 管理起来不仅如此,Nacos提供 DNS-F功能, 可以与K8S、Spring Cloud和Dubbo等多个开源产品进行集成,实现服务的注册功能。

        服务发现使用来管理注册到nacos 上的微服务,可以实现服务下线等功能。
命名空间是用来做服务环境区分,当项目需要开发,测试, 生产等多个不同的配置, 命名空间就可以做配置隔离。

-----到这里,基本的准备工作就做好了,下面我们来看一下如何搭建一个简单的微服务

三、工程搭建

1.首先我们先用SpringBoot创建2个工程,我这里就叫:provider,consumer.

Spring Cloud Alibaba从入门到实践一网打尽

Spring Cloud Alibaba从入门到实践一网打尽

Spring Cloud Alibaba从入门到实践一网打尽

Spring Cloud Alibaba从入门到实践一网打尽

Spring Cloud Alibaba从入门到实践一网打尽

Spring Cloud Alibaba从入门到实践一网打尽

Spring Cloud Alibaba从入门到实践一网打尽

 Spring Cloud Alibaba从入门到实践一网打尽

到这里我已经设置好一个provider服务,后我我会再搭建一个消费者服务,操作步骤和上面一样 

 Spring Cloud Alibaba从入门到实践一网打尽

 Spring Cloud Alibaba从入门到实践一网打尽

到这里我已经搭建好2个服务工程,点击apply,点击ok,工程搭建完毕 

Spring Cloud Alibaba从入门到实践一网打尽

四、服务配置

provider服务配置

1.provider代码如下和配置文件(新建的工程默认是application.properties,但是再工作中用的比较多的是yml格式,所以这里我把properties改成了yml格式)如下图

2.ProviderController代码如下:



 @RestController
public class ProviderController {
 
    @Value("${providerName}")
    private String name;
 
    @GetMapping("send")
    public String send(){
        return name;
    }
}

3.application.yml配置如下:

server:
  port: 8080
    
#自定义参数
providerName: provider   
4.provider注册到nacos

生产者注册到nacos注册中心,步骤:
添加依赖:spring-cloud-starter-alibaba-nacos-discovery及springCloud

 Spring Cloud Alibaba从入门到实践一网打尽

 

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
 
        <!--整合Nacos -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>
    </dependencies>
 
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>


在 application.yml 中配置nacos服务地址和应用名

server:
  port: 8080
 
spring:
  application:
  ## 应用名
    name: provider
  ## nacos服务地址
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  #自定义参数
 providerName: provider


启动服务,然后登陆Nacos服务查看,结果如下

Spring Cloud Alibaba从入门到实践一网打尽

 

consumer服务配置


1.首先按照我上面的引入maven依赖。
2.由于配置基本和上面一样我这里就把我代码部分例举出来
代码:

@RestController
public class ConsumerController {
 
    @GetMapping("consumer")
    public String send(){
        return "Consumer";
    }
 
}


yml配置

server:
  port: 8081
 
spring:
  application:
    ## 应用名
    name: consumer
  ## nacos服务地址
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848


启动服务

Spring Cloud Alibaba从入门到实践一网打尽

 

下面开始整合Feign实现远程调用


1.先引入feign相关依赖

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
 </dependency>


2.在ConsumerApplication类上添加@EnableFeignClients注解:

 Spring Cloud Alibaba从入门到实践一网打尽

 


3.编写feignClient:

 Spring Cloud Alibaba从入门到实践一网打尽

 

@FeignClient("provider")
public interface ProviderFeign {
 
    @RequestMapping("send")
     String send();
}


在Controller中使用feignClient:

@RestController
public class ConsumerController {
 
    @Autowired
    private ProviderFeign providerFeign;
 
    @GetMapping("consumer")
    public String send(){
        String send = providerFeign.send();
        return "Consumer" + send;
    }
 
}


测试访问:

 

至此一个简单的微服务工程已经搭建完毕,其实整个流程很简单,可以按照步骤操作一遍。

后面都给大家讲解集群管理。

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值