问题背景我们微服务之间的远程调用使用的是dubbo框架(版本2.4.9),在最近几次服务的发布中,我们发现在dubbo provider服务的重启过程中,如果此时正处于业务的高峰期,短时间内会有大量的rpc调用失败,如果consumer侧没有重试机制或本地兜底策略的话,很可能导致业务异常。为了解决上述问题,我们有必要知道我们服务上下线过程中,dubbo究竟做了哪些事情。服务上线首先看在上线过程中,
1.   概述 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 主要核心部件 Remoting: 网络通信框架,实现了sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registr
文/朱季谦 Dubbo如何实现优雅下线? 这个问题困扰了我一阵,既然有优雅下线这种说法,那么,是否有非优雅下线的说法呢? 这,还真有。 可以从linux进程关闭说起,其实,我们经常使用到杀进程的指令背后,就涉及到是否优雅下线的理念。 在日常开发当中,经常用到kill来关掉正在运行的进程,可能你曾看到 ...
转载 2021-07-27 17:42:00
71阅读
2评论
zookeep宕机与dubbo直连现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。原因:监控中心宕掉不影响使用,只是丢失部分采样数据数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务注册中心对等集群,任意一台宕掉后,将自动切换到另一台注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯服务提供者无状态,任意一台宕掉后,不影响使用服务提供者全部宕掉后
ZooKeeper有三种部署方式,分别为单机模式、伪集群模式、集群模式。其中单机模式比较简单,自行查找;伪集群模式和集群模式基本一样,区别就是前者都在一台电脑上,后者在不同的电脑上。下面以生产环境一般用的集群方式部署为例说明,按最小要求3台节点来介绍集群部署方式。本样例是在3台虚拟机下部署的,每个节点安装Centos7核心版(不带GUI)3台机器分别规划如下:hdp1:10.10.10.110hd
如果客户端考虑增加重试能力,这一定程度上可以缓解发布过程中服务调用报错的问题,但是无法根本上保证下线过程的
原创 精选 5月前
191阅读
# Redisson优雅下线实现教程 ## 引言 在实际开发中,为了保证系统的稳定性和可靠性,我们经常会需要对服务器进行优雅下线。本文将教你如何使用Redisson实现服务器的优雅下线。 ## 整体流程 下面是实现“redisson优雅下线”的整体流程: | 步骤 | 操作 | | ---- | ---- | | 1 | 创建Redisson客户端连接 | | 2 | 添加服务器下线监听器
原创 6月前
58阅读
前言grace是facebook公司为golang服务开发的优雅重启和零停机部署的开源库。可以实现服务重启时,旧有连接不断,新服务启动后,新连接连入新服务,如此客户端无感知。使用方法(1)获取go get github.com/facebookgo/grace/gracehttpmod可以使用如下方式引入:require github.com/facebookgo/grace latest(2)使
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、动态代理等等都有一定的了解,这位候选人也一样。
原创 2021-07-14 17:30:54
516阅读
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个
原创 2022-04-20 15:43:47
554阅读
Spring 2.5 引入了对基于注解的配置元数据的支持。 从 Spring 3.0 开始,Spring JavaConfig 项目提供的许多功能成为了核心 Spring Framework 的一部分。因此,您可以使用 Java 而不是 XML 文件来定义应用程序类外部的 bean。 Spring官方文档https://docs.spring.io/spring-framework/docs/cu
背景:随着微服务的项目越来越多,部署这些项目和解决环境差异,成了一个耗时的工作,使用Docker可以方便的帮我们解决诸多问题,此处不叙述Docker的优点和用法,记录一下在Mac环境下使用Docker部署SpringCloud服务的过程。范例服务: 服务1:注册中心eureka 服务2:MySQL 服务3:业务应用1.Docker安装Mac可以从Docker官网 https://www.docke
转载 27天前
13阅读
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。 Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、动态代理等等都有一定的了解,这位候选人也一样。 但是,我接下来问了他一个问题:你们在使用Dubbo的时候,应用如果重启,怎么保证一个请求不会被中断处理的呢?
转载 2021-07-09 15:56:38
97阅读
eureka优雅下线某个服务一、需求二、实现步骤1、使用 eureka 的 rest api 查询服务列
文章目录 前言 优雅下线 常见的下线方式 优雅下线方式 灰度发布不可用,这就是不够优雅的。那什么是优雅的呢?主要就是指在服务升级的时候,不中断整个服务,让用户无感知
原创 11月前
85阅读
Java服务优雅下线
原创 精选 5月前
297阅读
1点赞
先抛一个问题,大家在自己电脑上启动一个 Spring Boot 项目需要花费多久?根据项目大小和机器环境,花费几秒到几十秒的人应该都有。Spring 官方推出了一项技术可以将项目的启动时间缩短到 79 毫秒,79 毫秒大概是个什么概念?就是你还没反应过来项目已经启动好了,太牛了。这项技术被 spring 官方命名为Spring Native,翻译成中文叫Spring 云原生,应该有少部分人听说过这
每日英文There are plenty of things in life that you don't want to do but you have to,this is responsibility.For the things that you want t...
转载 2022-05-16 12:06:04
61阅读
程序员的成长之路互联网/程序员/技术/资料
转载 2022-07-13 00:02:37
46阅读
前言在生产环境中,如何保证在服务升级的时候,不影响用户的体验,这个是一个非常重要的问题。如果在我们升级服务的时候,会造成一段时间内的服务不可用,这就是不够优雅的。那什么是优雅的呢?主要就是指在服务升级的时候,不中断整个服务,让用户无感知,进而不会影响用户的体验,这就是优雅的。实际上,优雅下线是目标,而不是手段,它是一个相对的概念,例如kill PID和kill -9 PID都是暴力杀死服务,相对于
转载 2022-04-19 20:39:51
86阅读
  • 1
  • 2
  • 3
  • 4
  • 5