自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 图解分布式定时器从零实现 | go语言(一)

在许多业务场景中,我们需要使用定时器来执行一些定期任务或操作。订单管理当订单一直处于未支付状态时,需要及时关闭订单并退还库存对于处于退款状态的订单,需要定期检查是否已经退款成功用户激活对于新创建的店铺,如果在N天内没有上传商品,系统需要发送激活短信提醒数据统计需要定期统计并更新各种业务指标和报表数据缓存刷新需要定期刷新或更新缓存数据,以确保数据的及时性和准确性消息队列消费需要定期从消息队列中消费并处理消息系统维护需要定期执行一些系统维护任务,如日志清理、数据备份等。

2024-03-31 17:05:43 1123 1

原创 图解Kafka架构学习笔记(二)

如果不引入segment,那么一个partition只对应一个文件(log),随着消息的不断发送这个文件不断增大,由于kafka的消息不会做更新操作都是顺序写入的,如果做消息清理的时候只能删除文件的前面部分删除,不符合kafka顺序写入的设计,如果多个segment的话那就比较方便了,直接删除整个文件即可保证了每个segment的顺序写入。Segment中核心文件是index索引文件和log数据文件,既然是索引文件当然是为了更高效的定位到数据,那么索引文件和数据文件中到底是存了那些数据?

2024-03-25 17:47:02 1084

原创 图解Kafka架构学习笔记(三)

这里推荐使用Docker Compose快速搭建一套本地开发环境。以下文件用来搭建一套单节点zookeeper和单节点kafka环境,并且在8080端口提供kafka-ui管理界面。参考资料将上述文件在本地保存,在同一目录下执行以下命令启动容器。如果快速启动的话,那么可以参考docker的方式容器启动后,使用浏览器打开即可看到如下界面。点击页面右侧的按钮,配置kafka服务连接信息。填写完信息后,点击页面下方的“Submit”按钮提交即可。

2024-03-24 16:58:14 1010

原创 图解Kafka架构学习笔记(一)

在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。

2024-03-17 21:46:10 1114 2

原创 go语言 | etcd源码导读(一)

本文介绍了etcd原理等

2023-12-06 20:44:18 1450 1

原创 go语言 | 图解字节青训营抖音(一)

本文介绍抖音极简版demo的安装,帮助大家先对项目有个了解,接下来会介绍相关的结构以及api接口,并进行实际测试。

2023-11-17 20:12:54 767

原创 图解分布式事务实现原理(三)

本文参考https://zhuanlan.zhihu.com/p/650791238从零到一搭建 TCC 分布式事务框架,并在小徐的基础上增加个人见解+笔记。项目地址:https://github.com/xiaoxuxiansheng/gotcc图解分布式事务实现原理(一):https://blog.csdn.net/qq_40318498/article/details/134430322?

2023-11-17 11:17:17 172

原创 图解分布式事务实现原理(二)

Transaction Message:能够支持狭义的分布式事务. 基于消息队列组件中半事务消息以及轮询检查机制,保证了本地事务和消息生产两个动作的原子性,但不具备事务的逆向回滚能力TCC Transaction:能够支持广义的分布式事务. 架构中每个模块需要改造成实现 Try/Confirm/Cancel 能力的 TCC 组件,通过事务协调器进行全局 Try——Confirm/Cancel 两阶段流程的串联,保证数据的最终一致性趋近于 100%

2023-11-16 10:19:19 114

原创 图解分布式事务实现原理(一)

RocketMQ 是阿里基于 java 实现并托管于 apache 基金会的顶级开源消息队列组件,其中事务消息 TX Msg 也是 RocketMQ 现有的一项能力. 本章将主要基于 RocketMQ 针对事务消息的实现思路展开介绍.RocketMQ github 地址:https://github.com/apache/rocketmq。

2023-11-16 00:33:48 881

原创 go语言 | 图解反射(二)

go语言 | 图解反射(二)

2023-11-15 21:20:15 91

