BLCL的博客小馆

首页

关于

归档

loading..
开发微服务数据迁移后端开发

微服务架构下的数据迁移指南

在扇贝,除了 CRUD 以外,做的最多的事情大概也就是数据迁移了,以至于后来简单的数据迁移工作都变成了一种搬砖。今天动笔写一写在扇贝做数据迁移的方法,以及一些需要关注的点。 0. 为什么要做数据迁移? 出于架构调整 / 业务调整,我们需要把某个微服务中的数据交给另外一个微服务去管理。 因为每个服务通常会有自己的数据库,而且只会连接到自己的数据库,所以我们在让新的服务接管数据之前,就要保证全部或部分数据已经要在新的数据库中了,这样业务才能够平滑过渡并切换。 1. 怎么做数据迁移? 1.1 静态数据迁移 把数据从 A 服务迁移到 B 服务中,所需的步骤: 把 A 里的数据都取出来 把数据塞进 B 里面 没有了!就这么简单,比“把大象放进冰箱”还少一步~🌝 所以本文到此结束,靴靴你浪费宝贵的一分钟..

更多
loading..
读书微服务DevOps

《从 0 开始学微服务》阅读笔记

前一阵子购买了胡忠想老师的《从 0 开始学微服务》极客时间专栏,二月份看完以后做了一些笔记。 服务化拆分 根据我的实际项目经验,一旦单体应用同时进行开发的人员超过 10 人,就会遇到上面的问题,这个时候就该考虑进行服务化拆分了。 服务化拆分的两种姿势: 纵向拆分:按业务维度拆分,关联比较密切的几个业务业务适合拆成微服务;功能相对独立的业务拆成微服务; 横向拆分:从公共且独立功能维度拆分。标准是是否有公共的服务被多个其它服务调用,且依赖的资源独立不与其他业务耦合。 微服务架构 初探微服务架构 微服务架构下,服务调用主要依赖下面几个基本组件: 服务描述 注册中心 服务框架 服务监控 服务追踪 服务治理 服务描述——如何发布和引用微服务 常用的服务描述方式包括 RESTful API、XM..

更多
loading..
其他区块链抽奖查询以太坊ETH智能合约随机数

基于以太坊却不上链的抽奖服务,是不是有一点可疑。

前言本文是随笔,记录了一次基于以太坊的抽奖服务的方案讨论。从常规的智能合约的实现方案,到最终改用不上链的实现,主要是分享一下思路,包含了一点不看也没事的技术细节,以及一点区块链相关的内容。因为抽奖主题的区块链开发入门文章已经泛滥了,所以文章尽可能避免变成教程。背景之前一位做论坛的同学说他们那个论坛经常会做一些活动,抽奖什么的。如何让用户能感受到公平公正,让大家信任。之前一个的办法是在指定时间录视频,并且边上放个北京时间,表示这个是准时开奖没有作弊。这个和澳门最大线上赌场异曲同工,边上搞台电视放新闻的直播,令人信服。但是总一直这样也不行,我们可是搞技术的,而且这种方式扩展性太弱。于是他们想做一个公正公开可信任,简单易用易理解的抽奖系统,选定的方案是区块链。我听了觉得很有意思,而且公正公开不可变,区块链太合适..

更多
loading..
LinuxNAS网络IPv6

瞎玩IPv6——在公网搭建文件管理器

IPv6 是个好东西,希望人人都有一个。 IPV6 IPv6 是啥? 新一代的 IP 协议,解决了 IPv4 地址枯竭的问题。具体可以见 Wikipedia. IPv6 的 IP 长度为 128 位,总量非常非常多,不用担心用不完,所以接入 IPv6 的客户端都会分到一段 IP,比如 240e:1c:ce8:fd00::/64,然后客户端又可以把这段 IP 继续分段,下发到下面的所有子网中。 不过需要注意的是,虽然客户端会分到一段 IP 的所有权,不过客户端本身还是会有至少一个确定的 IP,以确定自己的位置。 其实发现 ISP 分给自己 2^64 个 IP 地址的时候还是感觉很奢侈…😂 IPv6 跟我有什么关系? 感谢去年工信部发布了《工业和信息化部关于贯彻落实〈推进互联网协议第六版(IPv6)..

更多
Linux乱七八糟NTP

NTP 简介

