前言 国内程序员提⾼开发效率的路其实只有⼀条:屁股坐⾼。 不断的研究更难的事情,然后只写内核,乱七⼋糟的玩意⼉给别⼈写。 我曾经优化⼀个算法,写了270⾏代码(空格也算⼀⾏)。结果把程序效率提⾼了⼗多倍。 ⾸先不是我多⽜,⽽是写这功能程序员太菜,不是说技术菜,⽽是他写代码不动 脑,⽤个动态规划 ,循环太多,完全不懂CPU咋执⾏的啊。 我实现特简单,暴⼒方式……算了不聊了,跑偏。⼤概意思就是我实现的
0 微盟删库跑路 除了快、准和省,数据中台须安全,避免“微盟删库跑路”。 2020年2月23日19点,国内最大精准营销服务商微盟出现大面积系统故障,旗下300万商户线上业务全停,商铺后台所有数据被清。始作俑者是一位运维,在生产环境数据库删库,而刚上市不久的微盟就因此遭受巨大的损失,2月23日宕机以来,市值蒸发30亿港元。最贵的安全事件。数据中台咋防止类似事件? 如何解决数据误删除 如何解决敏感
是的,已经过时了,虽然中文社区仍有惯性,但新项目不建议使用。 所有2022年以前的文章,说mybatis的优点,在 hibernate 4.x +jpa 2.0 已经被抹平。到spring-data-jpa 的出现,就已经完全被超越了: 多年前引以为傲的性能,已经有很多基准测试Q证明只比JPAImplementation 快一丢丢 自JPA 标准也能直接写 SQL,mybatis 的灵活性已经完
除了支撑集团的大数据建设,团队还提供To B服务,因此我也有机会接触到一些正在做数字化转型的传统企业。从2018年末开始,原先市场上各种关于大数据平台的招标突然不见了,取而代之的是数据中台项目,建设数据中台俨然成为传统企业数字化转型的首选,甚至不少大数据领域的专家都认为,数据中台是大数据下一站。 为啥数据中台是大数据的下站?与数仓、数据湖、大数据平台啥区别?来深入大数据发展史,先从数仓出现讲起,途
1 不是不写代码 相反,一些核心组建核心代码都会参与,这些代码会在各种项目中去使用,对于健壮性,性能等各方面要求非常高,需要有一定水平的人才能写好。 阮一峰博客有一句话:“警惕那些很长时间没有编写任何代码、却在设计系统的人。” 2 一般不深度参与业务代码编写 因为业务代码上线过程非常复杂需要各种测试等耗费时间很长没有那么多精力去参与,但是会对各个业务组的代码做review,偶尔也可能会参与到一
1 全新并发编程模式 JDK9 后的版本你觉得没必要折腾,我也认可,但是JDK21有必要关注。因为 JDK21 引入全新的并发编程模式。 一直沽名钓誉的GoLang吹得最厉害的就是协程了。JDK21 中就在这方面做了很大的改进,让Java并发编程变得更简单一点,更丝滑一点。 之前写过JDK21 Feature。Virtual Threads、Scoped Values、Structured Con
1 前言 想起很久之前的一个笑话。 我有个朋友之前开发过一款App,其中有一个关于消息发送时间的显示的问题,后端认为给一个时间戳,由前端决定到底怎么显示,你显示年月日时分秒还是年月日时分,又或者是刚刚,那是你的事情。 2 前端不这么认为 他们觉得这是后端的事情,凭什么要我们写这个逻辑,后来吵了一架,甚至还专门开会去讨论这个问题。无奈前端组有个漂亮的妹子,大家最终还是屈服于团队幸福,后端们强行将这个
链接 https://jzsc.mohurd.gov.cn/data/company 刷新网页,list接口返回值是加密数据: 搜索 JSON.parse 来确认 js 文件: 文件好像太多了呀,还得加点料,提取精华才行。搜索请求路径: 总算看到app.xxx.js了,就是它。 js文件内搜索 JSON.parse,打上断点,切换标签按钮,触发 js 执行到断点,看到接收到了加密数据:
0 前言 一般初学者学习编码和[错误处理]时,先知道[编程语言]有一种处理错误的形式或约定(如Java就抛异常),然后就开始用这些工具。但却忽视这问题本质:处理错误是为了写正确程序。可是 1 啥叫“正确”? 由解决的问题决定的。问题不同,解决方案不同。 如一个web接口接受用户请求,参数age,也许业务要求字段是0~150之间整数。如输入字符串或负数就肯定不接受。一般在后端某地做输入合法性检查,不
深入学习排查技巧,以后处理HTTP 4xx、5xx报错或其他跟HTTP协议本身相关的问题时,就有迹可循。 1 服务器为啥回复HTTP 400? 某客户测试对象存储服务,这服务是通过HTTP协议存放和读取文件。适合存放非结构化数据,如日志文件、图片文件等。因为依托HTTP协议,浏览这种存储很方便,如浏览器直接访问。 但客户测试结果报告大量HTTP 400报错。其他客户用的都正常,咋就这客户不行? 1
1 什么叫做web逆向数据加密数据解密浏览器当中明文解密的 JS 板块请求头参数加密获取生成的方式服务器也不知道具体是什么东西?原文内容被加旁之前的数据爬虫 模仿服务器的加密方式表单加密参数加密cookie如密返回的数据不对?2 web逆向技巧2.1 定位技巧接口定位字体加密Unicode数据加密JS逆向 主要的加/解密方法或函数2.2 JS语法2.2.1 混淆js2.2.2 无混滑js关键字搜索
1 规则 Sentinel 追求开发者只需关注资源的定义,当资源定义成功后,可动态增加各种流控降级规则。 Sentinel 提供两种方式修改规则: API 直接修改 (loadRules) 通过 DataSource 适配不同数据源修改 手动 API 修改较直观,可通过以下 API 修改不同规则: // 修改流控规则 FlowRuleManager.loadRules(List<Flo
1 综述 Sentinel所有资源都对应: 一个资源名称 一个 Entry Entry 可通过: 对主流框架适配自动创建 也可通过注解的方式或调 API 显式创建 每个 Entry 创建同时也会创建一系列功能插槽(slot chain)。这些插槽有不同职责如: NodeSelectorSlot 负责收集资源的路径,并将这些资源的调用路径,以树状结构存储起来,用于根据调用路径来限流
本文详尽的展开介绍 Nacos 注册中心中的服务数据模型内容。详细介绍Nacos2.0 版本中注册中心所涉及到的数据模型、各个数据模型的含义及各个数据模型的生命周期,并介绍 Nacos2.0 版本和 Nacos1.0 版本中,服务数据模型的差异点1 服务(Service)和服务实例(Instance)使用支付宝进行付款的时候,或许会要求你先登陆,验证你的身份信息,最后才能进行支付。而这其中,可能涉
1 下班前的寂静刚准备下班呢,测试大姐又给我提个bug,你看我这就操作了一次,network里咋有两个请求?我心一惊,”不可能啊!我代码明明就调用一次后端接口,咋可能两个请求!“。打开她的截图一看:多个options请求。我不慌不忙解释道:”这不用管,是浏览器默认发送的一个预检请求“。可测试大姐好像依旧很执着:“那这可肯定不行啊,明明一次请求,干嘛要两次呢,这不是增大服务端压力吗?”“md,真固执
1 Dubbo支持多种注册中心Multicast注册中心Zookeeper注册中心Redis注册中心Simple注册中心1.1 Multicast注册中心使用配置1<dubbo:registry address="multicast://224.5.6.7:1234" />2<dubbo:registry protocol="multicast" address="224.5.
Istio 为应用程序提供了大量的功能,而对应用程序代码本身几乎没影响。许多 Kubernetes 应用程序可以部署在启用 Istio 的集群中,而不需要对应用程序做任何修改。然而,部署启用 Istio 的应用程序时,需注意 Istio Sidecar 模型造成的影响。本文介绍了针对这些应用程序的注意事项以及启用 Istio 的具体要求。1 Pod 要求作为 Istio 服务网格中的一部分,Kub
import requests url = "https://my.cheshi.com/user/" headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.3
Spring Statemachine 是一个供应用程序开发人员在 Spring 应用程序中使用状态机概念的框架。Spring Statemachine 旨在提供以下功能:用于简单用例的易于使用的扁平一级状态机。用于简化复杂状态配置的分层状态机结构。用于提供更复杂状态配置的状态机区域。使用触发器、转换、守卫和动作。类型安全的配置适配器。用于在 Spring 应用程序上下文之外轻松实例化的构建器模式
宿舍里组建个本地的局域网LAN,可愉快玩游戏。只有一台交换机,电脑数目很少。切换到复杂场景,办公室。1 拓扑结构是怎么形成的?办公室一排排桌子,每个桌子都有网口,一排十几个座位就有十几个网口,一个楼层就几十个甚至上百个网口。这比宿舍复杂多。一个交换机肯定不够用,需要多台交换机,交换机之间连接形成拓扑结构。ARP请求执行过程连接着三个局域网,每个局域网有多台机器。如机器1只知机器4的IP,当它想访问
事务的原子性:事务,可理解为包含一系列操作的序列原子,代表不可分割的最小粒度事务的原子性就是让包含若干操作的事务表现得像一个最小粒度操作。这操作一旦被执行,只有“成功”或“失败”两种结果。好比特(bit),只能代表0或1,没其它选择。为啥要让事务表现出原子性?1 没错,又是ATM取款案例走到ATM前,从自己50,000元的账户上取1,000元现金。当你输入密码和取款金额后, ATM会吐出1,000
分布式数据库“强一致性”包括数据一致性和事务一致性两个方面。今天谈事务一致性。不少人觉得ACID落伍,BASE为理论基础的NoSQL才是潮流。BASE是很宽泛定义,承诺有限。我认为,BASE的意义只在于放弃了ACID的一些特性,从而更简单地实现了高性能和可用性,达到一个新的平衡。但是,架构设计上的平衡往往都是阶段性的,随新技术突破,原来平衡点也自然改变。不说分布式数据库,就连NoSQL也开始增加对
1 前言分布式DB的一个优势在于,它能够支持NoSQL做不到的强一致性。要深究这个问题,先得明白“强一致性”到底是啥。只要使用Paxos或Raft算法,就能实现强一致性也有人说,CAP三选二,分区容忍性和高可用性又必不可少,所以分布式DB做不到强一致性这些观点都不准确。“分布式系统”和“DB”这两个学科中,一致性(Consistency)都是重要概念,但表达内容不同:分布式系统,一致性是在探讨当系
1 binlog、redo log配合崩溃恢复 反证法,若无两阶段提交(2PC),会导致MySQL主备数据不一致。 2PC的不同瞬间,MySQL若异常重启了,又该如何保证数据完整性?1.1 2PC上图即update语句执行流程,其中的commit语句:【commit语句】,指MySQL语法中,提交一个事务的命令。一般跟begin/start transaction配对而图中的【commit步骤】
数据服务在数据建设中发挥着重要的作用。数据服务到底啥样? 是不是只对外提供一个API? 这么简单?而我希望你能在学完这部分内容之后,真正掌握数据服务的产品功能设计和系统架构设计。因为这会对你设计一个数据服务,或者选择一个商业化产品,有很大的帮助。1 数据服务应该具备的八大功能数据服务至少具备八个功能,才能解决上文提到问题。如数据接入方式多样,接入效率低;数据和接口没办法共享;不知道数据被哪些应用访
1 网络是七层、五层还是四层?常听到三层交换机、七层规则等。网络为什么要分层呢?非分不可?网络诞生前夜,IP协议、TCP协议都不存在,而你是网络缔造者,你会选择做怎样设计?大体有两种1.1 设计方案1.1.1 应用程序包办一切程序把应用层的数据,按某种编码转化为二进制数据,然后程序去操控网卡,把二进制数据发送到网络。这期间,通信的连接方式、传输的可靠性、速度和效率的保证等等,都需要这个程序去实现。
1 简介大型的几十、百个微服务构成的微服务架构系统,通常遇到如下问题:如何串联整个调用链路,快速定位问题?如何理清各微服务之间的依赖关系?如何进行各微服务接口的性能分折?如何跟踪整个业务流程的调用处理顺序?skywalking是国产开源框架,15年由吴晟开源,17年加入Apache孵化器。分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设
使用Redis作为MySQL的前置缓存,可以
文章目录:Apache Flink 应用程序中的 Exactly-Once 语义Flink 应用程序端到端的 Exactly-Once 语义示例 Flink 应用程序启动预提交阶段在 Flink 中实现两阶段提交 Operator总结Apache Flink 自2017年12月发布的1.4.0版本开始,为流计算引入了一个重要的里程碑特性:TwoPhaseCommitSinkFunction(相关的
1 最基础绑定事件<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue中的事件处理</title> <script src="../vue.js"></script> <
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号