原创 go语言 | 图解反射(一)

go语言反射

2023-11-09 19:42:32 274

原创 基于 golang 从零到一实现时间轮算法 (三)

图解介绍基于redis的时间轮

2023-11-06 10:34:03 580 1

原创 go语言 | grpc原理介绍(三)

介绍grpc的四种通信方式

2023-11-05 00:32:12 417 2

原创 go语言 | grpc原理介绍(二)

这里介绍grpc协议以及protocol buffer协议

2023-11-04 23:47:08 357

原创 基于 golang 从零到一实现时间轮算法 (二)

介绍go语言实现的单机版时间轮

2023-11-04 14:56:07 261 1

原创 基于 golang 从零到一实现时间轮算法 (一)

时间轮是用来解决海量百万级定时器(或延时)任务的最佳方案,linux 的内核定时器就是采用该数据结构实现

2023-11-02 17:09:48 430 1

原创 go语言 | grpc原理介绍(一)

grpc相关介绍

2023-11-02 12:30:58 256

原创 Golang | Zinx学习笔记(一)

本文是go zinx的学习笔记

2023-10-30 17:04:43 341

原创 一文图解Golang管道Channel

在 Go 语言发布之前,很少有语言从底层为并发原语提供支持。**大多数语言还是支持共享和内存访问同步到 CSP 的消息传递方法**。Go 语言算是最早将 CSP 原则纳入其核心的语言之一。内存访问同步的方式并不是不好,只是在高并发的场景下有时候难以正确的使用,特别是在超大型,巨型的程序中。基于此,并发能力被认为是 Go 语言天生优势之一。追其根本,还是因为 Go 基于 CSP 创造出来的一系列易读,方便编写的并发原语。

2023-10-09 15:54:41 868 2

原创 DIY简单的RTOS(二)任务切换

