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的功能差异
根据上面的图表,我们可以很清楚的了解到,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也不例外:
- 在pom.xml文件引入Nacos的依赖包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
- 在启动类上添加注解
@EnableDiscoveryClient
- 在配置文件中添加一下配置
spring:
application:
name: 这里填写服务的应用名称
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
注意:上面的server-addr根据实际情况进行配置,一般开发环境可以配置自己本地的Nacos,端口号默认为8848
配置完成后,启动我们的Springboot项目,然后打开浏览器nacos管理界面,我们可以看到项目配置文件中的服务名对应的服务已经注册上去了。至此,nacos的启动与配置就已经部署完毕。