自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不思考会变草履虫哦

做好每一件小事,每天进步一点点

  • 博客(70)
  • 收藏
  • 关注

原创 2024后端服务架构升级

业务的调整,合并多个服务,前端接入多套后端接口,通用的扣费、试用等逻辑不一致,所以服务拆分,以及需要做统一的微服务网关;对于微服务网关的调研,为什么选用这个云原生网关,跟传统网关的区别,以及这个网关服务跟普通服务有什么区别?1、xx业务经过多轮的业务决策和调整,存在非常多技术包袱,带了不好的用户体验和极高的维护成本。3、多套后端接口,前端接入标准不统一,通用逻辑不一致(扣费、试用、商业化)之前是多个单机房单体应用,需要提高服务的高可用,以及数据的高可用;4、单机房单应用,服务的高可用需要进一步提升。

2024-06-02 18:20:42 1281 2

原创 降级+熔断

根据上述策略,当某个服务的失败请求比例达到一定阈值时,熔断器会打开,进入熔断状态。在熔断状态下,所有对该服务的请求都会被直接拒绝,避免对故障服务的持续访问。在整个过程中,熔断策略会根据服务的实际情况动态调整,有效地避免了服务故障导致的系统崩溃。当断路器处于半开状态时,如果连续成功请求数达到MaxRequests,则断路器关闭,否则继续保持打开状态。在这个服务里,该函数计算失败请求比例,并在总请求数大于等于5且失败比例大于等于0.6时触发熔断。在这个服务里,该函数会记录断路器状态变化的日志。

2024-05-31 10:37:55 159

原创 分布式锁的原理和实现(Go)

红锁算法通过在多个 Redis 节点上创建锁,要求获得锁的客户端必须在大多数节点上成功创建锁,从而确保在分布式环境中只有一个客户端可以获得锁。zookeeper简称zk,zk是通过生成临时有序节点来实现分布式锁的,首先会在/lock目录下一个临时有序节点,后续请求会在节点后面继续创建临时节点。zk临时节点自动删除:当我们客户端断开连接之后,我们出创建的临时节点会进行自动删除操作,所以我们在使用分布式锁的时候,一般都是会去创建临时节点,这样可以避免因为网络异常等原因,造成的死锁。测试结果,可以使用压测工具。

2024-05-27 21:09:54 1182 2

原创 Go面试问题(牛客整理版)

sync.Map通过分段锁、细粒度的锁控制、只读视图遍历等机制,实现了高效的并发读写操作,特别适合在高并发场景下替代标准的map来保证线程安全,同时减少锁的竞争,提升性能。不过,需要注意的是,由于其内部实现较为复杂,相比于普通的map,在单线程或低并发场景下,它的性能可能会稍逊一筹。gRPC在实现过程中,涉及多个层次的技术栈和组件,这些层次共同构成了其高效、可靠的通信机制。接口定义层(IDL - Interface Definition Language)

2024-05-24 00:46:09 449

原创 k8s问题

声明式API是一种编程范式,它允许开发人员通过声明或描述应用程序的目标状态或结果,而不是编写实现这些结果的详细步骤和逻辑。这种方法简化了代码,易于理解和维护,并提高了代码的可读性和可重用性。声明式API的关键优点是将应用程序的"what"与"how"分离,让开发人员专注于描述应用程序的目标状态,而不用担心如何实现。这种方法可以使代码更简洁,降低错误发生的可能性,并更容易地实现自动化和优化。在许多领域,如Web开发、数据库查询和用户界面设计中,都可以找到声明式API的应用。

2024-05-23 11:58:34 1319

原创 计算机网络面试题

简洁版资料:https://blog.csdn.net/ThinPikachu/article/details/113479674。从输入URL到页面加载完成发生了什么?缺少https的知识。

2024-05-22 18:09:08 336

原创 大模型平台后端开发(xiaomi)

1 三数之和 (注意去重的边界条件,过几天再刷几次)2 长度最小的子数组 (代码随想录题目,滑动窗口)

2024-05-15 02:33:34 191

原创 Go的题目

在Go语言(Golang)的上下文中,提到“自旋”时,通常指的是在多线程编程中的一种同步机制,具体来说是指线程或协程(在Go中称为goroutine)在试图获取某个锁时,如果发现该锁已被其他线程或goroutine占用,那么它不会立即进入阻塞状态(如调用操作系统服务挂起自己),而是进入一个循环(即“自旋”),在循环中不断尝试重新获取锁,直到成功获取或达到一定的自旋次数或时间阈值为止。这个过程是高效的,因为M和P之间的关联是固定的,所以M可以快速地访问其关联的P的本地队列。如果计数器为零,则线程被阻塞。

