草庐IT

从零写一个兼容MySQL/Oracle的Proxy中件间(一)《初识Oracle的通信协议》

0.前言MySQL由于开源的原因,有各式各样的中件间Proxy,极大的丰富了做高可用或迁移的方案,习惯了MySQL生态圈的灵活和便利,Oracle官方不开源代码和协议,没有中间件proxy,显得很笨重。比如以下的方案就会很不好办:实时抓取Oralce的访问SQL日志慢日志捕获和收集高可用中件间Proxy在故障时自动切换SQL访问黑名单。基于以上的一些困难,打算自己从头写一个兼容MySQL/Oracle的中件间,希望从中件间层同时支持两种数据库。方便我们做数据库的高可用管理和从Oracle到MySQL的迁移。这个计划是在年前的2021年最后一次组内会议上提出来的构想。元旦放假期间我就一直在想这事

从零写一个兼容MySQL/Oracle的Proxy中件间(一)《初识Oracle的通信协议》

0.前言MySQL由于开源的原因,有各式各样的中件间Proxy,极大的丰富了做高可用或迁移的方案,习惯了MySQL生态圈的灵活和便利,Oracle官方不开源代码和协议,没有中间件proxy,显得很笨重。比如以下的方案就会很不好办:实时抓取Oralce的访问SQL日志慢日志捕获和收集高可用中件间Proxy在故障时自动切换SQL访问黑名单。基于以上的一些困难,打算自己从头写一个兼容MySQL/Oracle的中件间,希望从中件间层同时支持两种数据库。方便我们做数据库的高可用管理和从Oracle到MySQL的迁移。这个计划是在年前的2021年最后一次组内会议上提出来的构想。元旦放假期间我就一直在想这事

从零开始构建实时操作系统—任务切换

1、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛,尤其是其具备低功耗技术的特点得到人们的重视。随着工信部提出NB-IoT基站建设具体目标、三大运营商加速建设,即将迎来万物互联的新时代,这是信息产业继移动互联网之后的下一个万亿级市场,这些为实时操作系统的应用提供了广阔的前景。嵌入式实时操作系统将会部署到越来越多的设备中,这就要求工程师深入地了解嵌入式实时操作系统。本系列文章将和大家一起从零开始构建一个嵌入式实时操作系统,我将用最简单直白的方式一步一步搭建,我将用一篇文章的方式来总结搭建中的每个节点阶段,并开源软件工程和源代码。2、嵌入式实时操作系统嵌入式实时操作系统是一

从零开始构建实时操作系统—任务切换

1、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛,尤其是其具备低功耗技术的特点得到人们的重视。随着工信部提出NB-IoT基站建设具体目标、三大运营商加速建设,即将迎来万物互联的新时代,这是信息产业继移动互联网之后的下一个万亿级市场,这些为实时操作系统的应用提供了广阔的前景。嵌入式实时操作系统将会部署到越来越多的设备中,这就要求工程师深入地了解嵌入式实时操作系统。本系列文章将和大家一起从零开始构建一个嵌入式实时操作系统,我将用最简单直白的方式一步一步搭建,我将用一篇文章的方式来总结搭建中的每个节点阶段,并开源软件工程和源代码。2、嵌入式实时操作系统嵌入式实时操作系统是一

从零开始构建嵌入式实时操作系统—重构

1、前言本人是一个普通的中年程序员,并不是圈内的大牛,写嵌入式操作系统这一系列的文章并不是要显示自己的技术,而是出于对嵌入式的热爱。非常幸运,本人毕业后的十几年一直从事嵌入式行业,遇到过各种坑,也收获过各种喜悦。希望嵌入式操作系统系列文章能对其它的嵌入式爱好者能有所帮助,帮助热爱嵌入式行业的朋友快速了解嵌入式操作系统的运行原理。我将一步一步地完善我们的嵌入式实时操作系统enuo,每完成一步软件的构建,我将输出一篇总结性的文件,来分享软件构建过程,并开源软件工程和源码。操作系统enuo的名字来源于我5岁儿子的伊诺,希望在我的守护下enuo和伊诺都能健康快乐,茁壮成长!2、设计背景书接上文我们完成