昨天遇到了一个神奇的问题,最后发现是服务器的 ntpd 没开导致本地时间没有同步😂 正好了解一下 NTP. NTP 协议 NTP 协议用于在网络之中通过分组交换进行时钟同步。基于 UDP,使用 123 端口。 协议实现 客户端和服务器间会通过修改版的 Marzullo 算法 完成时间同步。 在传递时间时,服务器会给出 64 位的时间戳,浮点精度为 32 位。这个时间戳每 2^32 秒会翻转一次,理论分辨率为 2^-32 秒。时间戳以 1900 年 1 月 1 日作为开始时间。 NTP 时间源会进行分层,通过阶层 n 同步的服务器将运行在阶层 n+1. 分层机制用来防止循环请求。阶层 0 的服务器与高精度计时设备(如原子钟)相连,也成为基准时钟。 使用 NTP 同步 Linux 系统时间 ntp..

更多
loading..
TECHNOLOGYipv6NUAA

免费使用 nuaa.portal 上网

背景学校赐予我的 nuaa.portal 账号在一个月之前就到期了,这一个月内,虽然对我的生活没有太大的影响,但是还是感受到了某些不便(总觉得某些东西有了更好,没有却不能拉倒)。前些天跟创新区内的同学讨论了本校的ipv6部署情况,突然就有兴致来折腾一下。没错,免费上网还是有可能的。前提概要学校的 nuaa.portal 公共无线网,Windows 电脑只要连接上,就能获取一个 ipv4 内网地址和一个 ipv6 地址。如果没有在指定 Web 页面上认证,则无法使用 ipv4 连接互联网。但是可以通过 ipv6 联网。学校默认不分配 ipv6 的 DNS 服务器。学校教学办公区有线宽带,经直接拨号,同样可以获得一个 ipv4 内网地址和一个 ipv6 地址,均可以访问互联网。一步步的尝试直接用 ipv6 上..

更多
Python读书

《流畅的 Python》阅读笔记

去年就想看《流畅的 Python》这本书,今年终于看完了。 《流畅的 Python》是一本深入讲解 Python 语言的书,非常值得一读。去年看到同事在看,就一直想看,陆陆续续看了很久没什么进度,这个月一努力,把这本书看完了。 这次脑洞一开,觉得既然学的是 Python,那我为什么不用 Python 做笔记呢?于是就选用了 Jupyter Notebook 来做笔记载体。一个文档里既可以写 Markdown,又可以运行 Python 代码,简直完美。 所以,这本书的笔记就这么写出来了。内容不算少,所以烦请移步我的 GitHub Repo.

更多
Python

Python Hacking: “高级”偏函数

本文讲解了一个需求的解决方案,而这个奇葩需求你在 99.93% 场景下都不会遇到,就算遇到了,也一定有其它更简单的解决方案。 0. 引言 >>> print((lambda x:None).__code__.__doc__) code(argcount, kwonlyargcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, firstlineno, lnotab[, freevars[, cellvars]]) Create a code object. Not for the faint of heart. 1. 需求 mock.patch 对象在..

更多
loading..
读书PrometheusDevOps

《Prometheus Book》阅读笔记

看了一本在线的小书,叫《Prometheus Book》,做了一点摘抄和笔记。 第 1 章:天降奇兵 第一章对 Prometheus 的架构和用法做了简单的介绍。 基本介绍 通过建立完善的监控体系,我们可以达到以下目的:长期趋势分析、对照分析、告警、故障分析与定位、数据可视化。 Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警的新模型。 个人理解,这里的中央化主要是指数据存储中央化:各个数据源将指标暴露出来,由 Prometheus 服务器采集后统一存储、统一分析,方便聚合查询。 Prometheus 的基本结构如图所示: 其中 Prometheus Server 是整个组件中的核心部分,负责实现对监控数..

更多
loading..
翻译PythonLCTT

Python 函数式编程:不可变数据结构

本文原载于 opensource.com,由本人翻译,翻译作品原载于 linux.cn。翻译及转载基于 CC-BY-NC-SA 协议。具体创作参与信息可见文章最后部分。 不可变性可以帮助我们更好地理解我们的代码。下面我将讲述如何在不牺牲性能的条件下来实现它。 在这个由两篇文章构成的系列中,我将讨论如何将函数式编程方法论中的思想引入至 Python 中,来充分发挥这两个领域的优势。 本文(也就是第一篇文章)中,我们将探讨不可变数据结构的优势。第二部分会探讨如何在 toolz 库的帮助下,用 Python 实现高层次的函数式编程理念。 为什么要用函数式编程?因为变化的东西更难推理。如果你已经确信变化会带来麻烦,那很棒。如果你还没有被说服,在文章结束时,你会明白这一点的。 我们从思考正方形和矩形开始。..

更多
17475767778