Nacos学习
系列文章目录
JavaSE | ||
---|---|---|
基础知识、数据类型学习 | 万年历项目 | 代码逻辑训练习题 |
代码逻辑训练习题 | 方法、数组学习 | 图书管理系统项目 |
面向对象编程:封装、继承、多态学习 | 封装继承多态习题 | 常用类、包装类、异常处理机制学习 |
集合学习 | IO流、多线程学习 | 仓库管理系统JavaSE项目 |
员工管理系统、多表查询、反射实现DBHelper学习 | DML、DDL、数据库对象学习 | |
JavaWeb | ||
网络编程、各种标签、CSS学习 | ECMAScript、BOM学习 | DOM、jQuery学习 |
Servlet、JSP、Cookie、Ajax学习 | 融资管理系统JavaWeb项目 | |
框架 | ||
MyBatis框架学习 | 逆向工程、Spring框架IOC、AOP学习 | SpringMVC框架学习 |
SpringBoot框架学习 | 招聘网站框架项目 | Vue介绍、窗体内操作、窗体间操作学习 |
Vue路由配置、网络请求访问框架项目、element组件介绍学习 | 标准管理系统Vue项目 | |
微服务 | ||
Linux安装、Nginx反向代理、负载均衡学习 | Docker学习 | Jenkins学习 |
Nexus学习 | Spring Security学习 | RabbitMQ学习 |
Redis学习 | MongoDB学习 | MongoDB学习 |
Nacos学习 |
文章目录
- 系列文章目录
- 前言
- 一、Nacos介绍
- 1. Spring Cloud介绍
- 2. 微服务和微服务架构介绍
- 3. Nacos介绍
- 二、Nacos安装
- 1. 拉取Docker镜像
- 2. 安装Nacos
- 三、Nacos整合SpringBoot
- 1. 注册中心
- 1.1 创建Maven项目
- 1.2 添加配置信息
- 1.3 编写bootstrap.yml配置文件
- 1.4 编写application.properties配置文件
- 1.5 编写SpringBootMain启动类
- 1.6 访问Nacos
- 2. 配置中心
- 2.1 配置application.yml文件
- 2.2 配置UserController文件
- 2.3 访问网站
- 2.4 添加依赖
- 2.5 创建命名空间
- 2.6 配置中心添加配置文件
- 2.7 修改bootstrap.yml配置文件
- 2.8 再次访问页面
- 总结
前言
本文我们要讲述:
Nacos学习
在下攸攸太上,这是在地球上所用假身的所用假名
一、Nacos介绍
1. Spring Cloud介绍
Spring Cloud是一个基于Spring Boot的分布式系统开发工具包,它整合了各种成熟的服务框架,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。通过Spring Boot的简便开发风格,Spring Cloud简化了分布式系统基础设施的开发,使得分布式系统的部署和维护变得简单易懂。它并不是重复造轮子,而是将各家公司开发的经过实际考验的服务框架进行整合封装,提供一键启动和部署的便利性。总之,Spring Cloud为开发者提供了一套简单易用的工具包,用于构建高效、可靠的分布式系统。
2. 微服务和微服务架构介绍
微服务是一种软件架构风格,通过将原本庞大的单体应用拆分成多个小而独立的服务来构建系统。每个微服务都运行在自己的进程中,并通过轻量级的通信机制进行相互协作。微服务之间可以独立开发、部署和扩展,每个服务都可以使用不同的技术栈和数据库。通过将系统拆分成多个小的服务,微服务架构可以提供以下优势:
灵活性和可伸缩性:由于每个微服务都是独立的,开发团队可以根据需要独立开发、测试、部署和扩展每个服务。这使得系统更加灵活,并能够根据需求快速进行横向扩展,以应对高并发和大流量的需求。
独立部署和快速迭代:微服务架构允许团队独立部署和更新每个微服务,而无需影响整个系统。这意味着团队可以更快地推出新功能和修复bug,快速响应市场需求。
技术多样性:每个微服务都可以使用适合其需求的技术栈和数据库。这使得团队能够选择最适合每个服务的技术,从而提高开发效率和系统性能。
容错性和可伸缩性:由于每个微服务都是独立的,一个服务的故障不会影响整个系统的稳定性。此外,系统可以根据负载需求对每个服务进行独立的扩展,以确保高可用性和高性能。
总之,微服务架构通过将系统拆分成多个小的、独立的服务,提供了灵活性、可伸缩性和快速迭代的优势。它使得团队能够更加敏捷地开发和维护系统,并且能够更好地应对高并发和大规模应用的需求。
3. Nacos介绍
Nacos是阿里巴巴开源的一个动态服务发现和配置管理平台,它是Spring Cloud Alibaba的核心组件之一。Nacos具有两个核心功能:注册中心和配置中心。
作为注册中心,Nacos可以实现服务的注册和发现。服务提供者在启动时将自己注册到Nacos上,服务消费者可以通过查询Nacos获取可用的服务实例列表,并进行负载均衡和调用。Nacos提供了丰富的服务发现功能,支持基于DNS和HTTP的服务发现,并支持多种服务注册方式,如主动注册和配置文件注册等。它还支持健康检查和自动摘除故障节点,以保证系统的稳定性和可靠性。
作为配置中心,Nacos可以集中管理系统的配置信息。开发团队可以将应用的配置文件存储在Nacos中,并通过Nacos的配置接口获取配置信息。Nacos支持动态配置刷新,可以在配置变更时自动通知应用程序进行更新,无需重启应用。此外,Nacos还提供了配置的分组、命名空间和灰度发布等功能,方便进行配置的管理和控制。
除了注册中心和配置中心的功能,Nacos还具有其他特性,如服务路由和流量管理、服务熔断和降级、动态DNS服务等。它可以与Spring Cloud和Spring Boot无缝集成,并提供了便捷的API和控制台界面来管理和监控服务。
总结起来,Nacos是一个功能强大的注册中心和配置中心,它为微服务架构提供了服务发现和配置管理的核心功能。通过使用Nacos,开发团队可以轻松实现服务的注册和发现,并统一管理系统的配置信息,提高开发效率和系统的可维护性。
二、Nacos安装
1. 拉取Docker镜像
docker pull nacos/nacos-server:1.3.1
2. 安装Nacos
mkdir -p /usr/local/docker/nacos/init.d /usr/local/docker/nacos/logsdocker run -d \
-p 8848:8848 \
-e MODE=standalone \
-e PREFER_HOST_NAME=hostname \
-v /usr/local/docker/nacos/init.d:/home/nacos/init.d \
-v /usr/local/docker/nacos/logs:/home/nacos/logs \
--name nacos nacos/nacos-server:1.3.1
三、Nacos整合SpringBoot
1. 注册中心
1.1 创建Maven项目
1.2 添加配置信息
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>compile</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--json--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version><scope>compile</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>
1.3 编写bootstrap.yml配置文件
spring:cloud:nacos:discovery:server-addr: 192.168.108.186:8848
1.4 编写application.properties配置文件
spring.application.name=nacos01
1.5 编写SpringBootMain启动类
package com.jjy;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootMain {public static void main(String[] args) {SpringApplication.run(SpringBootMain.class);}
}
编写后启动程序
1.6 访问Nacos
用户名、密码均为nacos
在服务管理下的服务列表,点击详情
记住这个IP,一会会用到:192.168.56.1
2. 配置中心
2.1 配置application.yml文件
server:port: 99common:name: zhangsanage: 20
2.2 配置UserController文件
package com.jjy.controller;import lombok.Setter;
import org.springframework.beans.factory.annotation.Value; //注意这一项
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
@Setter
public class UserController {@Value("${common.name}")private String name;@Value("${common.age}")private Integer age;@GetMappingpublic String test(){return name+"----"+age;}}
再次启动项目
2.3 访问网站
2.4 添加依赖
在dependencies标签中添加依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.5 创建命名空间
自定义命名空间名以及描述后点击新建
命名空间ID保存好,一会会用:7e56a725-f51a-4603-b421-49add0ae9c4b
2.6 配置中心添加配置文件
进入配置管理下的配置列表后,点击nacos0926后点击+号
DataID自定义后、描述可有可无,最后将如下内容填入配置内容,最后发布
common:name: lisi
同样的流程再次配置一个nacos0926copy
common:age: 25
2.7 修改bootstrap.yml配置文件
注意缩进
spring:cloud:nacos:discovery:server-addr: 192.168.108.186:8848config:server-addr: 192.168.108.186:8848file-extension: yamlnamespace: 7e56a725-f51a-4603-b421-49add0ae9c4b #命名空间ID,粘贴复制过来即可。shared-configs:- data-id: nacos0926.yaml #Data ID,粘贴复制过来即可。group: DEFAULT_GROUP #Group 粘贴复制过来即可。- data-id: nacos0926copy.yaml #Data ID,粘贴复制过来即可。group: DEFAULT_GROUP #Group 粘贴复制过来即可。inetutils:preferred-networks: 192.168.56 # IP 粘贴复制过来即可。
重新启动项目
2.8 再次访问页面
总结
本文讲述了:
Nacos:实现微服务架构中的服务发现、配置管理
在下攸攸太上,最近疯狂发文章,只是为了得到一周九篇才能拿到的劳模勋章