Nacos记录

Nacos

Nacos 可以发现、配置和管理微服务。它提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 可以更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

1 Nacos?

服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:

2 功能

2.1 动态配置服务

动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。

2.2 服务发现及管理

动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。

2.3 动态DNS服务

通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

3 windows单机

1、修改nacos-server-xxx的bin目录下的startup.cmd

set MODE="standalone"

2、修改config目录下的application.properties文件数据库连接的内容

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://node2:3306/db_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=MyNewPass4!

3、新建库db_nacos,将config目录下的nacos-mysql.sql脚本文件导入该库

4、启动bin目录下的startup.cmd

5、登录http://localhost:8848/nacos,默认账号密码都是nacos

4 nacos管理平台新建配置

1、管理平台配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FjI4NYia-1633702792139)(nacos%E8%AE%B0%E5%BD%95/image-20211008200514518.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMkCRfYx-1633702792142)(nacos%E8%AE%B0%E5%BD%95/image-20211008200346529.png)]

2、项目内部bootstrap.properties文件配置

spring.application.name=nacos_config_test
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.name=nacos_config.properties

3、远程配置中心(nacos管理平台)的优先级比配置文件优先级高(项目配置文件)

5 数据模型

5.1 定义

1、Nacos数据模型key(DataID)是由三元组唯一确定,分别是:Namespace(默认是空串)、公共命名空间(public)、分组默认是DEFAULT_GROUP

所以如果dataId取名相同,但组名不同,那也是不同的

5.2 新建命名空间

上文所提,每个命名空间就是一层维度,后续在项目配置文件中指定命名空间即可

spring.application.name=nacos_config_test
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=f6bdfa3a-aa29-49b3-a567-ccc2ddeaabbd
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.name=nacos_config.properties

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7fuajJ5u-1633702792143)(nacos%E8%AE%B0%E5%BD%95/image-20211008202200698.png)]

6 多配置集

抽取公共配置,对应nacos管理平台中具体命名空间下的对应配置,所以后面直接修改nacos端的配置,其他端会自动更新,解耦维护方便

spring.application.name=nacos_config_test
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=f6bdfa3a-aa29-49b3-a567-ccc2ddeaabbd
#spring.cloud.nacos.config.group=DEFAULT_GROUP
#spring.cloud.nacos.config.name=nacos_config.properties

spring.cloud.nacos.config.extension-configs[0].data-id=mysql_common.properties
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=redis_common.properties
spring.cloud.nacos.config.extension-configs[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].data-id=crm.properties
spring.cloud.nacos.config.extension-configs[2].group=CRM_GROUP
spring.cloud.nacos.config.extension-configs[2].refresh=true

spring.cloud.nacos.config.extension-configs[3].data-id=oa.properties
spring.cloud.nacos.config.extension-configs[3].group=OA_GROUP
spring.cloud.nacos.config.extension-configs[3].refresh=true

7 其他功能

7.1 导入导出

导出配置是一个zip包,里面其实就是配置的文件[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RLWvPFyK-1633702792145)(nacos%E8%AE%B0%E5%BD%95/image-20211008204002152.png)]

7.2 克隆

类似导入导出功能,但是不用中转直接克隆

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ynJT1Edv-1633702792145)(nacos%E8%AE%B0%E5%BD%95/image-20211008204326098.png)]

7.3 历史版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEUxdi3a-1633702792146)(nacos%E8%AE%B0%E5%BD%95/image-20211008204615002.png)]

7.4 监听

监控查看客户端是否掉线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nVHMh72Z-1633702792147)(nacos%E8%AE%B0%E5%BD%95/image-20211008204910587.png)]

8 服务注册与发现

8.1 定义

分布式的微服务项目中各个模块会去访问其他模块的项目。互相调用,就需要一个nacos中间者获取所有模块项目的地址和端口,以便于互相访问

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KYA67Y4L-1633702792148)(nacos%E8%AE%B0%E5%BD%95/image-20211008210943106.png)]

8.2 实现

1、新建application.yml

server:
 port: 8082
 servlet:
   context-path: /

spring:
 application:
   name: nacos-order
 cloud:
   nacos:
     discovery:
       server-addr: 127.0.0.1:8848

2、启动服务

@SpringBootApplication
@EnableDiscoveryClient //让注册中心发现
public class NacosOrderApplication {
   public static void main(String[] args){
       SpringApplication.run(NacosOrderApplication.class,args);
   }
}

3、查看nacos平台是否有服务[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yBsthrw-1633702792148)(nacos%E8%AE%B0%E5%BD%95/image-20211008212003888.png)]

4、案例

//库存模块
@RestController
@RequestMapping("/stock")
public class StockController {

   @RequestMapping("/test")
   public String test(String info) {
       return "库存模块接收到的信息:" + info;
   }
}
//fegin接口
@FeignClient("nacos-stock")
public interface StockfeignService {

   @RequestMapping("/stock/test")
   public String test(@RequestParam("info") String info);

}
//订单模块
@RestController
@RequestMapping("/order")
public class OrderController {

   @Autowired
   private StockfeignService stockfeignService;

   @RequestMapping("/test")
   public String test(){
       return stockfeignService.test("youpei");
   }

}

启动服务,访问http://localhost:8082/order/test,返回库存模块接收到的信息:youpei

8.3 负载均衡

如果多实例,比如上面的多个库存实例,其他配置不怎么变化,那就会轮询访问test,以便达到负载均衡的目的,查看服务可以看到,也可以配置权重

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m8LPZcAe-1633702792149)(nacos%E8%AE%B0%E5%BD%95/image-20211008214717571.png)]

9 服务领域模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kah7WNgd-1633702792149)(nacos%E8%AE%B0%E5%BD%95/image-20211008215538234.png)]

实例:

配置文件配置,主要是namespace和cluster-name

server:
 port: 8088
 servlet:
   context-path: /

spring:
 application:
   name: nacos-stock
 cloud:
   nacos:
     discovery:
       server-addr: 127.0.0.1:8848
       namespace: f6bdfa3a-aa29-49b3-a567-ccc2ddeaabbd
       cluster-name: znv

10 集群

1、修改启动脚本中配置,改为集群模式

set MODE="cluster"

2、nacos程序文件复制三分,端口分别搞成 8848,8849 , 8850

3、设置IP:nacos.inetutils.ip-address=127.0.0.1(部署服务器要局域网ip)

4、cluster.conf.example改成cluster.conf,并修改cluster.conf中的ip列表

127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850

5、启动三个nacos服务,刷新web端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GeKwp3rS-1633702792150)(nacos%E8%AE%B0%E5%BD%95/image-20211008221259347.png)]

nacos集群的作用主要在于高可用,即使三个两个都挂,都可正常使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友培

数据皆开源!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值