Spring Cloud Alibaba
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式 应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 分布式应用服务
Nacos 注册中心
简介
Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速 实现动态服务发现、服务配置、服务元数据及流量管理
核心概念
-
服务 (Service)
服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客 户端可以为不同的目的重用(例如通过跨进程的网络调用)。
-
服务注册中心 (Service Registry)
服务注册中心,它是服务实例及元数据的数据库。服务实例在启动时注册到服务注册表,并在 关闭时注销。服务和路由器的客户端查询服务注册表以查找服务的可用实例。服务注册中心可 能会调用服务实例的健康检查 API 来验证它是否能够处理请求
-
服务元数据 (Service Metadata)
服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规 则、安全策略等描述服务的数据
-
服务提供方 (Service Provide)
是指提供可复用和可调用服务的应用方
-
服务消费方 (Service Consumer)
是指会发起对某个服务调用的应用方
-
配置 (Configuration)—配置文件中心
在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立 的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地 和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者 运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。
-
配置管理 (Configuration Management)
在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等 所有与配置相关的活动统称为配置管理。
-
名字服务 (Naming Service)
提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务
-
配置服务 (Configuration Service)
在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。
NacosServer的安装和启动
- 下载
地址: https://github.com/alibaba/nacos/releases/tag/1.4.2
-
修改配置文件
进入${Nacos}/conf 目录里面,使用文件编辑器打开 application.properties 文件
Nacos 默认使用嵌入式数据库实现数据的存储,并不方便观察数据存储的基本情况,这里面 我们修改为使用 Mysql 数据库做数据的存储,方便我们观察数据的结构。
在配置文件末尾添加如下配置:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1 000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
-
Mysql 表的导入
在 config 目录下找到对应的 sql 脚本,提示:Nacos 建议使用 5.7 的 Mysql 数据库,版本 较低或者较高可能存储兼容性问题
创建数据库,运行 sql 脚本
-
NacosServer 的启动
可以直接 startup.cmd -m standalone 启动单击版本 上面工作都完成后,现在我们来启动一个单机版的 Nacos 服务器。 进入到${Nacos}/bin 目录里面
使用 nodepad++打开 startup.cmd 修改默认参数 将 set MODE=”cluster”修改为 standalone
双击 startup.cmd 文件,完成 nacosServer 的启动
http://localhost:8848/nacos ,即可访问启动 Nacos 实例
Nacos 默认用户名和密码都是 nacos。 如果想修改密码,可以直接修改数据库的 user 表,密码可以使用 BcryptPasswordEncoder 加密
输入正确的用户名和密码提交后,出现 Nacos 的控制台界面
使用Nacos作为注册中心
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
修改配置文件
server:
port: 8001
spring:
application:
name: alibaba-nacos-consumer
cloud:
nacos: # 客户端注册的地址
server-addr: localhost:8848
username: nacos
password: nacos
# discovery: # 命名空间 可以做项目隔离
# namespace: car-namespace
# group: dev # 在命名空间下的组别,可以用来做细粒度的隔离
修改启动类
@SpringBootApplication
@EnableDiscoveryClient //开启服务发现客户端 也就是 nacosServer 的客户端
public class AlibabaNacosConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(AlibabaNacosConsumerApplication.class, args);
}
}
评论区