从零开始构建嵌入式实时操作系统—重构

1、前言本人是一个普通的中年程序员,并不是圈内的大牛,写嵌入式操作系统这一系列的文章并不是要显示自己的技术,而是出于对嵌入式的热爱。非常幸运,本人毕业后的十几年一直从事嵌入式行业,遇到过各种坑,也收获过各种喜悦。希望嵌入式操作系统系列文章能对其它的嵌入式爱好者能有所帮助,帮助热爱嵌入式行业的朋友快速了解嵌入式操作系统的运行原理。我将一步一步地完善我们的嵌入式实时操作系统enuo,每完成一步软件的构建,我将输出一篇总结性的文件,来分享软件构建过程,并开源软件工程和源码。操作系统enuo的名字来源于我5岁儿子的伊诺,希望在我的守护下enuo和伊诺都能健康快乐,茁壮成长!2、设计背景书接上文我们完成

在Kubernetes中从零打造可观测性

在这篇文章中,我们将在Kubernetes中使用Grafana、Prometheus、Loki、Tempo、OpenTelemetry来搭建可观测性平台。其中Grafana作为操作面板,Prometheus、Loki、Tempo作为数据源,分别用来获取指标、日志以及跟踪数据。同时,我们还将使用Exemplars将trace_id与Java指标相关联,使用OpenTelemetry对应用进行检测。在开始之前,先简单介绍一下这些开源工具。OpenTelemetry:它是CNCF的开源产品,通过使用代理来收集指标、日志和链路,然后将它们发送给其他工具,它支持多种语言集成,并且有很大的仪表功能。Pro

在Kubernetes中从零打造可观测性

在这篇文章中,我们将在Kubernetes中使用Grafana、Prometheus、Loki、Tempo、OpenTelemetry来搭建可观测性平台。其中Grafana作为操作面板,Prometheus、Loki、Tempo作为数据源,分别用来获取指标、日志以及跟踪数据。同时,我们还将使用Exemplars将trace_id与Java指标相关联,使用OpenTelemetry对应用进行检测。在开始之前,先简单介绍一下这些开源工具。OpenTelemetry:它是CNCF的开源产品,通过使用代理来收集指标、日志和链路,然后将它们发送给其他工具,它支持多种语言集成,并且有很大的仪表功能。Pro

推荐!从零开发一套基于React的加载动画库

之前在项目开发中经常会遇到需要开发各种各样加载动画的需求,我们可以使用已有的动画库手动改造实现(比如说基于 loaders.css 手动改造),也可以自己独立设计,但是这意味着需要花一定的时间调研和开发.为了减少这部分的时间,并让加载动画的设计更加简化和易用,我开发了一款开箱即用的加载动画库 react-loading,内置了多种风格的加载动画,开发者可以轻松选择自己需要的动画,并一键安装到自己的项目中,简单又轻量.github地址: https://github.com/MrXujiang/react-loading接下来就和大家一起介绍一下这个动画库.技术实现@alex_xu/react-

推荐!从零开发一套基于React的加载动画库

之前在项目开发中经常会遇到需要开发各种各样加载动画的需求,我们可以使用已有的动画库手动改造实现(比如说基于 loaders.css 手动改造),也可以自己独立设计,但是这意味着需要花一定的时间调研和开发.为了减少这部分的时间,并让加载动画的设计更加简化和易用,我开发了一款开箱即用的加载动画库 react-loading,内置了多种风格的加载动画,开发者可以轻松选择自己需要的动画,并一键安装到自己的项目中,简单又轻量.github地址: https://github.com/MrXujiang/react-loading接下来就和大家一起介绍一下这个动画库.技术实现@alex_xu/react-