1.场景描述

因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的springcloud的eureka作为注册中心(springcloud-高可用部署),与eurka相比,这次之所以用阿里的nacos,其中还有一个主要的原因就是nacos集成了动态加载,不用重启网关,动态加载服务配置等。

注册中心对比:

Feature

Zookeeper

Eureka

Consul

Etcd

Nacos

服务健康检查

(弱)长连接,keepalive

可配支持

服务状态,内存,硬盘等

连接心跳

心跳/自定义

多数据中心



支持


支持

kv存储服务

支持


支持

支持

支持

一致性

paxos


raft

raft

raft

CAP定理

CA

AP

CA

CP

AP

使用接口(多语言能力)

客户端

http(sidecar)

支持http和dns

http/grpc

dns/http/rpc

watch支持

支持

支持 long polling/大部分增量

全量/支持long polling

支持 long polling

全量/支持long polling

自身监控


metrics

metrics

metrics

metrics

安全

acl


acl /https

https支持(弱)

acl /https

Spring Cloud集成

已支持

已支持

已支持

已支持

已支持

推荐使用Nacos>Consul>Etcd>Eureka>Zookeeper

Nacos为springcloudalibaba全家桶组件,适合使用dubbo作为springcloud的rpc服务接入。

2. nacos简要介绍

nacos是阿里巴巴的开源项目,今年初发布的版本已经达到生产等级,有中文文档和英文文档,社区非常活跃。

关键特性:

微服务网关springmvc 微服务网关选型_微服务网关springmvc

有兴趣的童鞋可以去看下,官网地址:https://nacos.io/zh-cn/index.html

3.部署及说明

这几天把官网文档过了一遍,部署了个基础的demo版本,介绍下。

3.1 部署说明

软件老王用了6台虚拟机:

(1)11服务器,部署了springcloud gateway,对外统一提供服务;

(2)12和13服务器,部署了nacos,互为注册,可水平扩展,对外提供服务注册、配置注册等;

(3)14服务器,部署了producer(服务提供方),部署了两个实例;

(4)15服务器,部署了consumer(服务调用方,软件老王),部署了两个实例;

(5)16服务器,测试了下动态配置,可忽略;

3.2 架构图

微服务网关springmvc 微服务网关选型_服务器_02

3.3 架构图详细说明
3.3.1 nacos注册中心及配置中心。

nacos自带了控制台,访问地址:http://10.192.168.12:8848/nacos或者http://10.192.168.13:8848/nacos

用户名:nacos; 密码:nacos;

登录成功后如下图:

微服务网关springmvc 微服务网关选型_java_03

主要有三大功能:

(1)注册中心节点列表,这里显示的nacos注册中心,可水平扩展,部署多台,这里部署了两台,分别为12与13服务器。

(2)服务管理,启动了3个服务,分别为网关、服务提供者(2个实例)、服务消费者(2个实例)。

微服务网关springmvc 微服务网关选型_微服务网关springmvc_04

(3)配置管理,这里配置了两个,第一个是测试用的,测试了动态获取,第二个是11服务器上springcloud gate的配置文件。

微服务网关springmvc 微服务网关选型_java_05

3.3.2 访问说明

(1)Gateway访问地址:

http://10.192.168.11:7000/producer/getpinfo

说明:10.192.168.11:7000为网关地址,producer为注册中心服务名称,getpinfo为具体服务。

(2)服务提供者地址:

http://10.192.168.14:7001/getpinfo,http:/10.192.1681.14:7001/getpinfo,
15的服务调用方,就是通过rest调用,跟直接从网关调用一样,软件老王就不啰嗦了。

(3)nacos地址:

http://10.192.168.12:8848/nacos,http:/10.192.1681.13:8848/nacos
3.4 写在最后

目前nacos还处于快速迭代阶段,不管是版本还是功能都还稍微有点乱,毕竟去年才开源,还是有些坑要踩的,软件老王认为还是要一颗红心两手准备的。


I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!