当前位置: 首页 > news >正文

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:实现微服务架构中的服务发现、配置管理
在下攸攸太上,最近疯狂发文章,只是为了得到一周九篇才能拿到的劳模勋章

http://www.lryc.cn/news/447665.html

相关文章:

  • 后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0926)
  • 验收测试:从需求到交付的全程把控!
  • 第十七节 鼠标的操作与相应
  • 深圳·2025胶粘剂展会 BOND第六届胶展
  • 什么是网络安全自动化以及优势与挑战
  • java中的ArrayList和LinkedList的底层剖析
  • 占领矩阵-第15届蓝桥省赛Scratch中级组真题第5题
  • [论文笔记] Chain-of-Thought Reasoning without Prompting
  • C++八股进阶
  • 渗透测试--文件上传常用绕过方式
  • 音视频生态下Unity3D和虚幻引擎(Unreal Engine)的区别
  • 搭建基于H.265编码的RTSP推流云服务器
  • C++20 std::format
  • Python基础知识 (九)os模块、异常、异常的传递性
  • 鸿蒙手势交互(三:组合手势)
  • 【计算机方向】中科院二区TOP神刊!国人发文友好,刊文量高,录用容易!
  • Stable Diffusion 保姆级教程
  • 踩坑记录:adb修改settings数据库ContentObserver无回调
  • JAVA毕业设计183—基于Java+Springboot+vue的旅游小程序系统(源代码+数据库)
  • [大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26
  • WiFi无线连接管理安卓设备工具:WiFiADB
  • Django项目配置日志
  • 在IntelliJ IDEA中设置文件自动定位
  • 机器学习笔记 - week6 -(十一、机器学习系统的设计)
  • 对c语言中的指针进行深入全面的解析
  • xxl-job 适配达梦数据库
  • Linux 配置与管理 SWAP(虚拟内存)
  • yolo自动化项目实例解析(七)自建UI--工具栏选项
  • 贝锐洋葱头浏览器随时随地访问教务系统,轻松搞定选课
  • django drf to_internal_value