Dubbo

分布式全链路灰度发布的探索与实践

早过忘川 提交于 2021-01-12 12:10:45
简介: 在分布式系统中,由于分布式全链路灰度发布因其链路复杂、技术门槛高、落地难度高逐渐成为金融科技实现全链路灰度发布的难点所在。工行在分布式系统建设方面一直走在同业前列,积极探索分布式全链路灰度发布,致力于解决分布式架构下跨应用、跨服务的全链路灰度发布能力。 互联网金融时代下,金融产品和服务模式不断创新,金融系统容量需求急剧增长,为进一步满足运维标准提升工作的需求,提升服务连续性水平。中国工商银行(后简称工行)从 2014 年开始分布式架构转型的技术预研工作,通过对开源微服务框架深入调研和技术选型后,确定了基于开源 Dubbo 自主研发建设分布式服务平台,并结合金融场景,工行在 Dubbo 基础上对服务的注册、发现等核心能力进行了三十余项定制,以支持单注册中心超 70 万提供者的超大规模业务场景。分布式服务作为分布式体系的核心能力,助力工行应用架构向分布式、服务化转型,承载未来开放平台核心银行系统。 在分布式系统中,由于分布式全链路灰度发布因其链路复杂、技术门槛高、落地难度高逐渐成为金融科技实现全链路灰度发布的难点所在。工行在分布式系统建设方面一直走在同业前列,积极探索分布式全链路灰度发布,致力于解决分布式架构下跨应用、跨服务的全链路灰度发布能力。 业界传统灰度发布 灰度发布是业界一种规避发布风险的有效的手段,通常可以蓝绿部署、滚动发布、灰度发布等几种方式实现。 1. 蓝绿发布

IDEA下一键部署SpringBoot项目到Linux服务器(Alibaba Cloud Toolkit的使用)

杀马特。学长 韩版系。学妹 提交于 2021-01-11 09:41:20
写在开始:一个搬砖程序员的随缘记录 简介: Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、Kubernetes 和 小程序云 等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传和 MySQL 执行器等工具。 准备: 1、Linux服务器一台,部署好JAVA环境 2、IDEA开发工具 3、SpringBoot项目一个 文章目录 一、IDEA安装Alibaba Cloud Toolkit插件 二、项目准备 三、服务器配置 四、Alibaba Cloud Toolkit配置 五、执行 六、验证 一、IDEA安装Alibaba Cloud Toolkit插件 我已经安装过了 安装后重启IDEA 二、项目准备 在IDEA下构建一个项目 写好一个测试接口 三、服务器配置 命令: # 进入一个目录 cd /www/wwwroot/ # 新建文件夹.名字可以随意取 mkdir demo # 进入新建的文件夹 cd demo 新建restart.sh脚本。脚本内容在下面,复制进去就行 vi restart.sh 脚本内容如下: if [ ! -n " $1 " ] ; then echo "please input a process

教你玩转微服务的装逼指南!

自古美人都是妖i 提交于 2021-01-11 05:44:23
最近 几年,微服务大行其道。 在业务模型不完善,超大规模流量的冲击的情况下,许多企 业纷纷抛弃 了传统的单体架构,拥抱微服务。 这种模式具备独立开发、独立部署、可扩展性、可重用性的优点的同时,也带来这样一个问题: 开发、运维的复杂性提高。 有人感觉微服务越做越不方便管理。 然而, 随着 Docker 容器技术和自动化运维等相关技术发展,微服务变得更容易维护。 2020 年,微服务的发展只会越来越完善,成为将来大中型企业业务架构的主流趋势。 但微服务架构包含了 N 多优化、N 多细节,对于一些 coding 的朋友,由于接触不到一线实战架构设计,眼看别人都在向微服务架构转型,自己却只能日复一日地重复造轮子。 最近整理了一套微服务 视频 干货,讲解很透彻。今天分享给大家。这份资料 尤其适合 以下人群: 1.没有用过微服务技术,只会用传统的 SSM 框架 2.用过 Spring Cloud、Dubbo等技术,但是只限于使用,遇到问题基本无法解决 3.从来没有系统学习微服务架构,觉得架构设计是遥不可及的 4.对于微服务技术有所了解,但尚没有设计高可用高并发的实践经历 学完这份视频你将获得哪些收获? 理解当下最火热的微服务架构原理及其开源框架; 触及一线大厂所配备的微服务核心技术内幕知识以及面试考核点; 对照自己掌握知识点进行查漏补缺,帮助扫除知识盲区、重构知识体系; 视频围绕“

聊聊dubbo-go的broadcastCluster

