springcloud
spring团队开源微服务工具集,帮助我们快速构建分布式系统(微服务系统),提供spring组织 netflix
springcloud alibaba
alibaba团队开源微服务工具集,帮助我们快速构建分布式系统(微服务系统) 提供alibaba解决方案
springcloud alibaba是阿里云为分布式应用开发提供了一站式解决方案。它包含了开发分布式应用程序所需的所有组件,使您可以轻松地使用springcloud开发应用程序。
有了阿里云,你只需要添加一些注解和少量的配置,就可以将Spring云应用连接到阿里的分布式解决方案上,用阿里中间件搭建一个分布式应用系统。
spring cloud alibaba 特点
技术支持 | springcloud alibaba | springcloud netflix |
---|---|---|
服务降级和流量控制 | sentinel | hystrix |
服务注册与发现 | nacos | eureka 、consul |
分布式配置& 事件驱动消息总线 | nacos | config & bus |
分布式事务&dubbo | seta |
springcloud 组件
技术支持 | springcloud alibaba | springcloud netflix |
---|---|---|
服务注册与发现组件 | nacos | eureka consul |
服务间通信组件 | restTemplate+ribbon,Openfeign | restTemplate+ribbon,Openfeign |
服务降级和熔断 | sentinel | hystrix hystrix dashboard |
服务网关组件 | gateway | gateway |
统一配置中心组件 消息总线组件 | nacos | config bus |
微服务项目实战开发 springcloud netfilx + springcloud alibaba +springcloud spring
五大组件选择
- 1.服务注册中心 ====> Nacos (alibaba)
- 2.服务通信间的负载均衡 ====> RestTemplate+Ribbon (Netflix)或者Openfeign (Spring)
- 3.服务熔断和服务降级 ====> sentinel (alibaba)
- 4.服务网关组件 ====> Gateway (Spring)
- 5.统一配置中心组件 ====>Nacos (alibaba)
SpringCloudAlibaba环境搭建
1、新建一个空项目
2、在空项目中新建一个模块
3、添加相关依赖
<!--继承springboot父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
</parent>
<!--定义版本号-->
<properties>
<spring.cloud.version>Hoxton.SR6</spring.cloud.version>
<spring.cloud.alibaba.version>2.2.1.RELEASE</spring.cloud.alibaba.version>
</properties>
<!--维护依赖-->
<dependencyManagement>
<dependencies>
<!--维护springcloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--维护springcloud alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nacos组件简介
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理
Nacos就是微服务架构中服务注册中心以及统一配置中心,用来替换原来的(eureka,consul)以及config组件
使用nacos必须安装JDK和maven
JDK安装
1、安装Nacos必须安装jdk,把rpm安装包的jdk上传到linux服务器上
2、输入rpm -ivh jdk-11.0.11_linux-x64_bin.rpm
安装jdk
3、输入find / -name java
查看java安装目录,进入bin目录,查看
4、输入vim /etc/profile
配置linux系统环境变量,光标移到最后面按i键编辑添加环境变量
export JAVA_HOME=/usr/java/jdk-11.0.11
export PATH=$PATH:$JAVA_HOME/bin
按ESC,再按:wq保存退出
5、退出之后输入source /etc/profile
重新加载环境变量
6、输入java -sersion
查看是否配置成功
Maven安装
1、下载apache-maven-3.6.3-bin.tar.gz Index of /maven/maven-3
2、把tar包上传到linux系统的 /usr 目录下
3、输入tar -xvzf apache-maven-3.6.3-bin.tar.gz
解压maven
4、输入vim /etc/profile
命令打开环境变量配置
5、拉到最后面按i键配置环境变量
export MAVEN_HOME=/usr/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
6、按ESC,再输入:wq保存并退出
7、执行source /etc/profile
命令重新加载配置文件
8、输入mvn -v
查看是否安装成功
Nacos安装
输入cd
返回root目录
1、下载Nacos安装包 home
2、把Nacos安装包上传到linux服务器上(我上传的是root文件夹)
3、nacaos是gz压缩包,输入tar -zxvf nacos-server-1.3.1.tar.gz
解压缩到当前目录
4、查看nacos目录结构
5、启动nacos服务
ncaos默认集群启动,启动时单机启动,必须在bin目录中执行./startup.sh -m standalone
6、输入cd ..
返回上一级目录,再输入tail -f logs/nacos.log
查看日志,是否启动成功
7、访问nacos web地址 http://ip地址/8848/nacos
nacos客户端开发
1、新建一个模块springclouAlibaba-nacos-client-8989
2、导入相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!--引入nacos client的依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
3、编写application.properties配置文件
server.port=8989
spring.application.name=NACOSCLIENT
#指定服务名称
spring.cloud.nacos.server-addr=47.106.105.80:8848
4、编写主启动类
package com.study.springcloudAlibaba;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient //开启服务的注册(可以省略不写)
public class NacosClientApplication {
public static void main(String[] args) {
SpringApplication.run(NacosClientApplication.class,args);
}
}
5、启动测试