自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AaronCao

停下来,就思考,思考完,继续停下来之前的事情!

  • 博客(125)
  • 资源 (1)
  • 收藏
  • 关注

原创 看完这篇Kafka,你也许就会了Kafka

Kafka学习文章目录Kafka学习1. Kafka简介1.1 Kafka消费模式1.2 Kafka的基础架构1.3 Kafka的安装和使用2. Kafka高级2.1 工作流程2.2 文件存储2.3 生产者分区策略2.4 生产者ISR2.4.1 副本数据同步策略2.4.2 ISR(同步副本集)2.5 生产者ack机制2.6 数据一致性问题2.7 ExactlyOnce3. 消费者分区分配策略3.1 分区分配策略3.2 消费者offset的存储3.3 消费者组案例4. 高效读写&Zookeeper作

2021-01-13 20:58:15 175482 87

原创 什么是Service Mesh?

Service Mesh服务网格主要的目的就是为了应对在微服务架构流行的当下,将大量离散服务组合成功能性应用程序的方法,通过服务网格我们可以实现对各个服务的统一观测和复杂控制,并实现服务发现、负载均衡、流量管理等功能,同时使用服务网格还能增强服务的安全性以及部署的安全性。

2024-07-21 17:29:40 746 1

原创 聊一聊支付的通知机制

从WX支付的支付通知看对应的商户接入的设计,约定规范可以帮助规避很多问题,同时可以屏蔽很多不必要的逻辑,从而使得支付网关更符合网关的设计。

2024-07-20 15:42:18 714

原创 RPC与服务的注册发现

主要介绍RPC的工作流程和原理以及和REST的区别,同时针对RPC相关的实施gRPC进行实践,最后介绍了关于RPC的服务注册与发现相关的实现。

2024-07-14 17:32:11 1169

原创 不规范操作chan引发的线上panic

因为代码逻辑的疏忽导致代码产生了严重的panic进而导致服务逻辑停止,一切都源自于对已经关闭的chan进行写操作,从而导致了panic的产生。

2024-07-13 00:00:32 712

原创 浅尝Apache Mesos

分布式的系统内核之Mesos

2024-07-07 17:46:28 780

原创 大家都在跳槽,我需要跳槽吗?

跳槽有利有弊,不跳槽也有利有弊,多样的选择,无论我们怎么选,都会是最好的选择。

2024-06-30 17:28:19 1240 2

原创 面向学校 or 专业?

最后祝你们能够选择到自己心仪的学校心仪的专业,也祝你们拥有和你们的青春一样美好的人生!加油吧,少年们!

2024-06-30 13:39:55 560

原创 MySQL之表碎片化

因为删除表数据发现表使用空间未被释放,继而发现有表碎片问题,查找一些资料去了解表碎片的产生以及表碎片的处理,最终让自己学习到了关于InnoDB表碎片相关的知识。

2024-06-23 17:44:30 957

原创 Linux screen命令使用

使用screen命令来实现新建窗口与会话恢复

2024-06-16 16:00:27 893

原创 学习cel-go了解一下通用表达语言评估是什么

通用表达语言(CEL)是一种非图灵完备性语言,旨在简单、快速、安全和可移植。CEL的类C语法看起来与C++、Go、Java和TypeScript中的等效表达式几乎相同。

2024-06-15 19:10:07 1389

原创 监听DB配置变更之go-broadcast简单实现

go-broadcast简单实现DB配置变更快速通知功能

2024-06-10 14:27:14 1008

原创 golang本地缓存库之bigcache

golang本地缓存bigcache

2024-04-21 17:55:56 1255 1

原创 外部工具包不要依赖服务的环境变量

外部工具包不要依赖服务的环境变量,如果必须要依赖,那么在缺失环境变量时就要有足够严厉的告警提示使用者,否则容易引入bug

2024-04-02 22:46:08 385