2024-04-22 11:57:02 919 1

原创 go的实践

在这段代码中,心跳机制用于监控AI任务的进行情况。这样,外部监控系统可以检查Redis缓存中的心跳信号来判断任务是否仍在进行。如果在一定时间内没有收到新的心跳信号,那么可以认为任务已经中止或出现故障。在分布式系统或网络通信中,心跳机制可以用来监视节点和服务的可用性、性能和故障。心跳通常是通过定期发送小的数据包或信号来实现的,然后接收方会对这些信号进行响应,以表示它们仍然在线并正常运行。的作用是重置定时器(ticker)的时间间隔为2s,这样能每2s从通道中取到信息。,来更新ai任务的状态。

2024-04-19 16:00:44 403

原创 go标准库和第三方库使用

os excelize

2024-04-10 10:32:14 256

原创 go语言特性笔记

采用了显式的基于值比较的错误处理方案,函数 / 方法中的错误都会通过 return 语句显式。除此之外,Go 设计者所崇尚的显式哲学还直接决定了 Go 语言错误处理的形态:Go 语言。因此,如果要使这段代码通过编译,我们就需要对变量 a 和 b 进行显式转型,就像下面代。在 Go 语言中,不同类型变量是不能在一起进行混合计算的,这是因为 Go 希望开发人员。同,Go 不允许不同类型的整型变量进行混合计算,它同样也不会对其进行隐式的自动转。的方式通过转型统一参与计算各个变量的类型。

2024-03-31 14:40:54 609

原创 golang获取时区报错的问题

读取某些时区会报错,升级到1.20可以解决。golang

2023-09-09 21:21:04 365

原创 双指针专题

面试遇见过,当时用不熟的java写的,真菜死了。用字符串split和itoa方法就可以,用双指针可以节省空间。

2023-08-13 21:07:11 95

原创 mysql基础知识

查询单条数据,没有匹配的会报“no rows in result set”;查询多条数据,没有匹配的会返回空数组。对于唯一键,同时有几个接口都在插入数据,会报错“Duplicate entry * for key”更新了0条数据是不会报错的;

2022-10-31 20:41:00 637

原创 gograme学习

gf gen dao -path ./app/ -c config/config.yml -g fic(group名,可见.sql的上层文件夹名) -t user_view_menu(表名) -modelFile test.go(输出文件名)更改安装的swagger版本。

2022-09-23 21:53:38 1114

原创 go的数据结构

map sync.map

2022-09-23 11:52:13 342

原创 go学习资料

go语言基础原理goframe。

2022-09-23 10:44:36 87

原创 golang语法

基础语法和一些结构原理

2022-09-23 00:44:11 190

原创 git常用方法

