自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 kafka概念学习

consumer和group_id和partition和offset:每个group_id为每个topic的每个partition维护了一个offset,保证单个partition中消息有序消费(所以一个topic同一时刻只能有一个消费者消费,除非rebalance)。group_id和topic:一个group_id可以包括1个或多个topic,一个topic也可以分配到1个或多个group_id。topic和partition:一个topic可以包括1个或多个partition。

2023-09-08 00:36:47 529 1

原创 一次问题排查

上周六的排查过程,其实就属于走到第4步的情况,最大的问题是,在常规1/2/3思路不通的时候(各种重启会滚,已经过去了半小时,9.30了仍然没有解决问题),没有一个主心骨的成熟套路去排查定位问题,也没有一个统筹全局的人去管理分工合作(每个人都没有套路,而且还可能影响别人的节奏)。1,其次是要建立完善的预警(注意不止是告警)机制,包括架构中节点的服务器系统监控指标,服务应用监控指标,需要具备完善的(针对各个服务器,各个应用)全面的(区分警告的,错误的)监控指标。常规的几个超时接口要积累已知的原因和解决方案。

2023-08-21 01:56:04 107 1

原创 隧道的使用

公司生产机器,肯定不能随便就访问的。一个常规思路是,我们搞一个跳板机,只有通过跳板机才能访问公司生产机器。然后每个用户分配一个跳板机账号密码,可以很好的细粒度权限控制以及追溯。

2022-10-28 23:10:40 742 1

原创 找出环入口

代码】找出环入口。

2022-07-28 21:49:47 120

原创 微服务自我总结

垂直拆分是根据业务耦合程度,分别把数据放到不同业务边界对应的数据库中,不同的业务代码也根据业务拆分到对应的项目中。由于每个业务服务需要其他数据,就需要链接所有的数据库。如果开发者严格按照业务划分进行职责划分和代码维护,本地调用也是可以继续使用的。而且微服务的其他优点,都是有替代方案的。与垂直拆分的区别是,每个微服务只链接一个数据库,如果需要其他数据需要使用远程调用。当数据库qps成为性能瓶颈时,就需要数据库垂直拆分了。当业务复杂度成为开发瓶颈时,就需要服务垂直拆分了。所有代码全在一个项目里。...

2022-07-28 20:34:02 492

原创 sign in with apple

sign in with apple

2022-06-23 20:52:03 263 2

原创 一个通用的分享/领取/奖励微服务

一个通用的分享/领取/奖励微服务

2022-06-04 19:14:46 142

原创 再谈接口安全

# 结合 redis 实现一人一密的接口安全认证方案。加密方案使用jwt,但是实际落地不仅限于 jwt(md5等均可),jwt 方便之处是可以自带并自检 exp。# 可以防止撞库,撞对一个的概率是1/(52**32)。如果有撞库现象,可以对 ip 进行频次监控。# 不怕密钥泄漏,密钥不会传输,不怕被抓取。如果用户主动伪造攻击,可以对 uid 进行频次监控。# 不怕加密算法泄漏,因为一人一密。# 可以防止重放攻击。

2022-05-28 16:18:48 95

原创 python实现一个耗时分析工具

手写一个性能监控模块,类似于line_profiler提供的功能。

2022-05-28 15:37:04 300

原创 python 开任意数的平方

1,介绍开平方有好几种方法,本文无意调研这个事情。只是初中有个老师曾经用粉笔,教给我们手撕任意数开平方的方法,自己回忆起来整理用python实现一下。2,code#! /usr/bin/env python# -*- coding: utf-8 -*- # 开平方import timeclass NumberNode(object): def __init__(self, num): self.num = num self.square_re

2022-05-28 14:49:00 1054

原创 动态规划系列1

#! /usr/bin/env python# -*- coding: utf-8 -*-# 给定一个含有# n# 个正整数的数组和一个正整数# s ,找出该数组中满足其和 ≥ s# 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回# 0。#### 示例:## 输入:s = 7, nums = [2, 3, 1, 2, 4, 3]# 输出:2# 解释:子数组[4, 3]# 是该条件下的长度最小的连续子数组。class Solution(obj.

2022-05-28 14:32:40 1033

原创 红点功能设计与实现

