Nacos

confd + Nacos | 无代码侵入的配置变更管理

不羁岁月 提交于 2019-11-28 19:46:33
为什么要支持 confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启。一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的 SDK 来查询和监听数据的变更。对于一些已经成熟的系统来说,接入 SDK 来实现动态配置管理是很难实现的, Nacos 通过引入配置管理工具 confd 可以实现系统的配置变更做到无代码侵入性。 confd 是一个轻量级的配置管理工具,可以通过查询后端存储系统来实现第三方系统的动态配置管理,如 Nginx、Tomcat、hHaproxy、Docker 配置等。 confd 目前支持的后端有 etcd、Zookeeper 等,Nacos 1.1 版本通过对 confd 定制支持 Nacos 作为后端存储。 confd 能够查询和监听后端系统的数据变更,结合配置模版引擎动态更新本地配置文件,保持和后端系统的数据一致,并且能够执行命令或者脚本实现系统的 reload 或者重启。 安装 confd 插件 confd 的安装可以通过源码安装方式,confd 基于 Go 语言编写,其编译安装依赖 Go,首先需要确保本地安装了 Go,版本不低于v1.10 创建 confd 目录,下载 confd 源码,编译生成可执行文件 mkdir -p $GOPATH/src/github.com/kelseyhightower

Spring Cloud Alibaba系列教程-03-搭建生产可用的Nacos集群

∥☆過路亽.° 提交于 2019-11-28 15:09:53
Spring Cloud Alibaba系列教程-01-Nacos安装与启停 一节, 已搭建一个单实例Nacos——它使用内嵌数据库Derby,这显然不适用于生产。 本节详细探讨如何搭建一个生产可用的Nacos集群。讨论的内容主要包括:使用MySQL作为存储持久化数据,以及如何搭建Nacos集群。 安装MySQL数据库 生产环境需使用MySQL作为后端存储,因此需要搭建MySQL。生产中,MySQL建议至少主备模式,高可用MySQL更佳。 高可用MySQL的搭建可参考: https://blog.csdn.net/jx_jy/article/details/80165584 注意:Nacos支持的MySQL版本为:5.6.5+ 导入初始化脚本 找到 conf/nacos-mysql.sql ,将其导入到数据库中。 配置数据库连接 找到 conf/application.properties ,添加如下内容: # 表明用MySQL作为后端存储 spring.datasource.platform=mysql db.num=1 # MySQL JDBC地址 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000

Spring Cloud Alibaba基础教程:使用Nacos作为配置中心

☆樱花仙子☆ 提交于 2019-11-27 16:37:47
通过本教程的前两篇: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 《Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)》 我们已经学会了,如何利用Nacos实现服务的注册与发现。同时,也介绍了在Spring Cloud中,我们可以使用的几种不同编码风格的服务消费方式。接下来,我们再来一起学习一下Nacos的另外一个重要能力:配置管理。 简介 Nacos除了实现了服务的注册发现之外,还将配置中心功能整合在了一起。通过Nacos的配置管理功能,我们可以将整个架构体系内的所有配置都集中在Nacos中存储。这样做的好处,在以往的教程中介绍Spring Cloud Config时也有提到,主要有以下几点: 分离的多环境配置,可以更灵活的管理权限,安全性更高 应用程序的打包更为纯粹,以实现一次打包,多处运行的特点( 《云原声应用的12要素》之一 ) Nacos的配置管理模型与淘宝开源的配置中心Diamond类似,基础层面都通过 DataId 和 Group 来定位配置内容,除此之外还增加了很多其他的管理功能。 快速入门 下面我们通过一个简单的例子来介绍如何在Nacos中创建配置内容以及如何在Spring Cloud应用中加载Nacos的配置信息。 创建配置 第一步

Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)