从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。项目地址任务控制块在其他RTOS中,任务一般是由:任务堆栈、任务控制块和任务函数三部分组成。任务堆栈:上下文切换的时候用来保存任务的工作环境,就是STM32的内部寄存器值。任务控制块:任务控制块用来记录任务的各个属性。任务函数:由用户编写的任务处理代码(一般无返回值,单个void *参数,不会返回) void task1Entry(void *param){ f

2020-07-26 10:52:25 1409

原创 DIY简单的RTOS(一)

什么是RTOS实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。PenSV异常在RTOS内核中,一个任务可通过手动触发PendSV异常,在PendSV异常服务函数中实现任务切换(切换到下一个任务)我们从相关手册找到设置PendSV异常的寄存器中断及状态控制寄存器ICSR..

2020-07-22 20:24:14 1121

原创 使用WIFI连接新大陆云平台(基于RT_Thread操作系统)

前言使用RT-Thread Studio 连接WIFI首先我们需要配置WIFI,具体的配置参考上面这篇文章,下面将会讲述使用WIFI连接到新大陆云平台。相关的AT指令1.设置WIFI为Station模式AT+CWMODE=12.重启模块AT+RST3.连接WIFIAT+CWJAP="YaoJin","qwertyuiop111"4.单路连接模式AT+CIPMUX=05.连接云平台AT+CIPSTART="TCP","ndp.nlecloud.com",8600AT+

2020-05-20 15:11:31 4039

原创 使用RT-Thread Studio 连接WIFI

前言由于最近有需求,开始接触RTT操作系统,记录下这些操作以便后续复习使用。另外本文使用的开发板是小熊派STM32L431RCT6。正文首先先创建我们的项目,这里我生成的项目是Test,然后点击RT-Thread Settings进行操作。首先勾选乐鑫ESP8266,然后设置对应的SSID和密码,串口名称可以自己定义。那么定义好了串口名称要如何设置该串口呢,这里在board.h文件设置设置对应的TX和RX引脚即可。此时可以进行编译和下载,此时可以在终端上看到如下信息:此时我

2020-05-13 16:12:21 2280

原创 使用WireShake抓取CoAP协议数据包

1.说明本文将使用CoAP协议来对接华为OC平台,使用的通信模组是ESP8266,如果使用NB-IOT来对接华为OC平台简单很多,因为NB-IOT的设备标识符在平台绑定,那么使用几个AT指令即可完成华为OC平台的对接和发送数据。小熊派的官方教程有很多关于对接华为OC平台的例子,只需要移植和调用一个函数即可,这里我主要想探讨使用串口来对接华为OC平台(找事做),主要是对CoAP有更好的理解。本文关于以下几个部分:为什么要抓取CoAP数据包使用wireshake抓取数据包对数据包进行分析

2020-05-11 09:16:27 2500 3

原创 基于小熊派的智慧农业

前言小熊派的智慧农业扩展板E53_IA1,包含光照传感器BH1750和温湿度传感器SHT30,关于BH1750的初始化我在上篇博客有讲到,这篇博客主要说明SHT30的配置。SHT30复位操作void SHT30_reset(void){ uint8_t SHT3X_Resetcommand_Buffer[2]={0x30,0xA2}; //soft reset ...

2020-04-15 21:51:39 3764

原创 基于小熊派的智慧路灯(WIFI连接)

前言本文将讲解在使用小熊派官方例程中遇到的问题,以及实现用WIFI连接到华为云平台。正文一开始使用官方给的资料里面的智慧路灯demo,发现可以运行,数据能正常上传到云平台。但在过了一天以后,发现莫名连接不了,一直卡在如下这个界面。这里对应着下面这个语句在执行完nb_reboot()之后,尝试输出AT+CFUN?的信息,发现得到的结果是+CFUN:0,而我们的函数nb_hw_de...

2020-04-13 11:16:00 3638 1

原创 基于小熊派的NB-IOT智慧路灯(二)

前言因为网上资料不全,很多地方都对不上,比如官方的例程是这样的而我们用Iot-studio创建出来的确实下面这个样子。当我们点击该函数的定义的,却显示未找到结果我在学习NB-Iot的时候,有些地方不懂,所以写下这篇博客研究一下。任务函数osal_task_create我们先看osal_task_create的定义参数说明osal_task_cre...

2020-04-09 01:28:25 1873

原创 基于小熊派的NB-IOT智慧路灯

云平台的搭建华为云平台开发中心添加真实设备标识码是NB-IOT的唯一标识,可以参考调测NB-IoT模组创建一个工程,设置波特率为9600,在发送区输入“AT+CGSN=1”,加回车换行,点击“发送”,接收区返回的值“+CGSN:”后面的86开头数字为IMEI号;(开发板拨到PC)确定之后即可创建完成。把开关拨到MCU(之前拨到PC),然后按复...

2020-04-08 21:41:34 3675

原创 使用keras模型可视化 plot_model

使用keras模型可视化 plot_modelKeras中提供了一个神经网络可视化的函数plot_model,并可以将可视化结果以图片的形式保存在本地:keras中文文档from keras.utils import plot_modelplot_model(model, to_file='model.png')# 接收4个可选择的参数# show_shapes (默认为 Fals...

2019-12-14 15:41:35 2067

原创 关于MNIST手写数字识别的几种实现方式

文章概要由于我最近刚刚学习深度学习,就打算从深度学习中的“Hello world”(MNIST)开始,本文将包含以下几个内容SVM实现手写数字识别感知机实现手写数字识别AlexNet实现手写数字识别关于数据集MNIST数据集的下载链接从官网的介绍中,我们发现CLASSIFIERTEST ERROR RATE (%)SVM, Gaussian Kerne...

2019-11-16 18:38:23 4709 2

原创 深度学习笔记(二)-计算机视觉SSD

参考资料SSD(单次多盒检测)用于实时物体检测 http://wemedia.ifeng.com/70546840/wemedia.shtml#%%#In[1]from mxnet import image,contrib,gluon,nd#import numpy as npimport d2lzh as d2l#np.set_printoptions(2)import os...

2019-09-16 19:49:48 692

原创 深度学习笔记-计算机视觉

目标检测和边框值import d2lzh as d2lfrom mxnet import imaged2l.set_figsize()img = image.imread('img/catdog.jpg').asnumpy()# 边界框(bounding_box)dog_bbox,cat_bbox = [60,45,378,516],[400,112,655,493]# bbox...

2019-09-14 20:55:19 589

原创 深度学习笔记(六)卷积神经网络

参考资料【1】 深度学习cnn卷积神经网络原理(图文详解)https://www.sumaarts.com/share/620.html【2】大话卷积神经网络(CNN) https://my.oschina.net/u/876354/blog/1620906【3】大话CNN经典模型:LeNet https://my.oschina.net/u/876354/blog/1632862【4...

2019-09-13 21:32:27 969

原创 深度学习笔记(五)

目录本文将介绍如下内容多层感知机多层感知机的从零开始实现多层感知机的简洁实现多层感知机隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏层。输入和输出个数分别为4和3,隐藏层包含5个隐藏单元。由于输入层不涉及计算,因此该多层感知机的层数为2。样本批量大小为n,输入个数为d(4)。假设多层感知机只有一个隐藏层,其中隐藏单元个数为h(5)。记隐藏层的输出(隐藏...

2019-09-06 17:09:14 321

原创 深度学习笔记(四)

目录本文将介绍以下内容softmax回归从零开始实现softmax回归的简洁实现小结softmax回归从零开始实现读取数据集batch_size = 256#Gluon的DataLoader中允许使用多进程加速数据读取(linux系统)#在上一章的基础上,我们需要小批量的读取数据样本的函数train_iter,test_iter = d2l.load_data_fa...

2019-09-06 11:36:37 862

原创 STM32 SPI实验

目录本文将按照以下几个内容介绍SPI简介相关寄存器相关步骤相关代码运行结果几个注意点SPI简介SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola 首先在其 MC68HCXX 系列处理器上定义的。SPI 接口主要应用在 EEPROM,FLASH,实时时 钟,AD 转换器,还有数字信号处理器和数...

2019-09-04 16:03:40 2987 2

原创 STM32 RTC实验

RTC时钟简介STM32 的实时时钟(RTC)是一个独立的定时器。STM32 的 RTC 模块拥有一组连续计数 的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当 前的时间和日期。RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式 唤醒后 RTC 的设置和时间维持不变。但是在系统复位后,会自动禁止访问后备寄存器和 RTC...

2019-09-02 11:31:52 2163

原创 STM32 I2C实验

参考资料【1】 I2C总线协议图解 https://www.cnblogs.com/aaronLinux/p/6218660.html【2】 AT24c02中文资料 https://wenku.baidu.com/view/18e29fba1a37f111f1855b94.html【3】 24C02存储器的基本原理与应用 https://blog.csdn.net/ohy3686/artic...

2019-08-31 17:14:50 1314

原创 STM32 USMART源码理解

本文是基于正点原子USMART源码理解。该组件由 ALIENTEK 开发提供,功能类似 linux 的 shell(RTT 的 finsh 也属于此类)。USMART 最主要 的功能就是通过串口调用单片机里面的函数,并执行,对我们调试代码是很有帮助的。USMART 是由 ALIENTEK 开发的一个灵巧的串口调试互交组件,通过它你可以通过串口 助手调用程序里面的任何函数,并执行。因此,你可以...

2019-08-30 21:40:53 3359

原创 STM32学习笔记Lora(一)

目录本文将分为以下几个部分,分别是Lora的介绍相关AT指令部分源码理解正文Lora介绍物联网应用中的无线技术有多种,可组成局域网或广域网。组成局域网的无线技术主要有2.4GHz的WiFi,蓝牙、Zigbee等,组成广域网的无线技术主要有2G/3G/4G等。LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。...

2019-08-29 21:37:40 5370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除