Spring Cloud Alibaba 微服务----------Nacos
目录
1、Nacos注册中心
1.1、nacos的安装和启动
1.1.1、解压
1.2.2、启动和关闭
1.2、Nacos注册中心
1.2.1、服务提供者: nacos_provide
1.2.2、服务消费者:nacos_consumer
1.3、为什么要使用注册中心
2、Nacos配置中心
2.1、nacos——config
2.1.1、pom.xml
2.1.2、 bootstrap.yml
2.1.3、在nacos中创建配置文件
2.2、为什么要使用配置中心
2.3、隔离模型
2.3.1、Namespace Group DataId介绍:
2.3.2、获取配置集需要指定:
3、持久化
3.1、修改conf/application.properties文件
3.2、建库建表
4、集群
4.1、节点规划
4.2、集群搭建
4.2.1、找到conf/cluster.conf.example ,将其改名为 conf/cluster.conf
4.2.2、复制三份Nacos
4.2.3、将 conf/application.properties 中的端口号分别改为:
4.3、配置代理服务
1、Nacos注册中心
1.1、nacos的安装和启动
1.1.1、解压
[root@localhost ~]# cd /usr/upload
[root@localhost upload]# tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local
1.2.2、启动和关闭
启动:
[root@localhost local]# cd nacos/bin/
[root@localhost bin]# ./startup.sh -m standalone #非集群模式启动
关闭:
[root@localhost bin]# ./shutdown.sh
1.2、Nacos注册中心
注册中心主要有三部分组成:
Ø Nacos-Server:注册中心
提供服务的注册和发现。
Ø Nacos-Provider:服务提供方
把自身的服务实例注册到 Nacos Server 中
Ø Nacos-Consumer:服务调用方
通过 Nacos Server 获取服务列表,消费服务。
1.2.1、服务提供者: nacos_provide
1、 pom.xml文件
<!--nacos客户端--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
2、 application.yml
spring:cloud:nacos:discovery:server-addr: 192.168.216.133:8848 #nacos服务的地址application:name: nacos-provider #向注册中心注册的名字
3App(启动类)
@SpringBootApplication
@EnableDiscoveryClient//向注册中心注册该服务,并可以获取其他服务的调用地址
public class ProviderApp {public static void main(String[] args) {SpringApplication.run(ProviderApp.class,args);}
}
1.2.2、服务消费者:nacos_consumer
1、pom.xml
<!--nacos客户端--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
2、application.yml
spring:cloud:nacos:discovery:server-addr: 192.168.216.133:8848 #nacos服务的地址application:name: nacos-consumer #向注册中心注册的名字
3.App
@SpringBootApplication
@EnableDiscoveryClient//向注册中心注册该服务,并可以获取其他服务的调用地址
public class ConsumerApp {public static void main(String[] args) {SpringApplication.run(ConsumerApp.class,args);}
}
1.3、为什么要使用注册中心
地址硬编码 不能负载均衡
2、Nacos配置中心
2.1、nacos——config
2.1.1、pom.xml
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--nacos注册中心的启动器--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--nacos配置中心的启动器--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>ccom.zzcsy</groupId><artifactId>springcloud_common</artifactId><version>1.0-SNAPSHOT</version></dependency>
2.1.2、 bootstrap.yml
spring:cloud:nacos:config:server-addr: 192.168.216.133:8848file-extension: yaml #后缀名,只支持 properties 和 yaml 类型prefix: nacos-config #文件名,如果没有配置则默认为 ${spring.appliction.name}
2.1.3、在nacos中创建配置文件
Data ID:
${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}
配置格式:yaml或properties
spring.cloud.nacos.config.prefix:默认是当前服务的服务名称
spring.cloud.nacos.config.file-extension:配置文件的格式(后缀),目前只支持yaml和properties
例如:
spring:cloud:nacos:config:server-addr: 192.168.216.133:8848 #配置中心的地址file-extension: yaml #配置文件扩展名只支持properties和yamlprefix: nacos-config #文件名,默认是spring.application.name
2.2、为什么要使用配置中心
- 集中管理配置文件
- 动态更新配置文件
2.3、隔离模型
2.3.1、Namespace Group DataId介绍:
- Namespace: 代表不同的环境的配置隔离 ,如:开发、测试、生产等
- Group: 可以代表某个项目,如health、JD
DataId: 每个项目下的工程名
2.3.2、获取配置集需要指定:
nacos服务地址,必须指定
namespace,如不指定默认public
group,如不指定默认 DEFAULT_GROUP
dataId,必须指定
3、持久化
3.1、修改conf/application.properties文件
### If use MySQL as datasource:
spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.216.130:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111
3.2、建库建表
创建nacos库 注意:库名和application.properties中的库名保持一致
建表:找到conf/nacos-mysql.sql文件并执行
测试
1、重启nacos
2、新建配置文件
3、观察配置文件是否持久化到mysql中
4、集群
4.1、节点规划
节点 | 端口 |
---|---|
192.168.204.156 | 8848 |
192.168.204.156 | 8849 |
192.168.204.156 | 8850 |
4.2、集群搭建
4.2.1、找到conf/cluster.conf.example ,将其改名为 conf/cluster.conf
# ip:port
192.168.216.133:8848
192.168.216.133:8849
192.168.216.133:8850
4.2.2、复制三份Nacos
[root@localhost bin]# cd /usr/local
[root@localhost java]# mkdir nacos_cluster
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8848
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8849
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8850
4.2.3、将 conf/application.properties
中的端口号分别改为:
server.port=8848
server.port=8849
server.port=8850
4.3、配置代理服务
- 安装ngnix
- 配置ngnix代理nacos
- 测试
- 启动nacos集群
- 启动ngnix
- 将微服务注册到nacos集群
- 访问nacos集群
Spring Cloud Alibaba 微服务----------Nacos相关推荐
- 从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (中)
本文承接上文<从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (上)> ...
- 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事
目录 1 写书缘由 2 本书上册核心内容 2.1 Spring Cloud Alibaba基础实战 2.1.1 主要内容 2.1.2 MyBatis-Plus实现多租户架构的核心原理 2.2 分布式服 ...
- Spring Cloud Alibaba 微服务开发实践
作者:禅与计算机程序设计艺术 1.简介 Spring Cloud Alibaba 是阿里巴巴开源的基于 Spring Cloud 的微服务框架.该项目从最初孵化到现在已经历经十多年的发展,得到了广泛的 ...
- 从0到1手把手搭建spring cloud alibaba 微服务大型应用框架(十五) swagger篇 : gateway 集成swagger 与 knife4j实现在线api文档并嵌入到自己项目内
背景 我们日常开发中基本都是协同开发的,当然极个别的项目整体前后端都是一个人开发的,当多人协作时,尤其是前后端人员协同开发时 必然会面临着前端需要了解后端api接口的情况,两个选择,提前设计好文档,然 ...
- 最新版Spring Cloud Alibaba微服务架构-Config配置中心篇
文章目录 前言 一.Config引入背景 1.文件相对分散 2.无法区分环境 3.无法实时更新 4.安全无法保证 二.Config引入配置 1.配置文件格式 1.1 命名空间(Namespace) 1 ...
- Spring Cloud Alibaba 微服务详细笔记
文章目录 SpringCloud 一.微服务概述 1.1.什么是微服务? 1.2.为什么是微服务? 1.3.架构演变 1.4.微服务的解决方案 二.什么是SpringCloud 2.1.官方定义 2. ...
- Spring Cloud Alibaba微服务组件快速上手
文章目录 Nacos 什么是Nacos Nacos的启动 将项目注册到Nacos 项目pom依赖 yaml配置 Nacos心跳机制 Dubbo 什么是RPC 什么是Dubbo Dubbo服务的注册与发 ...
- 开源,阿里内部Spring Cloud Alibaba微服务神仙文档(全彩版)
Spring Cloud Alibaba概述 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring C ...
- Spring Cloud Alibaba微服务项目中集成Redis实现分布式事务锁实践
引言 我们知道同一个进程里面为了解决资源共享而不出现高并发的问题可以通过高并发编程解决,通过给变量添加volatile关键字实现线程间变量可见:通过synchronized关键字修饰代码块.对象或者方 ...
最新文章
- nginx 带宽_Nginx优化配置,轻松应对十万并发
- DataTables中提示:DataTables warning: table id=example - Cannot reinitialise DataTable.
- 响应QML中的用户输入
- 技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络质量
- 厦门信息集团与EMC战略合作共建智慧厦门
- Linux从用户层到内核层系列 - GNU系列之glibc介绍
- 新版谷歌浏览器开启Flash支持,开启flash方法
- ios7禁止屏幕旋转,强制竖屏
- PC项目——vue 脚手架中实现阿里云人机滑动验证
- 关于强化神兽(圣兽)DBC参数详解
- 一维卷积(1D-CNN)、二维卷积(2D-CNN)、三维卷积(3D-CNN)
- base64字符串实现下载文件
- 世界顶级人像摄影大师作品欣赏
- C++ opencv 鼠标事件响应
- 基于jsp+mysql+ssm知了堂财务报账管理系统-计算机毕业设计
- 5g空分复用技术_首席科学家向际鹰:空分复用技术让中兴通讯5G领先一步
- SRPG Studio 教程(一) 创建游戏及引用素材
- QPI extend
- 姿态变换(一)——旋转矩阵
- CoOS使用教程——消息队列