原创 记一次对Codis的无知引起的逻辑变更

Codis是Redis的分布式解决方案,旨在提供Redis的分布式部署和自动分片功能。但Codis不支持Redis的所有命令,而不支持PUBLISH命令导致了一些业务逻辑的变更。

2024-03-31 18:13:15 665

原创 记使用sjson的一次小事故

sjson数字key与字符key设置的不同在使用时需要考虑,否则可能会导致出现内存爆炸的问题。

2024-03-24 16:56:52 535

原创 context.WithTimeout()之实现Gorm超时控制

Context是Golang中的上下文,Gorm是当前用的比较多的SQL组件库,在Gorm中,Gorm通过提供了Context支持,在某种程度上来说,Gorm目前提供的Context可以实现对于SQL的超时控制。本意是为了实现gorm单条SQL语句执行时间的控制而引入的,限制单条语句执行时间,后面在修改过程中遇到了关于的问题,在修复问题的过程中让自己对有了更深的理解。

2023-09-02 17:46:39 2247

原创 浅尝OpenResty

当一个域名中衍生出多个服务的时候,如果想要保持对外服务始终是一个域名,则需要通过nginx反向代理来实现。nginx + lua module来实现Openresty来实现我这里尝试使用Openresty来实现lua脚本嵌入逻辑实现nginx的请求转发。

2023-08-20 13:02:44 855

原创 Golang服务的请求调度

最近在看相关的Go服务的请求调度的时候,发现在gin中默认提供的中间件中,不含有请求调度相关的逻辑中间件,去github查看了一些服务框架,发现在go-zero中,有一个SheddingHandler的中间件来帮助服务请求进行调度,防止在流量徒增的时候,服务出现滚雪球进一步恶化,导致最后服务不可用的现象出现。SheddingHandler中间件存在的意义就是尽量保证服务可用的情况下尽可能多的处理请求,而在流量突增的时候,丢弃部分请求以确保服务可用,防止服务因为流量过大而崩溃。

2023-08-13 19:02:56 460

原创 go语言中decimal的用法及实践

decimal的应用场景主要出现在对float浮点数进行加减乘除操作的时候,尤其是对于银行金融一块的业务,如果精度丢失,一笔交易上面的损失可以忽略不计,但当交易的规模达到几千万或者亿甚至几十亿的时候,这个时候的损失就会大的吓人了。decimal对于浮点数的计算提供了极大的便利性,让我们在使用浮点数进行大小计算的时候不用担心精度丢失的问题,尤其是对于金融行业,精度丢失造成资损就是很重大的生产事故了。的数据进行计算的时候,我们可以使用第三方的decimal包来解决这个问题。可以获取到浮点数计算结果的整数部分。

2023-01-08 12:18:13 3834 1

原创 Python中5个有用的函数

Python中5个有用的函数本文主要介绍在Python中5个比较重要的函数,通过代码的实例来呈现这些函数为什么有用。这些函数写出来比较简单,但在代码结构的优化上却可以大显身手。Python有许多的函数库以及内置函数,理解这些函数并在日常编程中使用它们将会帮助我们实现有效编程。1. Lambda函数匿名函数是Python中一个重要的函数,在很多地方我们都会用到匿名函数,匿名函数简单来说就是声明函数,可以不用赋予函数名称。如果有一个简单的需求需要执行,使用lambda函数是极其有效的。lambda函数和函

2021-07-25 22:52:30 633

原创 RSA加密与解密

RSA加密解密关于公钥和私钥的加密解密问题1. 简介RSA(Rivest-Shamir-Adleman)是当前用于加密和解密信息的算法,它是一种非对称的密码学算法,非对称的含义就是加密和解密用的密钥是不同的,对称的加密算法类似于我们的门锁,加密解密都是通过我们的钥匙来实现的,是同一把钥匙,而对称加密是加密的钥匙是一把,大家都可以拥有这把钥匙,而解密的钥匙是另一把,而这把钥匙只能你有,其他人都没有。RSA涉及的公钥和私钥,公钥表示每个人都可以知道,都可以使用它来进行加密信息的操作,而采用公钥加密的

2021-06-20 18:14:16 1154 1

原创 Django的分库分表

文章目录1. Django分表方案2. Django分库方案2.1 DB路由方式2.2 Config配置方式3. 小结1. Django分表方案当系统数据越来越多的时候,查询变得缓慢,即使加了索引,由于表数据的增加,索引的维护也会成为数据库性能的限制问题,所以此时可以通过分表,将数据通过某种准则分别存储到不同的表中,以实现缓解单表的压力。分表的方法大部分都是通过主键id取数据库分表个数的余。最简单的方法就是定义多个Model对象,然后通过一个map的映射,当我们获取具体的Model的时候,直接就通过.

2021-06-19 17:49:50 3821 1

原创 固有思维的思考

固有思维每一个意识形态的形成背后都有着一个故事,它们或是发生在过去了很久的时光里,亦或是最近的生活中,但无论发生的时间点远或者近,它们都让你在思考某件事上的意识形态发生了变化。今天的话题是固有思维,为什么会说起这个话题,这是因为最近的一件事情让自己觉得固有思维真的是太可怕了,或许现在的结果是最好的,也许不是最好的,这件事情发生在去年的4月份左右,如果不是结合现在和过去,那就没有所谓的反思和思维的进步。在去年的4月份,金三银四对于找实习的自己来说,像是一条铁律,在自己的心里面扎根,于是投递了鹅厂的岗

2021-06-19 11:18:58 479

原创 了解一下Celery

Celery1. 简介Celery - 中文名翻译叫芹菜,是一种分布式的任务队列(Distribute Task Queue)Celery is a simple, flexible, and reliable distribute system to process vast amounts of message, while providing operations with the tools required to miantain such a system. --摘自官方文档Cele

2021-06-14 22:19:16 669 2

原创 帮你快速上手Jenkins自动化部署

Jenkins学习文章目录Jenkins学习1. 下载与安装问题点2. Jenkins的使用2.1 配置流程**2.1.1 如何让jenkins与github通信**2.1.2 配置Jenkins2.1.3 一段Django启动的脚本2.1.4 webhook的配置**2.1.5 jenkins添加webhook**github配置webhook3. 运行4. 小结第三周在未学习Jenkins之前,只是对Jenkins有一个比较模糊的理解,即Jenkins是一个自动化构建项目发布的工具,可以实现代码

2021-05-29 19:56:59 445

原创 压测工具wrk的使用

压测工具wrk的使用0. 写在前面缅怀袁老,国士无双,感恩能与您同处一个时空!袁老一路走好!那些与我们同时代的光芒熠熠的人物,其实和伴随我们的日月星辰没什么区别,平时你总不大会时常想起他们,你总觉得他们永远会在。然而他们却又和日月星辰不同,是西沉了就不再升起,划过天幕就不再回来。文章目录压测工具wrk的使用0. 写在前面1. 简介2. wrk3. 安装&使用3.1 wrk的使用3.2 wrk测试报告3.3 借助lua脚本进行复杂测试3.3.1 wrk的全局变量3.3.1 wrk支持

2021-05-23 11:19:57 529

原创 Go语言Web框架Beego学习

1. 安装beego// 下载beego的安装包go get -u github.com/beego/beego/v2@v2.0.0// 可能会与遇到错误,如下图所示,然后开启set GO111MODULE=on即可,go env可以看环境变量配置,mac/Linux使用export GO111MODULE=on即可set GO111MODULE=on如果安装还是没有反应set GO111MODULE=onset GOPROXY=https://goproxy.io// 然后再执行,即

2021-03-18 10:43:53 1030 1

原创 不能使用for循环遍历Queue