前提是你 提交于 2019-11-27 16:37:07
通过 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求。但是这样的做法需要我们手工的去编写服务选取、链接拼接等繁琐的工作,对于开发人员来说非常的不友好。所以接下来,我们再来看看除此之外,还支持哪些其他的服务消费方式。 使用RestTemplate 在之前的例子中,已经使用过 RestTemplate 来向服务的某个具体实例发起HTTP请求,但是具体的请求路径是通过拼接完成的,对于开发体验并不好。但是,实际上,在Spring Cloud中对RestTemplate做了增强,只需要稍加配置,就能简化之前的调用方式。 比如: @EnableDiscoveryClient @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Slf4j @RestController static class TestController {

Spring Cloud Alibaba基础教程:Nacos的集群部署

大憨熊 提交于 2019-11-27 10:01:53
前情回顾: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》 《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》 《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》 《Spring Cloud Alibaba基础教程:Nacos配置的多环境管理》 《Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置》 《Spring Cloud Alibaba基础教程:Nacos的数据持久化》 继续说说生产环境的Nacos搭建,通过上一篇 《Spring Cloud Alibaba基础教程:Nacos的数据持久化》 的介绍,我们已经知道Nacos对配置信息的存储原理,在集群搭建的时候,必须要使用集中化存储,比如:MySQL存储。下面顺着上一篇的内容,继续下一去。通过本文,我们将完成Nacos生产环境的搭建。 集群搭建 根据官方文档的介绍,Nacos的集群架构大致如下图所示(省略了集中化存储信息的MySQL): 下面我们就来一步步的介绍,我们每一步的搭建细节。 MySQL数据源配置 对于数据源的修改,在上一篇 《Nacos的数据持久》 中已经说明缘由,如果还不了解的话

Spring Cloud Alibaba系列教程-01-Nacos安装与启停

别等时光非礼了梦想. 提交于 2019-11-27 10:01:15
1月前后开始为Spring Cloud Alibaba系列博客攒稿,成果如下图所示,今天开始发布。 如图的排序可能还不是很合理,发布之前会再整理下,尽量降低学习曲线,给读者提供一个更佳舒适的学习体验。 之前的Spring Cloud系列也会继续连载。 更新节奏:Spring Cloud系列每周至少2篇,Spring Cloud Alibaba系列每周至少1篇。 放心,两个系列都不会烂尾的。 Nacos 是阿里开源的易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 通俗来说,Nacos是一个注册中心& 配置中心 ——作为注册中心,Nacos可用于替代Spring Cloud中的Eureka、Spring Cloud Zookeeper Discovery、Spring Cloud Consul Discovery;作为配置中心,Nacos可用于替代Spring Cloud Config、Spring Cloud Zookeper Config、Spring Cloud Consul Config。 TIPS: 其实从Nacos命名的由来: Dynamic Naming and Configuration Service

Spring Cloud Alibaba基础教程:Nacos 生产级版本 0.8.0

时光总嘲笑我的痴心妄想 提交于 2019-11-27 10:00:47
昨晚Nacos社区发布了第一个生产级版本:0.8.0。由于该版本除了Bug修复之外,还提供了几个生产管理非常重要的特性,所以觉得还是有必要写一篇讲讲这次升级,在后续的文章中也都将以0.8.0版本为基础。 升级的理由 如Nacos官方的发布文档中描述的那样,本版本将支持非常重要的三个特性: 第一,用户登录 。在过去版本的Nacos中,用户是可以直接访问Nacos的页面的,我们需要通过网络或者代理手段来增加这样的安全性控制,在该版本后就不需要了。 第二:Prometheus的支持 。对于一个基础中间件来说,完善的监控指标输出在生产环境是必须的,通过在 /prometheus 端点上暴露监控指标,以保障Nacos集群的正常服务。 第三:Namespace的支持 。服务发现的功能将支持Namespace的隔离,可以方便的在一套Nacos集群下,实现多环境服务发现的隔离等。 发布清单可见文末参考资料。这些重要功能的具体使用,后续继续连载,敬请期待! 安装与使用 如果之前有看过 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 的话,只需要将Nacos安装部分把安装包替换成 0.8.0 版本即可。 下载地址: https://github.com/alibaba/nacos/releases/download/0.8.0/nacos-server-0.8

公益:开放一台Nacos服务端给各位Spring Cloud爱好者

眉间皱痕 提交于 2019-11-27 02:49:07
之前开放过一台公益 Eureka Server 给大家,以方便大家在阅读我博客中教程时候做实验。由于目前在连载Spring Cloud Alibaba,所以对应的也部署了一台Nacos,并且也开放出来,给大家学习测试之用。 Nacos控制台 地址: http://nacos.didispace.com/nacos/index.html 账户与密码均为:nacos 客户端使用配置 使用注册中心服务: spring.cloud.nacos.discovery.server-addr=nacos.didispace.com:80 使用配置中心服务: spring.cloud.nacos.config.server-addr=nacos.didispace.com:80 Spring Cloud Alibaba系列专题 下面是当前已经发布的内容,后续内容也将基于Spring Cloud Alibaba 0.2.2进行。 Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现 Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign) Spring Cloud Alibaba基础教程:使用Nacos作为配置中心 Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解

Spring Cloud Alibaba基础教程:Nacos的数据持久化

拈花ヽ惹草 提交于 2019-11-26 21:58:23
前情回顾: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》 《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》 《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》 《Spring Cloud Alibaba基础教程:Nacos配置的多环境管理》 《Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置》 通过之前几篇关于Nacos的博文,对于Nacos分别作为服务注册中心以及配置中心时,与Spring Cloud体系结合的基础使用方法已经介绍完毕了。下面我们再用几篇博文从生产部署的角度,介绍Nacos的相关内容。本文我们将具体说说Nacos的数据存储以及生产配置的推荐。 数据持久化 在之前的教程中,我们对于Nacos服务端自身并没有做过什么特殊的配置,一切均以默认的单机模式运行,完成了上述所有功能的学习。但是,Nacos的单机运行模式仅适用于学习与测试环境,对于有高可用要求的生产环境显然是不合适的。那么,我们是否可以直接启动多个单机模式的Nacos,然后客户端指定多个Nacos节点就可以实现高可用吗?答案是否定的。 在搭建Nacos集群之前

Spring Cloud Alibaba到底坑不坑?

£可爱£侵袭症+ 提交于 2019-11-26 21:58:10
之前我发过一篇 《说说我为什么看好Spring Cloud Alibaba》 ,然后这两天有网友给我转了这篇文章 《坑爹项目spring-cloud-alibaba,我们也来一个》 ,问我的看法是怎么样的,聊天时候简单说了一下。今天在家休息,抽空整理一下内容,逐点说一下我的看法,主要还是觉得这篇文章博眼球的成分高一些,因为这篇文章的解读与之前其他某些自媒体发布的《Eureka 2.0 开源工作宣告停止,继续使用风险自负》一文有异曲同工之“妙”,如果读者没有真正的理解Spring Cloud与Spring Cloud Alibaba,就很有可能会对它们有什么误解,然后产生这样的想法: 感觉很有道理,这东西真垃圾 标题很燃,必须转发 下面具体来说说该文章中,那些我认为不太正确的解读: 第一点:远程调用RPC 看看这篇文章的解读: SpringCloud默认的是Feign和Ribbon,主要是提供了远程调用请求和解析,以及负载均衡的功能。客观点来说,如果不用这两个组件,就会越来越四不像,干脆也别叫SpringCloud了,所以替换不得。 RPC会大量使用动态代理的功能,将你的字符串或者配置(因为网络传输方便)搞成动态的接口。 你也可以写一个RPC进行集成,有很多教程教你手撸一个。 爸爸版的集成了个dubbo,dubbo就是个RPC。所以你一用这玩意,其他的一些关键组件也得跟着全套的换