自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式开源报警系统frostmourne

不要把告警当做发现系统所有问题的手段,要通过日常巡检来解决,如果告警大多不需要立即处理,久而久之就不会再有人关注告警;环比相关的告警,是为了发现异常流量,对于流量陡起陡落的业务容易产生误报,根据自身实际情况来选择配置。注意:由于告警平台不支持普通用户跨部门操作告警规则,以下操作使用各部门admin权限账号操作。3、复制的告警规则只是基础的模版,部分规则的阈值设置要根据服务实际情况修改规则。对生产环境要有敬畏,谨慎操作,严禁直接操作到其他团队的告警规则。单个服务语法:xxxx{tc_bj_ewp_prod=

2023-08-13 21:43:06 510

原创 异步mq和线程池如何选择

异步处理:如果核心逻辑和非核心逻辑可以在后台异步处理,不需要立即返回结果,使用消息队列可以提高方法的响应速度,因为主方法不需要等待非核心逻辑的完成。例如,可以将消息队列用于系统之间的异步通信和解耦,同时使用线程池来处理接收到的消息,从而充分利用系统资源和提高系统性能。- 并发处理:如果核心逻辑和非核心逻辑需要并发执行,线程池是更合适的选择,它可以高效地管理和复用线程,从而提高系统资源的利用率。- 任务队列:线程池常与任务队列结合使用,将待处理的任务放入队列中,线程池中的线程从队列中获取任务并执行。

2023-08-01 22:48:03 1366

原创 [算法]并查集代码模板

i < n;if (x!int[] fa;

2023-07-23 11:50:25 75

原创 【算法】二分查找代码模板

/第一个>=target的数的下标(不存在为n)//最后一个<=target的数(不存在为-1)// 开始位置(lower_bound):查询第一个>=target的数。// 范围 [-1表示不存在] + [0 .. n-1 ]// 范围 [0 .. n-1 ] + [n表示不存在]// target出现在[ans[0], ans[1]]// 如果要求4位小数,就多算2~4位,到1e-6或1e-8,保证精确。// 结束位置:查询最后一个<=target的数。// 更通用的二分模板。

2023-07-19 20:55:48 70

原创 【算法】二叉堆代码模板

while (child < heap.size()) { // child未出界,说明p有合法的child,还不是叶子。if (heap.get(p).key > heap.get(child).key) { // 小根堆。if (heap.get(p).key < heap.get(fa).key) { // 小根堆。// 当最小被取出后,指针向后移动一位,可能需要插入新的元素。// child存较小的孩子。// 让child跟p比较。// 在答案链表的末尾插入。// O(元素个数*logK)

2023-07-19 20:54:33 29

原创 [算法]分治代码模板

return res;

2023-07-19 20:53:05 35

原创 【算法】递归代码模板

/ 或者把剩下的全选上也不够k个,退出。// 已经选了超过k个,

2023-07-16 11:35:56 34 1

原创 【算法】组合递归模板

/ 或者把剩下的全选上也不够k个,退出。// 已经选了超过k个,

2023-07-16 11:35:01 27 1

原创 【算法】排列递归模板

i < n;dfs(0);return ans;return;i < n;i++) {

2023-07-16 11:33:57 30 1

原创 【算法】LRU Cache

/ 在链表中插入新结点,返回新结点引用。// 重新插入到map、链表头部,维护时间顺序。// node与head的下一个点之间建立联系。// 重新插入到头部,维护时间顺序。// node与head之间建立联系。// 建立带有保护结点的空双向链表。// 从链表和map中删掉。

2023-07-16 11:21:57 34 1

原创 【算法】双指针夹逼模板

/ LeetCode 167 两数之和 - 输入有序数组。

2023-07-16 11:20:40 27 1

原创 【算法】差分代码模板

/ 差分要开0~n+1。// LeetCode 1109 航班预订统计。

2023-07-16 11:19:40 49 1

原创 【算法】二维前缀和代码模板

/ LeetCode 304 二维区域和检索 - 矩阵不可变。

2023-07-16 11:17:58 56 1

原创 【算法】前缀和、数组计数代码模板

/ s[i] - s[j] = k, 求j的数量。// LeetCode 1248 统计优美子数组。

2023-07-16 11:16:44 49 1

原创 【算法】单调队列模板

/ 维护队列单调性,插入新的选项。// 双端队列,存下标(代表时间)// LeetCode 239 滑动窗口最大值。// 保证队头合法性。// 取队头更新答案。

2023-07-16 11:12:54 38 1

原创 【算法】单调栈模板

/ 帮助我们在最后把栈清空。// 第二步:while (栈顶不满足高度单调性) 累加宽度,出栈。// 每个柱子入栈、出栈各一次,2n=O(n)// LeetCode 84 柱状图中最大的矩形。// 第三步:新元素入栈。// 第一步:for 每个元素。

2023-07-16 11:11:39 60 1

原创 第三方更换通讯证书导致SSLHandshakeException

2)httpclient和okhttp添加绕过ssl验证。1)hutool升级到5.3.8版本以上。1、如果想快速恢复,直接重启服务器。主要考虑从以下几个方面。3、对于http工具类。

2023-07-12 00:16:06 114 1

原创 电商秒杀系统架构

秒杀其实主要解决两个问题,一个是并发读,一个是并发写。并发写的处理原则也一样,它要求我们在数据库层面独立出来一个库,做特殊的处理。另外,我们还要针对秒杀系统做一些保护,针对意料之外的情况设计兜底方案,以防止最坏的情况发生。现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,我们还要设计一个 PlanB 来兜底,以便在最坏情况发生时仍然能够从容应对。秒杀请求依赖登录状态,登录状态一般都是保存在分布式缓存中的,因此发送秒杀请求发送给任意服务器都可以,这里选择“轮询”或者“随机”算法。

2023-07-02 19:11:09 372 1

原创 zookeeper高可用集群方案

4. 所有节点 watch parent znode,收到变更通知的时候读取 parent znode 的数据,发现是自己则成。集群共用父节点 parent znode,集群中的每个节点在 parent 目录下创建自己的 znode。集群共用父节点 parent znode,集群中的每个节点在 parent 目录下创建自己的 znode。当 Leader 节点挂掉的时候,持有最小编号 znode 的集群节点成为新的 Leader,因此用。1. 节点启动或者重连后,在 parent 目录下创建自己的。

2023-06-22 10:52:11 524 1

原创 教育行业广告投放系统异地多活架构设计

3、分班(期id, 班id, 群id), 全局唯一、不可重复,每次新增,不同步。业务包括:链路(手机号登录)、接量(报名分班)、促活(短信、消息等)、回传。2、分班(期id, 班id, 群id), 全局唯一、可重复,由算法生成。1、获取落地页相关信息,渠道码和子渠道码信息,全局唯一,不可变,不可丢失。1、用户id: 全局唯一、不可变,采用数据库+消息队列同步。1、报名id, 全局唯一、不可变,可重复生成。2、报名id:全局唯一、不可重复,每次新增,不同步。2、手机验证码留资,可重复生成、可丢失。

2023-06-18 20:03:36 90 1

原创 电商微服务架构设计

因为都是java语言,选择dubbo或者spring cloud, 从性能角度考虑,rpc由于采用tcp协议,效率比spring cloud高,因此采用dubbo。2、服务网关:spring cloud gateway。3、配置和注册中心:nacos。4、消息队列:rocketmq。1、微服务框架:dubbo。

2023-06-11 16:52:22 300

原创 高并发场景下中间件实践总结

为什么要性能调优?1)高并发场景下会遇到各种问题2)充分利用服务器资源,降低成本1.1 tomcat调优Tomcat 的关键指标有吞吐量、响应时间、错误数、线程池、CPU 以及 JVM 内存。前三个指标是我们最关心的业务指标,Tomcat 作为服务器,就是要能够又快有好地处理请求,因此吞吐量要大、响应时间要短,并且错误数要少。后面三个指标是跟系统资源有关的,当某个资源出现瓶颈就会影响前面的业务指标,比如线程池中的线程数量不足会影响吞吐量和响应时间;但是线程数太多会耗费大量 CPU,也会影响吞吐量;

2023-05-28 20:32:57 302 1

空空如也

空空如也

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

TA关注的人

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