概述
通过一个简单的示例来感受一下如何将服务注册到 Nacos,其实和 Eureka 没有太大差别。
案例
POM
创建一个工程名为 hello-spring-cloud-alibaba-nacos-provider
的服务提供者项目,pom.xml
配置如下:
1 |
|
Application、Controller
通过 @EnableDiscoveryClient
注解表明是一个 Nacos 客户端,该注解是 Spring Cloud 提供的原生注解。
1 | /** |
1 | /** |
application.yml
1 | spring: |
启动工程
通过浏览器访问 http://localhost:8848/nacos,即 Nacos Server 网址。
你会发现一个服务已经注册在服务中了,服务名为 nacos-provider。这时访问地址 http://localhost:8081/echo/hi ,你会在浏览器上看到:
1 | Hello Nacos Discovery hi |
访问地址 http://localhost:8081/instances ,你会在浏览器上看到:
1 | [ |
服务的端点检查
Actuator endpoints 可以让我们监控和与我们的应用(application)交互。Spring Boot actuator 包含了大量的内置 endpoints, 当然,我们也可以添加我们自己的。如何暴露端口取决与你采用的技术。大多数应用采用 HTTP 监控,这时 endpoint 的 ID 就映射为一个接口 URL。通过访问 http://ip:port/actuator,我们可以看到其自带内置的全部 endpoint。
1 | { |
具体详情,这里不做过多叙述,有兴趣的可自行查看官网。
本文中,主要讲述 spring-cloud-starter-alibaba-nacos-discovery
的使用,Actuator 也提供了一个 EndPoint, EndPoint 的访问地址为 http://ip:port/actuator/nacosdiscovery。 主要提供了两类信息:
- subscribe:显示了当前有哪些服务订阅者。
- NacosDiscoveryProperties:显示了当前服务实例关于 Nacos 的基础配置。
通过浏览器访问 http://localhost:8081/actuator/nacosdiscovery 你会在浏览器上看到:
1 | { |
关于 Nacos Discovery Starter 更多的配置项信息
配置项 | Key | 默认值 | 说明 |
---|---|---|---|
服务端地址 | spring.cloud .nacos.discovery .server-addr | Nacos Server 启动监听的ip地址和端口 | |
服务名 | spring.cloud .nacos.discovery .service | ${spring.application.name} | 注册的服务名 |
权重 | spring.cloud .nacos.discovery .weight | 1 | 取值范围 1 到 100,数值越大,权重越大 |
网卡名 | spring.cloud .nacos.discovery .network-interface | 当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址 | |
注册的IP地址 | spring.cloud .nacos.discovery .ip | 优先级最高 | |
注册的端口 | spring.cloud .nacos.discovery .port | -1 | 默认情况下不用配置,会自动探测 |
命名空间 | spring.cloud .nacos.discovery .namespace | 常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等 | |
AccessKey | spring.cloud .nacos.discovery .access-key | 当要上阿里云时,阿里云上面的一个云账号名 | |
SecretKey | spring.cloud .nacos.discovery .secret-key | 当要上阿里云时,阿里云上面的一个云账号密码 | |
Metadata | spring.cloud .nacos.discovery .metadata | 使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息 | |
日志文件名 | spring.cloud .nacos.discovery .log-name | ||
集群 | spring.cloud .nacos.discovery .cluster-name | DEFAULT | Nacos集群名称 |
接入点 | spring.cloud .nacos.discovery .endpoint | 地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址 | |
是否集成Ribbon | ribbon.nacos .enabled | true | 一般都设置成true即可 |
是否开启Nacos Watch | spring.cloud .nacos.discovery .watch.enabled | true | 可以设置成false来关闭 watch |
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !