微服务实战系列(四)-注册中心springcloud alibaba nacos
1.场景描述
因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的springcloud的eureka作为注册中心,与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是阿里巴巴的开源项目,今年初发布的版本已经达到生产等级,有中文文档和英文文档,社区非常活跃。
关键特性:

有兴趣的童鞋可以去看下,官网地址: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 架构图

3.3 架构图详细说明
3.3.1 nacos注册中心及配置中心。
nacos自带了控制台,访问地址:http://10.192.168.12:8848/nacos或者http://10.192.168.13:8848/nacos
用户名:nacos; 密码:nacos;
登录成功后如下图:

主要有三大功能:
(1)注册中心节点列表,这里显示的nacos注册中心,可水平扩展,部署多台,这里部署了两台,分别为12与13服务器。
(2)服务管理,启动了3个服务,分别为网关、服务提供者(2个实例)、服务消费者(2个实例)。

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

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还处于快速迭代阶段,不管是版本还是功能都还稍微有点乱,还是有些坑要踩的,软件老王认为还是要一颗红心两手准备的。
更多知识请关注公众号:「软件老王」,IT技术与相关干货分享,回复关键字获取对应干货,java,送必看的10本“武功秘籍”;图片,送100多万张可商用高清图片;面试,送刚毕业就能月薪“20k”的java面试题,软考,送官方pdf书籍与通关论文,后续会不断更新,比如“工具”,“视频“等,已经在整理中。
微服务实战系列(四)-注册中心springcloud alibaba nacos的更多相关文章
- 微服务实战(四):服务发现的可行方案以及实践案例 - DockOne.io
原文:微服务实战(四):服务发现的可行方案以及实践案例 - DockOne.io 这是关于使用微服务架构创建应用系列的第四篇文章.第一篇介绍了微服务架构的模式,讨论了使用微服务架构的优缺点.第二和第三 ...
- 微服务实战系列--Nginx官网发布(转)
这是Nginx官网写的一个系列,共七篇文章,如下 Introduction to Microservices (this article) Building Microservices: Using ...
- go-zero微服务实战系列(三、API定义和表结构设计)
前两篇文章分别介绍了本系列文章的背景以及根据业务职能对商城系统做了服务的拆分,其中每个服务又可分为如下三类: api服务 - BFF层,对外提供HTTP接口 rpc服务 - 内部依赖的微服务,实现单一 ...
- go-zero微服务实战系列(十一、大结局)
本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...
- Chris Richardson微服务实战系列
微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...
- ASP.NET Core微服务实战系列
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. 前言 这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想 ...
- 微服务实战系列(二)-注册中心Springcloud Eureka客户端
1. 场景描述 前几天介绍了下springcloud的Eureka注册中心(springcloud-注册中心快速构建),今天结合springboot-web介绍下eureka客户端服务注册. 2. 解 ...
- 微服务实战系列(五)-注册中心Eureka与nacos区别
1. 场景描述 nacos最近用的比较多,介绍下nacos及部署吧,刚看了下以前写过类似的,不过没写如何部署及与eureka区别,只展示了效果,补补吧. 2.解决方案 2.1 nacos与eureka ...
- 微服务实战系列(六)-网关springcloud zuul
1. 场景描述 今天接着介绍springcloud,今天介绍下springcloud的路由网关-Zuul,外围系统或者用户通过网关访问服务,网关通过注册中心找到对应提供服务的客户端,网关也需要到注册中 ...
随机推荐
- 问卷星导入数据到SPSS,数据变成-3是什么原因?
问卷星将数字“-3”表示为筛选或者跳转题:如果问卷中有设计筛选或者跳转,此时则会出现“-3”这个数字. 解决办法1 分析时首先进行筛选,然后再分析,便不会出现“-3”,而且一定需要这样进行.“筛选样本 ...
- 前端系列-CS与BS的区别
现在的系统架构有B/S与C/S之分. C/S,即Client/Server(客户端/服务器).我们一般使用的软件架构都是C/S架构,比如各个系统版本中的软件如qq管家.腾讯qq.office等.C/S ...
- SEO工程师考试题目
http://www.wocaoseo.com/thread-201-1-1.html SEO,全名Search Engine Optimization,其中文名字为'搜索引擎优化' .其英 ...
- 设计模式C++模板(Template)模式
设计模式C++描述----02.模板(Template)模式(转载) 一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现, ...
- .NET Core3.1 Dotnetty实战第二章
一.概要 在上一篇文章讲到Dotnetty的基本认识,本文这次会讲解dotnetty非常核心的模块是属于比较硬核的干货了,然后继续往下讲解如何根据自己的需求或者自己的喜好去配置Dotnetty而不是生 ...
- MySQL 字符类型
字符类型 MySQL提供了多种关于字符存储的类型,但是在大多数情况下我们只使用char和varchar即可 类型 大小 用途 CHAR 0-255字节 定长字符串 VARCHAR 0-65535 字节 ...
- Vue开源项目使用探索
前言 本文记录一次使用Vue开源项目的过程. 寻找Vue开源项目 要使用Vue开源项目就必须先找到一个,我们去Github上搜索[后台],然后使用Vue分类进行检索,找到排名第一的开源框架进行下载—v ...
- Matrix4x4
Unity3D开发之Matrix4x4矩阵变换 https://www.cnblogs.com/hewei2012/p/4190282.html Matrix4x4 4x4矩阵 http://wiki ...
- gson 处理null
1.定义null处理类 class StringConverter : JsonSerializer<String?>, JsonDeserializer<String?> { ...
- unity坑-编译错误
问题: 项目里面有一个 StreamReader来读取一个文件,使用OpenText() 方法. 但是UNITY却提示 StreamReader类不包含OpenText()方法,并且也没有找到扩展方法 ...