左心房为你撑大大i 提交于 2021-01-10 03:54:11
序 本文主要研究一下dubbo-go的broadcastCluster broadcastCluster dubbo-go-v1.4.2/cluster/cluster_impl/broadcast_cluster.go type broadcastCluster struct{} const broadcast = "broadcast" func init() { extension.SetCluster(broadcast, NewBroadcastCluster) } // NewBroadcastCluster ... func NewBroadcastCluster() cluster.Cluster { return &broadcastCluster{} } func (cluster *broadcastCluster) Join(directory cluster.Directory) protocol.Invoker { return newBroadcastClusterInvoker(directory) } broadcastCluster的join方法执行newBroadcastClusterInvoker newBroadcastClusterInvoker dubbo-go-v1.4.2/cluster/cluster_impl/broadcast

Nacos Go 微服务生态系列(一)| Dubbo-go 云原生核心引擎探索

我与影子孤独终老i 提交于 2021-01-09 23:55:06
简介: 作为微服务框架的核心引擎--注册中心,是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 作者 | 李志鹏 近几年,随着 Go 语言社区逐渐发展和壮大,越来越多的公司开始尝试采用 Go 搭建微服务体系,也涌现了一批 Go 的微服务框架,如 go-micro、go-kit、Dubbo-go 等,跟微服务治理相关的组件也逐渐开始在 Go 生态发力,如 Sentinel、Hystrix 等都推出了 Go 语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 图 1 根据上表的对比我们可以从以下几个维度得出结论: 生态 :各注册中心对 Go 语言都有支持,但是 Nacos、 Consul、Etcd 社区活跃,zookeeper 和 Eureka 社区活跃度较低; 易用性 :Nacos、Eureka、Consul 都有现成的管控平台,Etcd、zookeeper 本身作为 kv 存储,没有相应的管控平台,Nacos 支持中文界面,比较符合国人使用习惯; 场景支持 :CP 模型主要针对强一致场景,如金融类,AP 模型适用于高可用场景,Nacos 可以同时满足两种场景

接口测试,接口协议以及常用接口测试工具详解

旧城冷巷雨未停 提交于 2021-01-09 21:58:52
顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https://item.jd.com/12082665.html 店铺二维码: 作者: 长沙逍遥子 来源: 简书 一、前言:什么是接口 1.接口指的是软件提供给外界的一种服务。作用在于使其内部的数据能被外部进行修改的交互方式。 例如:USB接口,电脑里的数据可以看成是内容数据,而U盘里的数据可以看成是外部数据,那么USB接口的作用就是:电脑和U盘交互数据,也就是使电脑内部的数据能够和外部的U盘交换数据。 例如:微信的提现和充值,就调用银行对外开放的接口,这些接口有权限控制,一般需要鉴权码token才可以访问。那为什么要鉴权码呢?如果没有鉴权码约束,那是不是谁也可以修改银行内部的数据?那还得了,那就真可以定一个小目标了! 2.接口一般来说有两种:一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app它在进行数据处理的时候都是通过接口来进行调用的。 程序内部的接口:方法与方法之间

分布式系统架构解决方案之Dubbo(一)--Dubbo的概述

青春壹個敷衍的年華 提交于 2021-01-09 21:46:54
什么是SOA SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。 为什么互联网项目会采用SOA架构呢?随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。 1单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 2 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。 3 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。 4 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。 2.

聊聊dubbo的DataStore

微笑、不失礼 提交于 2021-01-09 09:31:14
序 本文主要研究一下dubbo的DataStore DataStore dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java @SPI("simple") public interface DataStore { /** * return a snapshot value of componentName */ Map<String, Object> get(String componentName); Object get(String componentName, String key); void put(String componentName, String key, Object value); void remove(String componentName, String key); } DataStore定义了get、put、remove方法,它有一个实现类为SimpleDataStore SimpleDataStore dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/support/SimpleDataStore.java public class

Spring Boot资料

北慕城南 提交于 2021-01-08 18:32:47
Spring 框架和 Spring Boot 的历史:https://mp.weixin.qq.com/s/iqve1_9kjYCGdXzV1nAQqA 使用 Spring Cloud Sleuth、Elastic Stack 和 Zipkin 做微服务监控:https://mp.weixin.qq.com/s/1iqrFD3wvYWdrdqQ7Y1lCA 基于 Spring Boot 和 Spring Cloud 实现微服务架构:https://mp.weixin.qq.com/s/QrnI9KjWYDY9C6t85dcmJg SpringBoot 应用部署于外置 Tomcat 容器:https://mp.weixin.qq.com/s/y2Dxe-FtOVQWuQKjOHMxwg Spring 整合 Quartz 分布式调度::https://mp.weixin.qq.com/s/2NOMAjHBfKRp9yY2zUSqtw Session 管理之超时设置和强制下线:https://mp.weixin.qq.com/s/xqTGYKW0LcCo5NFlYw2daA RabbitMQ 实战之 Spring Boot 整合 RabbitMQ:https://mp.weixin.qq.com/s/oG-MaHa4BoKjIt_hg9F1gg Mybatis-plus 思维导图,让