第163天学习打卡(项目 谷粒商城5 SpringCloud Alibaba Feign Nacos)

Posted doudoutj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第163天学习打卡(项目 谷粒商城5 SpringCloud Alibaba Feign Nacos)相关的知识,希望对你有一定的参考价值。

image-20210620164305606

SpringCloud Alibaba

1.简介

Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。

依托Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

image-20210620165212326

地址:GitHub - alibaba/spring-cloud-alibaba: Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.

SpringCloud Alibaba-Nacos[作为注册中心]

Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。他是使用java编写,需要依赖java环境

如何使用 Nacos Discovery Starter 完成 Spring Cloud 应用的服务注册与发现:spring-cloud-alibaba/readme-zh.md at master · alibaba/spring-cloud-alibaba · GitHub

image-20210620193811427

需要在gulimall-common中的pom.xml下导入的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>gulimall1-ware</artifactId>
        <groupId>com.doudou.gulimall1</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>gulimall-common</artifactId>
    <description>每个微服务公共的依赖, bean,工具类等</description>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.18</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.14</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>io.renren</groupId>
            <artifactId>renren-fast</artifactId>
            <version>3.0.0</version>
            <scope>compile</scope>
        </dependency>

<!--        导入mysql驱动-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>3.0-alpha-1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>


    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>


</project>

1.下载nacos-server

下载地址:Releases · alibaba/nacos · GitHub

image-20210620173157556

2.启动nacos-server

  • 双击bin中的startup.cmd文件
  • 访问localhost:8848/nacos/
  • 使用默认的nacos/nacos进行登录

image-20210620192456343

image-20210620193930492

3.注册微服务

1.修改pom.xml文件,引入Nacos Discovery Starter 这里主要是在gulimall-common里面进行配置

 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2.在应用的application.yml中配置Nacos Server地址

 cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: 模块名字

image-20210620195248600

3.使用@EnableDiscoveryClient开启服务注册功能

image-20210620195347280

4.启动nacos,然后再启动IDEA,观察nacos服务列表是否已经注册上服务。

注意:一定要启动nacos,再启动IDEA,每个应用都应该有名字,这样才能注册上去

注册成功的显示页面:

image-20210620195617416

Feign声明式远程调用

简介

Feign是一个声明式的HTTP客户端,它的目的就是让远程调用更加简单。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。

Feign整合了Ribbon(负载均衡)和Hystric(服务熔断),可以让我们不再需要显示地使用这两个组件。

SpringCloudFeign在NetflixFeign的基础上扩展了对SpringMVC注解的支持,在其实现下,我们只需要创建一个接口并用注解的方式来配置它,即完成对服务提供方的接口绑定。简化了SpringCloudRibbon自行封装服务调用客户端的开发量。

远程调用测试:

首先是要导入feign的依赖包,因为创建模块的时候已经勾选了feign所有pom.xml中自动有依赖包

image-20210620204521951

image-20210620204622469

image-20210620204715320

image-20210620204806888

image-20210620204845799

把下面这两个进行启动,然后访问浏览器页面:

image-20210620204943317

浏览器访问:localhost:8000/member/member/coupons

image-20210620204245626

Nacos作为配置中心

把这个依赖包复制到gulimall-common中的pom.xml中

   <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

测试

image-20210620205943368

image-20210620211754804

image-20210620211926292

image-20210620212005764

浏览器中访问的页面:localhost:7000/coupon/coupon/test

image-20210620211639686

动态获取数据:

image-20210620212925780

在这个页面进行修改数据

image-20210620213315908

image-20210620213806594

查看浏览器页面,已经动态刷新成功

image-20210620213914222

命名空间

用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的Group或Data ID的配置。Namespace的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等

image-20210620215307900

image-20210620215333136

image-20210620215355327

可以用命名空间做环境隔离

现在Nacos里面创建命名空间, 然后把生成的命令空间ID配置到bootstrap.properties中

image-20210620220554717

这个时候访问的就是命名空间prop里面的内容:

image-20210620220827219

image-20210620220338939

命名空间基于微服务进行隔离

image-20210620222226691

image-20210620222300700

B站学习网址:全网最强电商教程《谷粒商城》对标阿里P6/P7,40-60万年薪_哔哩哔哩_bilibili

以上是关于第163天学习打卡(项目 谷粒商城5 SpringCloud Alibaba Feign Nacos)的主要内容,如果未能解决你的问题,请参考以下文章

第193天学习打卡(项目 谷粒商城35 调试会员等级相关接口)

第164天学习打卡(项目 谷粒商城6 加载多配置集 API网关)

第173天学习打卡(项目 谷粒商城 15 配置网关路由与路径重写 查询树形展示三级分类)

第159天学习打卡(项目 谷粒商城 1)

第198天学习打卡(谷粒商城 项目 排错)

第160天学习打卡(项目 谷粒商城 2)