切换回本地dev分支(如果本地没有dev分支的话 git branch -c dev来复制分支)从dev上拉代码创建自己分支yanxl/xxx,写代码并提交。(如果该步骤有Test.java文件冲突,手动修改冲突,然后。后面dev有更新,要把更新合到自己分支。最后,把自己的分支提交到远程。合dev代码到自己分支。

2022-09-21 15:48:03 141

原创 配置go开发环境

mac配置go环境

2022-09-18 13:21:36 481

原创 Java字符串专题

用字符串或字符分别处理,拓展一下:对输入含有字母/特殊字符的校验。

2022-09-04 22:55:13 288

原创 单调栈专题

思路:遍历数组,维护从栈底到栈顶递减的单调栈,循环查看如果有元素值大于栈顶元素,则输出数组的对应位置是这两个元素的间隔步数,并且栈顶元素出栈,为了记录步数方便,栈里存放数组的下标。2大于栈顶对应的元素1,1对应的下标出栈,返回数组的元素1对应位置赋值为二者的步数间隔 [5 > 3]4大于栈顶对应的元素2,2对应的下标出栈,返回数组的元素2对应位置赋值为二者的步数间隔 [5 > 3]4大于栈顶对应的元素3,3对应的下标出栈,返回数组的元素3对应位置赋值为二者的步数间隔 [5]5的下标入栈 [5]

2022-09-03 21:24:15 256

原创 2022年8月笔试题

笔试逻辑题

2022-08-10 13:13:04 622

转载 hashmap原理

HashMap1.7 扩容时头插法,逆序复制到扩容后的数组,多线程下共享变量,链表形成环,死循环。

2022-08-07 00:21:39 73

原创 mac中查找各种配置文件的方法

my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载。安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的。步骤:命令没有有效的输出结果。当我们需要修改配置文件时,需要找到mysql启动时是加载了哪个my.cnf文件。启动mysql后,我们查看mysql的进程,看看是否有设置使用指定目录的my.cnf文件,如果有则表示mysql启动时是加载了这个配置文件。命令比如看到/usr/local/Cellar/mysql/5.6.24/my.cn

2022-06-23 15:15:14 2416

原创 Java本地错误&提醒

关于WARN: Establishing SSL connection without server‘s identity的解决方案原因:不应与MySQL建立ssl连接,要显式禁用来源:https://blog.csdn.net/YOUYOU0710/article/details/107297577/

2022-06-21 20:53:39 138

原创 Mac M1 Java开发环境搭建

JDK去Oracle官网 下载Installer版本的,后点击安装;需要登录的话去找百度云链接多版本JDK默认安装在/Library/Java/JavaVirtualMachines目录下,配置 JAVA_HOME切换 JDK版本, 修改~/.zshrc文件#Javaexport JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Homeexport JAVA_17_HOME=/Library/Java

2022-04-29 23:11:36 1472

原创 easy常见题

LRU

2022-02-05 20:10:43 369

原创 Mac配置安装环境

IDEA安装,phdkfNavicata安装,rcbxmysql安装,密码ws-----11

2021-05-29 12:10:31 116

原创 重刷剑指offer

要用java好好刷题哦参考书A《剑指offer》 书B《程序员面试经典》1.A、B公共题包含min函数的栈分析:普通栈求min()的复杂度是O(N),满足O(1)的要求必须引入一个辅助栈,对主栈进行每一步操作时,更新辅助栈,使得辅助栈的栈顶都是当前主栈的最小值。注意:Java包装类Integer比较值要用equals...

2021-05-22 17:41:02 179 2

原创 Springboot论坛项目总结

帖子分页功能DAO层根据帖子详情的sql文件写实体类和对应的mapper接口,并在对应的.xml文件中写sql语句MVC层

2021-03-07 14:26:01 901 2

原创 笔试题

柠檬微趣 0306力扣原题290 单词规律限使用Java用哈希就好咯import java.util.HashMap;import java.util.Map;public class n1 { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param pattern string字符串 * @param str string字符串 * @return bool布尔型 */

2021-03-07 03:06:14 2021 3

原创 动态规划和贪心专题

分发糖果 力扣135import java.util.Arrays;import java.util.Scanner;class Solution { public int candy(int[] ratings) { int n = ratings.length; int[] left = new int[n]; int[] right = new int[n]; Arrays.fill(left,1); Ar

2021-03-06 13:27:23 137

原创 动态规划专题

文章目录跳台阶跳台阶一只正常青蛙跳1或2步台阶的方法数我们已经知道了class Solution { public int numWays(int n) { if(n==0){ return 1; } if(n<3){ return n; } int a=1,b=2,c=0; for(int i = 3;i<=n;i++){

2021-03-05 23:54:09 114

原创 赛码网输入输出格式和练习题

赛码网站真的蛮普通的!/-! 连搜索功能都没有,js渲染还会有乱码不过练习输入过程中发现的题还蛮好玩的单行输入// 脑筋急转弯题hhh 走的路不小于起点到终点的纵横距离,并且多走的路是2的倍数。// 乍看还以为是dfs的题呢~!/-\!import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(Syst

2021-03-01 00:14:56 1418 1

原创 论坛项目--Redis、kafka

待续

2021-01-15 16:08:01 233

原创 查找算法(二分、树)

二分法二叉搜索树红黑树

2021-01-13 17:00:35 87

原创 论坛项目--基础功能

SSM最简单流程

2021-01-09 15:22:45 431

原创 Java集合

待补充

2020-12-29 23:31:38 101

原创 剑指offer

数组03 数组中重复的数字一个萝卜一个坑法04 二维数组中的查找这题的二分法不会(写的麻烦多了)29 顺时针打印矩阵一圈一圈地打印

2020-12-29 21:14:59 68

空空如也

空空如也

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

TA关注的人

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