本地服务注册不上nacos_微服务注册与发现Nacos

概念

Nacos是阿里巴巴最新开源的项目,核心定位是“一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台”,

Nacos核心提供两个功能:服务注册与发现,动态配置管理。

1、服务注册与发现

Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注册与发现,也支持RPC如dubbo的服务注册与发现。

与Dubbo使用的zookeeper相比而言,两者差异还是比较大的,zookeeper是一种分布式的协调服务,它天生是作为分布式数据一致性场景下的解决方案,所以zookeeper是CP的,它牺牲了可用性来保证一致性,在极端情况下(master选举期间)服务会对外停止,对于服务可用性要求比较高的系统是难以接受的。Nacos是一种去中心化的架构,属于CAP理论里的AP架构,支持最终一致性,在分布式服务发现与注册场景下具有很不错的性能。目前dubbo官方也支持使用Nacos代替zookeeper。

2、动态配置服务

动态修改配置并实时生效对于服务端的同学而已并不陌生,这种服务能够让我们的服务拥有更多的灵活性,不需要重启服务即可做到配置实时生效,非常适合于“配置优先”的服务开发。

实现原理:

现在很多框架和中间件都借鉴了annotation-driven的思想,这里面也不例外,通过注解驱动,来配置对应的注解处理器来实现对应的需求。

部署

Nacos支持集群和单机部署两种方式,单机部署适合于开发调试,集群部署使用生产环境。

1、单机部署的时候默认会采用内置的mysql存储Nacos云信息,如果想切换到自己本地的开发数据库,在conf/applicaition.properties文件增加以下配置:

下载官方包解压后,也可以再conf文件中找到初始化脚本例子。

2、集群部署适用于生产环境,对于生产环境是不建议使用内置mysql数据库,需要配置成生产环境的mysql,并且mysql环境必须是高可用配置的,防止生产环境数据库异常导致Nacos集群异常。

3、集群部署的时候,需要一台台启动集群,并确保日志输出无异常,检查集群所有机器都启动正常后再进行服务的注册发布。

4、应用发布使用方在配置服务发现地址的时候,需要按照”域名:端口“,或者”ip:端口“的方式配置,对于需要使用https的服务,需要在服务发现与注册使用方在启动脚本里面配置环境变量以开启https服务,即增加 ”-Dtls.enable=true“配置。

可以下载:源码安装

也可以通过Pom引入到工程中:

默认端口:8848(珠穆朗玛峰高度)

客户端:

修改 bootstrap.yml 注意:必须是写在 bootstrap.yml 中,配置在 application.yml 中不行,启动报错:原因如下:

name: @artifactId@ 是POM中的 upms-biz

nacos集群

两个方案第一种 通过一个VIP

生产环境中部署nacos首先肯定是使用集群模式cluster保证高可用。

nacos 官方推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

1. http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

2. http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。

3. http://xxx.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式

注意:这里的VIP直接使用 Nginx就可以实现了。

官方建议至少3个或3个以上的节点来实现

集群模式

修改集群配置

nacos

的conf目录下有配置文件

cluster.conf

,请每行配置成

ip:port

。下面的IP最好三台机器,不同IP

192.168.10.200:8851

192.168.10.200:8849

192.168.10.200:8850

集群模式必须使用

MySQL

数据库,生产使用建议至少

主备模式

,或者采用

高可用数据库

Nginx配置

修改conf/nginx.conf配置

upstream nacos {

server 192.168.28.130:8851;

server 192.168.28.130:8849;

server 192.168.28.130:8850;

}

server {

listen 80;

server_name nacos.config.com;

location / {

proxy_pass http://nacos;

}

}

配置域名nacos.config.com绑定

VIP

这时候一个leader和两个follower的集群已经启动成。

第二种集群

域名的方式比较麻烦,暂不考虑。vip 的方式也稍稍麻烦。 这里我使用 nginx 的方式,不用VIP

upstream nacos {

server 127.0.0.1:8848;

server 127.0.0.1:8849;

server 127.0.0.1:8850;

}

server {

listen 80;

server_name localhost;

location /nacos/ {

proxy_pass http://nacos/nacos/;

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值