springboot + springcloud +nacos实战
2019-12-18 16:05:00来源:博客园 阅读 ()
springboot + springcloud +nacos实战
首先从整个软件的功能和应用场景来说,nacos更像consul,而非eureka,nacos设计的时候自带的配置中心功能,让我们省下了去搞springcloud config的时间,但这里并不是说nacos或者consul比eureka优秀,只是因为eureka在分布式环境下更加注重的是可用性,而牺牲了他的最终一致性,在不同的领域上,nacos和eureka都有他们自己的建树,关键还是看具体的架构需求。废话不多说直接进入nacos的初探寻。1.nacos服务端应用,启动
1.1 下载安装
nacos服务端对比euerka来说相对比较麻烦一点,需要我们自己去下载安装,而非引入跑程序
下载地址
https://github.com/alibaba/nacos/releases
1.2 解压,启动
选择完之后解压
linux下就是tar -zxvf nacos-server-1.0.0.tar.gz
windows就直接用软件解压即可
进入如软件bin目录下
linux 启动命令 sh startup.sh -m standalone
windows 直接双击即可
启动成功的话效果会是
浏览器请求http://localhost:8848/nacos/index.html 可查看情况
新版本的nacos自带着用户登录验证,默认账号和密码都都输入nacos即可
1.3 springcloud微服务以nacos为注册中心启动
1.3.1 父级项目配置
因为springcloud是一个集成了很多框架组件的一个项目,所以项目也为了方便把一些公用的依赖到父级的pom文件下其中的关键主要是
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.9.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
上图两个依赖分别是springboot的版本依赖,和springcloud alibaba的依赖,下面贴出来的就是详细的父级pom文件,下面打包的配置可以不用管,只需要看dependency的依赖即可
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gitee.simons.cloud</groupId>
<artifactId>simons-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>simons-cloud</name>
<description>simons parent</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.9.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<spring-boot.version>2.1.3.RELEASE</spring-boot.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8