首页 文章 精选 留言 我的

精选列表

搜索[一站式在线联络平台],共10000篇文章
优秀的个人博客,低调大师

银行交易系统 TiDB 在线缩容迁移

作者:Dan 本文转载自公众号「白噪声OG」。 经历了上礼拜漫长的上线周期,终于有时间总结一下期间发生的故事。TiDB 是一款非常优秀的国产分布式 NewSQL 数据库,因其支持水平扩展性、强一致性、高可用性,从 18 年 3 月起已在国内银行的账务、支付类核心系统得到应用。 临近年中,银行重要系统的建设进入投产冲刺阶段,本次上线又有多个系统对接 TiDB,为了优化集群资源分配,引发了这次分享的主题——线上系统 TiKV 的缩容、region 的迁移,本文主要针对本次 TiKV 的缩容、迁移过程进行梳理总结。 TiDB 数据库的扩容已在官方文档进行了详细的说明(https://pingcap.com/docs-cn/op-guide/horizontal-scale/)并被各路大咖广泛提及,但缩容迁移并在银行交易系统上的实践却少有分享,这也是本文的目的之一。 进入主题,先交代下环境,服务器集群采用 NVMe+SSD 的存储方案构建了 16 个 TiKV 实例,作为重要的核心支付类系统,两地三中心五副本不可少,每个 TiKV 上 8K+ 个 region。整个迁移过程历时 5 个小时,过程中没有停止系统对外服务,很是顺滑平稳。 接下来还是看一下迁移的过程: (一) TiKV 采用 Raft 一致性算法保证副本强一致性,迁移过程本质上是扩容的逆过程,确定下线的 TiKV 打上 label 后,将 region 搬移到最终保留下来的 TiKV 上。 (二) 接下来聚焦 region 1 的 Raft Group,对其副本进行搬移,实际上所有 region 的数据是一样的,只是在保留的 TiKV 内进行 region 数据的复制,新产生的副本由于数据不完整,作为 Raft Group 中的 learner。 (三) Learner 创建后,PD 会在这样的一个 Raft Group(5 个全副本 region + 2 个 learner)中发起选举: 选举会增加 label 限制,确保 leader 最终在保留的 TiKV 中产生; 由于 learner 没有投票权,选举实际还是个 5 副本选主,多数派 (N+1)/2 仍为 3。 (四) 这样新的 leader 选出来了,当两个新副本数据追平后,将删除下线 TiKV 中的 region。 (五) 这样一个新的 5 副本 Raft Group 我们就获得了。 这里再说几点: 1. 磁盘 IO 对迁移的效率影响还是很大的,测试环境使用普通的 SAS 盘,在更高并发的条件下,耗时长了很多。 2.(二)、(三)、(四)的过程并非原子化操作,当然 learner 的数据本身也不具备一致性,但对 raft 的改造最终要保证一致性,与 PingCAP 的开发同学确认后,这些会在之后加入。 3. 我认为最有意思,也最有意义的一点,learner 的引入是本次迁移过程中非常巧妙的设计,解决了数据不一致副本在选举过程中的尴尬地位,而 learner 也是 Multi-Raft 协议中的重要角色,HTAP 引擎 TiFlash&TiSpark 也以此引入列存副本,非常期待TiDB 3.0。 PS:本次上线的重头戏 Cloud TiDB 在平稳运行后,希望有机会进行总结分享。TiDB 自上线后实现了多次重要变更操作,均未暂停系统对外服务,从一只开发狗的角度看 TiDB 在金融级 NewSQL 数据库的方向上的确投入了很多。 最后,感谢 PingCAP Gin 同学和研发大神们的支持,感谢运维爸爸们直到凌晨 4 点的奋斗。

优秀的个人博客,低调大师

国内在线查看Java源码(支持下载)

终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 现在的IDE都很强大都能直接通过按Ctrl+鼠标左键查看Java源码,但是当你没有IDE时,查看源码就会变得很困难。这里提供了网上查看Java源码的方法。 首先给出源码地址:https://code.csdn.net/hty1053240123/jdk-source/tree/master 下图是源码的目录结构: 查看具体类的源码只需要在搜索窗口中输入类名即可。 源码是JDK1.8对应的源码。

优秀的个人博客,低调大师

Android Studio在线安装Android SDK注意事项

由于使用的Android studio自带了sdk23,然而其它版本的sdk并没有安装;这些天由于需要用到低版本的sdk,因而使用Android SDK Manager进行相应的更新。开始的时候老是无法下载,首先想到的是被墙了。于是 File-->Settings-->Appearance & Behavior-->System Settings-->HTTP Proxy中进行了相应代理的设置 设置完以后,Check connection 此时,按常理来说Android SDK Manager是可以正常下载安装包的。但无论我怎么尝试都不行。后来查看了下SDK Manager里面的Tools-->Options,发现这里面需要对SDK Manager进行代理的设置。于是设置了一通,再次查看日志,此时消停了。 此时需要做的只需静候其安装即可,你也可以利用这段时间干点别的事情。^_^... 本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/4831729.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android Studio SDK 使用国内镜像源在线安装

一、使用国内镜像源: 先在这里推荐几个: 1、东软信息学院 mirrors.neusoft.edu.cn 端口:802、北京化工大学 ubuntu.buct.edu.cn/ubuntu.buct.cn 端口:803、中国科学院开源协会 mirrors.opencas.cn (mirrors.opencas.org/mirrors.opencas.ac.cn) 端口:804、上海GDG镜像服务器 sdk.gdgshanghai.com 端口:80005、电子科技大学 mirrors.dormforce.net 端口:80 其中,强烈推荐电子科技大学的镜像源! 二、使用方法 启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options…」,弹出『Android SDK Manager – Settings』窗口; 在『Android SDK Manager – Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://… sources to be fetched using http://…」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager – Settings』窗口返回到主界面;

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册