写在前面 Web服务开发过程中我们经常有这样的需求: 某些功能我必须我修改了配置才启用,比如新用户注册送券等: 某个功能需到特定的时间才启用,过后就失效,比如春节活动等: 某些功能,我想先对10%的用户开放,验证没问题后再逐步全量开放等: 这就是功能开关. 日常开发中功能开关我们一般是写到配置文件里的,根据不同的配置,做不同的逻辑:但,其实.net core是对功能开关有官方支持的,但因为跟Azure集成比较好所以文档不在.net core的文档里面,而是在Azure的文档这边: https:/…
写在前面 我在前文: <微软Azure配置中心 App Configuration (一):轻松集成到Asp.Net Core>已经介绍了Asp.net Core怎么轻易的接入azure 配置中心App Configuration(下称azure 配置中心): <微软Azure配置中心 App Configuration (二):Feature Flag 功能开关特性> 讲Asp.net Core功能开关的两种方式的简单使用: 本文重点来讲讲Azure配置中心是怎么配置的动态更新的…
写在前面 在日常开发中,我这边比较熟悉的配置中心有,携程Apollo,阿里Nacos(配置中心,服务治理一体) 之前文章: Asp.Net Core与携程阿波罗(Apollo)的第一次亲密接触 总体来说,Apollo和Nacos社区都比较活跃,可能是后发优势或者我们技术选型的原因,我们生产选用的是Nacos,我个人也是优先推荐Nacos(熟悉点,集成方便).不管怎么说两者都是比较不错的配置中心: 今天我带来了另一个配置中心:微软Azure App Configuration,希望给大家带来一点技…
方案一:传统作法(不推荐) 服务端负载均衡 将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护,而客户端在指定Config Server位置时,只要配置Config Server外的均衡负载即可. 注:服务器端负载均衡和客户端负载均衡的区别 存在的问题: 客户端都是直接调用配置中心的server端来获取配置文件信息.这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改…
Azure Notification Hubs 提供简单的方法从后台(azure或者on-promise)去发送通知在不同的平台上面(iOS, Android, Windows, Kindle, Baidu, 等等). 下面是一些发送的例子: 低延迟的发送突发事件通知. 发送区域性优惠券给感兴趣的部分顾客 给传媒/运动/金融/游戏app 发送活动相关通知给用户或者分组 发送广告推广内容 通知企业用户 发送手机验证信息 什么是推送通知? 发送通知是一个app和用户沟通的形式. 手机app的用户被某…
文章大纲 一.分布式配置中心是什么二.配置基本实现三.Spring Cloud Config服务端配置细节(一)四.Spring Cloud Config服务端配置细节(二)五.Spring Cloud Config客户端配置细节六.项目源码与参考资料下载七.参考文章   一.分布式配置中心是什么   随着我们的分布式项目越来越大,我们可能需要将配置文件抽取出来单独管理,Spring Cloud Config对这种需求提供了支持.Spring Cloud Config为分布式系统中的外部配置提供…
SpringCloud全家桶中的分布式配置中心SpringCloudConfig, 它使用git来管理配置文件, 在修改配置文件后只需要调用一个接口就可以让新配置生效, 非常方便. SpringCloudConfig分为两部分, 服务端和客户端, 服务端是用来提供配置文件信息的, 而客户端是用来使用配置文件信息的, 我们接下来就开始集成. 一.SpringCloudConfig服务端 1. 新建一个Module 2. 选择springboot工程 3. 起个名字 4. 选择配置中心服务端 5. …
大家好,我是三友~~ 最近突然心血来潮(就是闲的)就想着撸一个简单的配置中心,顺便也照葫芦画瓢给整合到SpringCloud. 本文大纲 配置中心的概述 随着历史的车轮不断的前进,技术不断的进步,单体架构的系统都逐渐转向微服务架构.虽然微服务架构有诸多优点,但是随着越来越多的服务实例的数量,配置的不断增多,传统的配置文件方式不能再继续适用业务的发展,所以急需一种可以统一管理配置文件应用,在此之下配置中心就诞生了. 所以配置中心就是用来统一管理各种服务配置的一个组件,本质上就是一个web应用. 配…
简介 为什么需要配置中心 ​ 我们现在有一个项目, 使用Gin进行开发的, 配置文件我们知道是一个config.yaml的文件, 也知道这个配置文件在项目启动时会被加载到内存中使用; 考虑三种情况: a . 添加配置项 1 . 你现在的用户服务有10个部署实例, 那么添加配置项你得去十个地方修改配置文件还得重新启动等; 2 . 即使Go的viper能完成修改配置文件自动生效, 那么你得考虑其他语言是否能做到这点, 其他微服务是否一定会使用viper? b . 修改配置项 大量的服务可能会使用同一…
前言 我们知道,目前大多数应用程序在正式发布到生产环境之前都会经历多个不同的测试环境,通过让应用程序在多个不同的环境中运行来及时发现并解决问题,避免在线上发生不必要的损失.这是对于整个软件的发布流程来讲.但是如果想让我们的应用程序在线上环境中通过满足一些动态条件(比如电商平台在某一时间段的促销活动)从而能开启一些临时功能的话又该怎么办呢?如果你试图通过重新打包发布的方式来解决这个问题,可能有些过于大动干戈了.本文,笔者将介绍通过 Feature Flag 的方式来解决这个问题. 正文 Featu…