在之前的文章中我们提到服务的优雅下线,见: SpringCloud服务如何在Eureka安全优雅的下线 但这个对于ribbon调用其实是不平滑的,shutdown请求到后服务就马上关闭了,服务消费此时未感应到服务下线了,会仍然往这个服务发送请求,从而导致报错. 简介方案有:一.开启重试(前提是保证接口做好幂等处理). 二.使用pause来下线服务(推荐) 操作步骤如下: 1.  服务提供方配置 后台端点禁用安全校验 management.security.enabled=false # 开启服务…
在我之前的文章  springcloud如何实现服务的平滑发布 里介绍了基于pause的发布方案. 平滑发布的核心思想就是:所有服务的调用者不再调用该服务了就表示安全的将服务kill掉. 另外actuator提供了优雅停机方式的endpoint:shutdown,那我们就可以结合 pause + 等待服务感知下线 + shutdown到一个endpoint里来提供优雅的停机发布方案. 之前的方案有一个不完美的地方,那就是IP白名单的filter是要在应用的application里加 @Servl…
前提 前段时间顺利地把整个服务集群和中间件全部从UCloud迁移到阿里云,笔者担任了架构和半个运维的角色.这里详细记录一下通过Nginx.Consul.Upsync实现动态负载均衡和服务平滑发布的核心知识点和操作步骤,整个体系已经在生产环境中平稳运行.编写本文使用的虚拟机系统为CentOS7.x,虚拟机的内网IP为192.168.56.200. 动态负载均衡的基本原理 一般会通过upstream配置Nginx的反向代理池: http { upstream upstream_server{ ser…
接上一篇:实战SpringCloud响应式微服务系列教程(第一章) 1.1.2背压 背压是响应式编程的核心概念,这一节也是我们了解响应式编程的重点. 1.背压的机制 在生产者/消费者模型中,我们意识到消费者在消费由生产者生产的数据的同时,也需要有一种能够向上游反馈流量需求的机制,这种能够向上游反馈请求的机制称之为背压. 如下图所示 现在我们从一个具体的角度来说背压的概念.在1.1.1中我们了解了同步消费和异步消费,其中异步消费者会向生产者订阅消费数据,当有新的数据可用时,消费者会通过之前订阅时提…
本文为实战SpringCloud响应式微服务系列教程第十章,本章给出响应式RESTful服务完整代码示例.建议没有之前基础的童鞋,先看之前的章节,章节目录放在文末. 1.搭建响应式RESTful服务. 在前面章节中我们讲了如何使用 Spring Initializer初始化响应式web应用,本节中就不再做过多介绍(请回顾第九章内容). 在学习本章内容之前需要了解mongodb以及redis,mongodb以及redis可查阅相关资料进行全面了解,并在本地环境搭建mongodb和redis. 2.…
平滑发布的介绍 背景 单位的云办公相关系统没有成熟的平滑发布方案,导致每一次发布都是直接发布,dll文件或配置文件的变更会引起站点的重启. 云办公系统的常驻用户有10000+,即使短短半分多钟,也会收到一堆投诉.基于此,我们梳理了一套平滑发布的方案. 实施方案 1.跟nginx代理服务器约定了一个健康检查的接口 2.通过接口返回的http状态码来让ngx是否分流用户请求(这个我们单位的技术部那边有标准的做法) 3.根据提供的这个服务健康检查的接口:nginx判断只要某个实例的接口返回5xx的状态…
前言 Spring Cloud很火,很多文章都有介绍如何使用,但对于我这种初学者,我需要从创建项目开始学起,所以这些文章对于我的启蒙,帮助不大,所以只好自己写一篇文章,用于备忘. SpringCloud是封装了Netflix公司开发的Eureka模块来实现服务注册和发现.下图为Spring Cloud Eureka的本版列表: 下图为Spring Cloud 微服务的各个实现的总览. 创建父项目 首先,我们打开IEDA创建项目,然后选择Maven选项,然后点击下一步,如下图: 创建完成后,是一个…
1   如果wcf服务与web发布在同一iis目录下,没有跨域的问题   但发布前要修改 ServiceReferences.ClientConfig 把wcf服务地址改为你发布后的iis的ip地址(包括端口)   2 为IIS注册APS.net 参考以下步骤:在命令提示符CMD(需要以管理员权限运行)上打开地址 C:WindowsMicrosoft.NETFrameworkv4.0.30319(最高的.net版本,除4.5之外) .执行aspnet_regiis.exe -iru .如图: 3…
这是 Windows© Communication Foundation 服务. 当前已禁用此服务的元数据发布. 如果具有该服务的访问权限,则可以通过完成下列步骤来修改 Web 或应用程序配置文件以便启用元数据发布: 解决办法: 出现该错误一般是因为没有写 <behaviors>      <serviceBehaviors>        <behavior name="myBehavior" >          <serviceMetad…
本章介绍springcloud中的服务消费者 springcloud服务调用方式有两种实现方式: 1,restTemplate+ribbon, 2,feign 本来想一篇讲完,发现篇幅有点长,所以本章先讲 restTemplate+ribbon, ribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为. Feign默认集成了ribbon. 新一个springboot项目,名字为 eureka-consumer-ribbon 其pom.xml配置如下 <properties>…