为什么不能使用for循环遍历Queue昨天有个朋友问我一道算法题,给出了他和答案的两个版本,这道题我看过,并查集问题,左看右看就是没发现它有问题,于是进行debug,发现数据读取没有问题,于是继续判断合并是否有误,发现也没有问题,最后发现他使用的PriorityQueue他使用的for循环进行遍历,好家伙,我当场好家伙!1. 遍历 public static void main(String[] args) { // 默认是小顶堆 PriorityQueue<

2021-02-01 13:11:22 1989

原创 Windows自动恢复报错:无法加载操作系统,原因是关键系统驱动程序丢失或包含错误

Windows自动恢复报错:无法加载操作系统,原因是关键系统驱动程序丢失或包含错误1. 问题无法加载操作系统,原因是关键系统驱动程序丢失或包含错误上午因为有点事就没有像往常一样打开电脑,下午回到家休息了一会本来准备打开电脑开始我愉快地下午生活,没想到一个自动恢复给我整懵逼了。于是就开始百度,怎么样搞怎么样搞。网上关于这个问题的帖子很多,但是能提供帮助的很少,最后能够解决问题的也很少。摸爬滚打一下午,到最后也算是搞定了。记录一下心得,也给后面的小伙伴一些帮助。2. 解决过程首先在百度的过程中自己

2021-01-30 21:09:53 33816 7

原创 CondaError: Cannot link a source that does not exist.

晚上跑论文图像的时候发现自己的sklearn.metrics版本有些低,报错告诉我davies_bouldin_score不存在。我很纳闷,前段时间在学校还好好的,怎么现在就这样了。于是开始百度,就有了下面的过程。1. 报错# 我执行的更新conda update scikit-learn# 本来是好好的,但是下载的速度真的慢的惊人速度慢引起的更换镜像源于是更换镜像源# 中科大亲测可用(清华源会报错,不可用)conda config --add channels https://mir.

2021-01-27 22:59:59 8117 1

原创 这篇Linux&Shell,可复习一下

文章目录1. Linux基本介绍2. Linux基本命令学习2.1 vi和vim2.2 Linux开关机以及用户登录注销2.2.1 关机&重启2.2.2 登录&注销3. 用户管理3.2 用户3.2 用户组4. 实用指令4.1 init4.2 help帮助指令4.3 基础命令5. 组管理和权限管理5.1 组管理5.2 权限管理6. 任务调度7. Linux磁盘操作7.1 分区&挂载7.1 磁盘情况查询8. 网络配置8.1 网络服务9. 进程管理9.1 查看进程9.2 进程服务9.3 开

2021-01-15 19:30:12 426

原创 实习与秋招总结

实习与秋招总结导语从2020年2月24日去北京实习到现在快接近一年了,但是第一次去大城市,去租房,去实习的那种场景感觉就在眼前,感觉就是发生在昨天。在北京滴滴开启的第二段实习,随后在深圳开启的第三段实习,到6月逐渐进入秋招,10月签了三方,虽然最后的签约offer相比优秀的大佬并不是很好,但自己也算有所得了!我我是一个来自本科双非,研究生双非的渣硕,研一进入学校之前就知道自己研究生逃脱不了编程,于是就选择了大学时期学了一点皮毛但没有坚持学下去的现在看来就业面最广的Java,在上课的时光中看着Ja

2021-01-13 22:15:27 785 2

原创 RabbitMq学习

文章目录1. 简介1.1 优缺点1.2 安装2. 消息工作队列2.1 简单工作队列2.2 工作队列(轮询、公平)2.3 路由队列2.4 RPC工作模式3. 事务4. SpringAMQP5. 小结1. 简介MQ是消费者-生产者模式的一个典型的代表,消费者往消息队列中不断的写入消息,而另一端则从消息队列中读取或者订阅队列中的消息,MQ与JMS类似,但是不同的是JMS是Java消息中间件服务的一个标准和定义,而MQ则是遵循了AMQP协议的具体实现和产品。AMQP:Advanced Message Q

2021-01-07 16:07:08 437

原创 Docker学习(命令+实战)

文章目录1. Docker概述Docker在任何地方开发、部署和运行任何应用Docker的优势DockerDocker能干什么DevOps(开发自运维)2. 镜像image2.1 父镜像2.2 基础镜像2.3 镜像ID3. Docker架构4. Docker底层工作原理4.1 Docker是怎么工作的?4.2 Docker为什么比VM快?5. Docker常用命令5.1 帮助命令5.2 镜像命令5.3 容器的相关命令6. Docker镜像6.1 镜像操作7. Dockerfile7.1 容器卷7.2 Doc

2020-12-27 21:17:58 438

原创 SQL语句实战学习(几乎涵盖了所有的SQL使用场景)

SQL语句实战文章目录SQL语句实战1. 数据准备2. SQL案例2.1 简单查询2.1.1 查询姓"曹"的学生名单2.1.2 查询姓名中最后一个是"玉"的学生名单2.1.3 查询姓名中带"星"的学生名单2.2 汇总查询2.2.1 查询课程编号为"0002"的总成绩2.2.2 查询选了课程的学生人数2.3 分组查询2.3.1 查询各科成绩最高和最低得分2.3.2 查询每门课程被选修的学生数2.3.3 查询学生中男、女人数2.4 带条件的分组查询2.4.1 查询平均成绩大于60分学生的学号和平均成绩2.4.

2020-12-25 22:09:14 3337 3

原创 Goland利用testing测试程序可用性

1. 问题在用GoLand写Go代码的时候,不像之前Java那样,可以直接在一个程序中使用Junit可以直接去跑一个代码块了,在go里面是有单独的测试库testing可以使用,只是需要遵守规则:一般测试文件以测试程序名_test.go命名测试函数需要为func TestXxxx注意第一个X一定要大写,否则不生效在我使用的过程中,原意是对User进行数据库的添加用户操作的测试。可以看到如果单独的去执行这个测试函数func TestAddUser会发现报错未定义,实际上这个User在1中可以

2020-12-21 20:31:36 651 2

原创 go语言传递对象和传递指针对象的区别

1. 问题晚上看到很多方法里面传递了对象还传递了指针对象,但是感觉之前学习的时候,传递指针对象和传递对象没有什么区别(取值上面),就开始了这个问题。问题就是两者都是传递,都可以取到正确的值,但是为什么要分开传递呢?2. 结论结论的话:如果传递参数仅仅是对象的话,则此对象无论进行什么操作,都是在原对象的拷贝对象上做的,并不会影响传递的对象,除非将处理后的对象返回替代原对象,则修改会生效。如果传递参数是指针对象的话,则对象进行的所有的修改操作都是建立在直接修改原对象的基础之上的,因为传递的本身

2020-12-17 22:37:38 1608

原创 [leetcode-530]二叉搜索树的最小绝对差

1. 题目给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入:[1,null,3,2]输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。提示:树中至少有 2 个节点。本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同来源:力扣(LeetCode)链接:https://leetcode-cn.c

2020-10-12 09:27:12 175

原创 Spark创建DataFrame

1. DataFrame在Spark中可以通过RDD转换为DataFrame,也可以通过DataFrame转化为RDD,DataFrame可以理解为数据的一个格式,实质show()就是一张表。读取数据构造DataFrame主要有以下几种方式:从Json文件中读取通过SQLContext构造类对象构造DataFrame动态创建Schema构造当前的DataFrame结构从parquet文件中读取从MySQL中读取数据从Hive中读取数据2. 从json文件读取构造DataFrame p

2020-09-24 09:31:17 856

十路智力抢答器

十路智力抢答器的课程设计报告,包含电路图及其零部件的适配

2019-02-14

空空如也

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

TA关注的人

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