1.简介
Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。
依托Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
地址:GitHub - alibaba/spring-cloud-alibaba: Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。他是使用java编写,需要依赖java环境
如何使用 Nacos Discovery Starter 完成 Spring Cloud 应用的服务注册与发现:spring-cloud-alibaba/readme-zh.md at master · alibaba/spring-cloud-alibaba · GitHub
需要在gulimall-common中的pom.xml下导入的依赖
<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-wareartifactId>
<groupId>com.doudou.gulimall1groupId>
<version>0.0.1-SNAPSHOTversion>
parent>
<modelVersion>4.0.0modelVersion>
<artifactId>gulimall-commonartifactId>
<description>每个微服务公共的依赖, bean,工具类等description>
<properties>
<maven.compiler.source>8maven.compiler.source>
<maven.compiler.target>8maven.compiler.target>
properties>
<dependencies>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.4.3.1version>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>1.16.18version>
dependency>
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpcoreartifactId>
<version>4.4.14version>
dependency>
<dependency>
<groupId>commons-langgroupId>
<artifactId>commons-langartifactId>
<version>2.6version>
dependency>
<dependency>
<groupId>io.renrengroupId>
<artifactId>renren-fastartifactId>
<version>3.0.0version>
<scope>compilescope>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.23version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>3.0-alpha-1version>
<scope>providedscope>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.2.3.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
project>
1.下载nacos-server
下载地址:Releases · alibaba/nacos · GitHub
2.启动nacos-server
3.注册微服务
1.修改pom.xml文件,引入Nacos Discovery Starter 这里主要是在gulimall-common里面进行配置
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
2.在应用的application.yml中配置Nacos Server地址
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
application:
name: 模块名字
3.使用@EnableDiscoveryClient开启服务注册功能
4.启动nacos,然后再启动IDEA,观察nacos服务列表是否已经注册上服务。
注意:一定要启动nacos,再启动IDEA,每个应用都应该有名字,这样才能注册上去
注册成功的显示页面:
简介
Feign是一个声明式的HTTP客户端,它的目的就是让远程调用更加简单。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。
Feign整合了Ribbon(负载均衡)和Hystric(服务熔断),可以让我们不再需要显示地使用这两个组件。
SpringCloudFeign在NetflixFeign的基础上扩展了对SpringMVC注解的支持,在其实现下,我们只需要创建一个接口并用注解的方式来配置它,即完成对服务提供方的接口绑定。简化了SpringCloudRibbon自行封装服务调用客户端的开发量。
远程调用测试:
首先是要导入feign的依赖包,因为创建模块的时候已经勾选了feign所有pom.xml中自动有依赖包
把下面这两个进行启动,然后访问浏览器页面:
浏览器访问:localhost:8000/member/member/coupons
把这个依赖包复制到gulimall-common中的pom.xml中
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
测试
浏览器中访问的页面:localhost:7000/coupon/coupon/test
动态获取数据:
在这个页面进行修改数据
查看浏览器页面,已经动态刷新成功
命名空间
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的Group或Data ID的配置。Namespace的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等
现在Nacos里面创建命名空间, 然后把生成的命令空间ID配置到bootstrap.properties中
这个时候访问的就是命名空间prop里面的内容:
B站学习网址:全网最强电商教程《谷粒商城》对标阿里P6/P7,40-60万年薪_哔哩哔哩_bilibili