天天看点

记录Spring cloud alibaba Nacos学习前言

Spring cloud alibaba微服务

  • 前言
    • 技术选型
    • Nacos
      • Nacos与Eureka的功能差异
      • Nacos快速搭建
        • 下载
        • 启动
        • 注册服务

前言

由于本人目前所在的公司的项目随着需求越来越多,用户量越来越庞大,项目结构变得极为复杂,难以维护。在这种背景条件下,公司的架构师开始决定使用Spring cloud微服务来重构之前的项目,所以趁这个机会,好好了解一下Spring cloud alibaba微服务的各种组件以及如何快速上手。

技术选型

通过对市面上目前主流的微服务方案进行了解,我们最终确定了以下的微服务组件来实现:

  • 采用Nacos作为服务的注册中心及配置中心
  • 采用Open-Feign作为服务之间的远程调用
  • 采用Ribbon作为客户端负载均衡
  • 采用Gate-way网关作为所有请求的入口
  • 采用Sentinel作为流量控制,服务降级,熔断
  • 采用Seata 来控制分布式事务

Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

Nacos与Eureka的功能差异

记录Spring cloud alibaba Nacos学习前言

根据上面的图表,我们可以很清楚的了解到,Nacos相比于Eureka,除了可以作为服务的注册中心之外,还可以作为服务的配置中心,并给开发者提供了一套方便易用的管理界面,用户可以通过登陆Nacos管理界面很方便的对各个服务进行操作和配置。

Nacos快速搭建

下载

  • 通过从gitub上下载源码方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
           
  • 您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
  cd nacos/bin
           

启动

进入Nacos安装包的bin目录:

  • Linux/Unix/Mac启动命令:
sh startup.sh -m standalone
  • windows启动命令:
cmd startup.cmd -m standalone

standalone 代表单机启动模式,非集群模式

mac@bogon local % cd nacos 
mac@bogon nacos % cd bin
mac@bogon bin % sh startup.sh standalone
/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/ext:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/lib/ext -Xloggc:/usr/local/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/plugins/health,/usr/local/nacos/plugins/cmdb,/usr/local/nacos/plugins/mysql -Dnacos.home=/usr/local/nacos -jar /usr/local/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/usr/local/nacos/conf/ --logging.config=/usr/local/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/logs/start.out
mac@bogon bin % 
           

控制台打印如上代码,代表nacos本地启动成功,我们可以在浏览器地址栏输入

http://localhost:8848/nacos

打开nacos管理界面:

用户名默认:nacos,密码默认:nacos

注册服务

nacos启动完毕后,我们可以将我们的项目注册到nacos上,由nacos为我们管理服务。

Springboot项目配置一般有三板斧:引依赖、加注解、配置文件 三个步骤。Nacos也不例外:

  1. 在pom.xml文件引入Nacos的依赖包
<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.2.2.RELEASE</version>
		</dependency>
           
  1. 在启动类上添加注解

    @EnableDiscoveryClient

  2. 在配置文件中添加一下配置
spring:
  application:
    name: 这里填写服务的应用名称
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
           

注意:上面的server-addr根据实际情况进行配置,一般开发环境可以配置自己本地的Nacos,端口号默认为8848

配置完成后,启动我们的Springboot项目,然后打开浏览器nacos管理界面,我们可以看到项目配置文件中的服务名对应的服务已经注册上去了。至此,nacos的启动与配置就已经部署完毕。

继续阅读