Spring Cloud Alibaba教程 第一弹 Nacos服务发现
写在前面的话
更多Spring与微服务相关的教程请戳这里 火力全开系列 Spring与微服务教程合集 持续更新
1、服务注册与发现
- 服务发现是微服务架构体系中最关键的组件之一。
- 如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。
- Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。
- 除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host、port、健康检查URL、主页等注册到 Nacos
Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:
- Kubernetes Service
- gRPC & Dubbo RPC Service
- Spring Cloud RESTful Service
2、Nacos安装部署
Nacos支持三种部署模式
- 单机模式 - 用于测试和单机试用。
- 集群模式 - 用于生产环境,确保高可用。
- 多集群模式 - 用于多数据中心场景。
下面主要介绍单机模式部署
首先,下载Nacos压缩包,然后解压
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持外部mysql数据源能力,具体步骤如下:
- 初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
修改conf/application.properties文件
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc//11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql
双击执行bin/startup.cmd,即可启动nacos
启动成功后,访问http://localhost:8848/nacos,默认的用户名与密码是nacos
3、服务注册
pom依赖
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR4</spring-cloud.version>
<spring.cloud.alibaba.version>2.0.2.RELEASE</spring.cloud.alibaba.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-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<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>
spring-cloud-starter-alibaba-nacos-discovery 在实现的时候提供了一个EndPoint,EndPoint的访问地址为 http://ip:port/actuator/nacos-discovery
。 EndPoint 的信息主要提供了两类:
subscribe: 显示了当前有哪些服务订阅者
NacosDiscoveryProperties: 显示了当前服务实例关于 Nacos 的基础配置
配置文件
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
management:
endpoints:
web:
exposure:
include: '*'
服务启动成功后,访问Nacos UI的服务列表,查询服务是否已经注册上
Nacos client的更多配置如下:
配置项 | Key | 默认值 | 说明 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
还没有评论,来说两句吧...