1,说明互联网产品,最常见的一个功能就是红点。下面举一个简单需求场景:某个产品很多订阅者(即用户),后台维护有很多内容。 后台新增或编辑某个内容,所有订阅者打开这个页面都会看到红点。 某个订阅者点击红点后红点消失,其他订阅者没有点击过还会有红点。 后台再次新增内容,所有订阅者都会再次看到红点。现在我们做一个简单的红点微服务。2,这个需求怎么实现2.1 数据库设计2.1.1 外部表引用说明:用户表和内容表这俩表不属于红点微服务,简单起见就给出最小可行性定义:create

2022-05-28 12:33:33 692

原创 Golang err: invalid memory address or nil pointer dereference

1,bug提示信息panic: runtime error: invalid memory address or nil pointer dereference2,case截图3,如何排查从上到下阅读错误栈信息,直到找到报错的最新一行业务代码。问题就是:这行代码有某个结构体变量的值为nil,不能获取nil下的字段值。这行代码没有几个变量,对所有用到的变量以及变量的字段挨个打个log就找到了。...

2022-05-28 10:59:37 584

原创 python常见错误:No Module named xxx

1,问题描述python开发过程中,非常常见的一种错误。对于初学者常常比较困惑,希望有一个排查该类问题的套路过程。其实对于经验丰富的python开发工程师写出的程序,也可能会出现该类错误。2,原因这种提示是指python解释器在解释import语句时,找不到对应的模块,具体原因如下:python通过模块来组织代码。 模块就是python文件夹(有__init__.py文件的文件夹),python文件,python类(python里一切皆类)。 import语句可实现不同模块之间引用。

2022-05-28 10:56:20 12453

原创 互联网产品如何保障接口安全

或者另一种说法:如何识别非正常请求。1. 前后端交互说明两种类型:游客访问模式和注册用户模式。游客访问流程:很简单,直接访问后端。 用户注册流程:用户注册,用户登录,登录后接口访问。2. 游客直接访问后端清晰的知道当前访问属于游客,可以明确控制游客权限,比如限制可访问资源的内容,数量和时间。3. 用户注册防止资源消耗:比如短信验证码消耗,方法有滑块验证。 防止薅羊毛:比如很多真实手机号注册进来,后续用这些用户想干啥干啥,可以通过ip进行检查。4. 用户登录防止撞库:比如暴力

2022-03-02 19:08:56 4391

原创 python调用rpc代码维护方案探讨

python调用rpc代码维护方案探讨user重构,我们准备增加一个代码仓库rpc_client,维护python调用rpc服务的代码。⁣1,现状1.1,微服务架构我们现在有多个python旧服务项目(user_server/course_server/cms_server_v2等等),以后会有多个golang的rpc服务(passport_i/user_i/business_i等)。不支持在 Docs 外粘贴 block1.2,封装rpc如上图每一个旧服务的rpc调用,都需要封

2021-09-25 21:31:56 127

原创 go学习小结

go入门学习总结go开源,编译性语言,语法简单,并行处理封装。常应用于搭载 Web 服务器。一切皆类型一个最小可行性编程语言包括对数据结构的支持和对指令流程的支持,可以让程序员实现和操作数据结构,编写指令实现算法。go语言认为接口/结构体/函数皆类型,字典/数组/指针/切片/通道等都是类型,和int/string/bool等同属于第一公民。(如有不了解的概念,比如切片/通道等可参考后续`类型`章节说明)。类型类型是对数据结构的定义,包括内建类型,扩展类型和自定义类型。每.

2021-09-20 10:56:36 333

原创 系统重构过程中的异构数据同步回环处理

1,背景随着业务发展,公司初创伊始延续下来的it项目,会出现:边界不清晰,指责混乱,重构在所难免。重构的时候,需要重新设计库表,并重新编码实现业务,为了安全起见,一般会引入金丝雀发布环境。所以在一段时间内,系统是存在两个异构的底层数据,以及新旧两个系统共存。这就要处理好异构数据的双向同步问题。2,方案使用canal,上传binlog到kfk,然后写py脚本消费kfk消息。https://blog.csdn.net/yehongzhi1994/article/details/1078801

2021-05-12 20:30:15 826

原创 python编码问题

py文件首行(或次行)的# encoding:xxx,并不会影响文件存储的编码。一切都是pycharm带来的误解。step1: pycharm coding使用utf8step2:使用vim打开step3: vim中修改coding为gbk,并保存step4: pycharm再次打开,gbk解析显示出来,‘测试’变成了‘娴嬭瘯’step5:查到‘测试’俩字的utf8编码step6:gbk下的‘娴嬭瘯’其实就是utf8下的‘测试’step7:...

2020-07-04 14:56:21 905 1

空空如也

空空如也

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

TA关注的人

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