开发运维

基于Redis的lua脚本解决抢购秒杀场景

基于Redis的lua脚本解决抢购秒杀场景

Redis lua脚本解决抢购秒杀场景 介绍 秒杀抢购可以说是在分布式环境下⼀个⾮常经典的案例,⾥边有很多痛点: ​ 1.⾼并发: 时间极短、瞬间⽤户量⼤,⼀瞬间的⾼QPS把系统或数据库直接打死,响应失败,导致与这个系统耦合的系统也GG 目前秒杀的实现方案主要有两种: ​ 2.超卖: 你只有⼀百件商

大树 大树 2023-10-07
0 0 0
测试驱动开发实践:如何使用 Xunit 框架进行单元测试和集成测试

测试驱动开发实践:如何使用 Xunit 框架进行单元测试和集成测试

在软件开发过程中,测试是至关重要的一环。测试驱动开发(Test-Driven Development,TDD)是一种常用的开发方法论,它强调在编写代码之前先编写测试用例,然后通过不断迭代的方式来实现功能。为了帮助开发者更好地实践测试驱动开发,Xunit 框架应运而生。Xunit 是一个开源的测试框架

LOVEHL^ˇ^ LOVEHL^ˇ^ 2023-10-07
0 0 0
高并发场景下的 HttpClient 优化方案,QPS 大大提升!

高并发场景下的 HttpClient 优化方案,QPS 大大提升!

我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别。使用了httpclient来完成业务。之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在这里。先对比前后:优化之前,平均执行时间是250ms;优化之后,平均执行时间是80ms,降低了三分之二的消耗,容器不再动

泡泡 泡泡 2023-10-07
0 0 0
经典的ABA问题与解决方法

经典的ABA问题与解决方法

针对ABA问题做了一下总结和尝试解决 背景 在学习乐观锁、悲观锁时,了解到CAS是一种乐观锁的实现,但是从博客中看到说CAS会存在ABA问题,于是就搜索了一番。 什么是ABA问题 来自blog 考虑如下操作: 并发1(上):获取出数据的初始值是A,后续计划实施CAS乐观锁,期望数据仍是A的时候,修改

宇宙之一粟 宇宙之一粟 2023-10-07
0 0 0
Istio流量路由小试牛刀,这几个方法超有效

Istio流量路由小试牛刀,这几个方法超有效

序本文主要演示一下如何在mac m2安装istio,及基于header的流量路由。安装istio下载https://github.com/istio/istio/releases/download/1.18.2/istio-1.18.2-osx-arm64.tar.gz解压,并将istio-1.18

捡田螺的小男孩 捡田螺的小男孩 2023-10-07
0 0 0
spring6AOP面向切面编程

spring6AOP面向切面编程

1、场景模拟 搭建子模块:spring6-aop 1.1、声明接口 声明计算器接口Calculator,包含加减乘除的抽象方法 public interface Calculator { int add(int i, int j); int sub(int i,

大白菜程序猿 大白菜程序猿 2023-10-07
0 0 0
流行人脸检测和模糊算法的实战较量,谁是王者?

流行人脸检测和模糊算法的实战较量,谁是王者?

译者 | 朱先忠审校 | 重楼在当今这个数据驱动的世界里,保护个人的隐私和匿名是至关重要的事情。从保护个人身份到遵守GDPR(General Data Protection Regulation,即《通用数据保护条例》,为欧盟制订的条例)等严格法规,对各种媒体格式的人脸匿名化高效可靠解决方案的需求

捡田螺的小男孩 捡田螺的小男孩 2023-10-07
0 0 0
DataStructureBinary_Tree

DataStructureBinary_Tree

Binary_Tree 概述 本二叉树的文章设计是为了深度剖析 map 与 set 的底层数据结构,目的是实现红黑树,即平衡二叉搜索树。由于红黑树的体系过于复杂,需要系统解析关于二叉搜索树的部分内容,其将包括:普通二叉搜索树、AVL 树、红黑树。以便支撑后续数据结构的实现。且在本章中会讲述二叉树的

大白菜程序猿 大白菜程序猿 2023-10-07
0 0 0
深入探索FastAPI单元测试:使用TestClient轻松测试你的API

深入探索FastAPI单元测试:使用TestClient轻松测试你的API

当使用FastAPI进行单元测试时,一个重要的工具是TestClient类。TestClient类允许我们模拟对FastAPI应用程序的HTTP请求,并测试应用程序的响应。这使我们能够在不启动服务器的情况下对API进行全面的测试。下面我将详细讲解TestClient的使用方法和常见操作:安装和导入T

大猫 大猫 2023-10-07
0 0 0
多线程、异步编程、并发读写 新认识

多线程、异步编程、并发读写 新认识

大家好,我是大圣,好久不见。 在我们上次的探讨中,我们深入了解了并发、并行和高并发这三个核心概念,它们都在我们的现代计算环境中扮演着关键的角色,使得系统能够更加高效地满足大量的请求。 在这篇文章中,我们将进一步探索多线程和异步编程的魅力,了解并发读写的挑战。 多线程和异步编程 实现高并发的方法有:多

Escape Escape 2023-10-07
0 0 0
Golang 中的 bufio 包详解之Bufio.Writer

Golang 中的 bufio 包详解之Bufio.Writer

使用 Golang 进行写入文件操作时,如果每次都调用系统函数写入磁盘,在很多场景下都会影响程序的性能。bufio 包中的 bufio.Writer 提供了带缓冲的写操作,进行写操作时,数据会先被写入到一个缓冲区中,当达到一定条件,比如流缓冲区满了或刷新缓冲区时,再调用系统函数写入磁盘。bufio.

大树 大树 2023-10-07
0 0 0
递归解析Json,实现生成可视化Tree+快速获取JsonPath | 京东云技术团队

递归解析Json,实现生成可视化Tree+快速获取JsonPath | 京东云技术团队

内部平台的一个小功能点的实现过程,分享给大家: 递归解析Json,可以实现生成可视化Tree+快速获取JsonPath。 步骤: 1.利用JsonPath读取根,获取JsonObject 2.递归层次遍历JsonObjec,保存结点信息 3.利用zTree展示结点为可视化树,点击对应树的结点即可获取

大猫 大猫 2023-10-07
0 0 0
玩转SpringBoot—启动源码及外部化配置

玩转SpringBoot—启动源码及外部化配置

学习目标理解springboot的总体启动流程,并能口述大概理清配置文件的加载流程第1章 main入口public static void main(String[] args) { //代码很简单SpringApplication.run(); SpringApplication.run

共饮一杯 共饮一杯 2023-10-07
0 0 0
论编程界的日经问题:到底如何区分静态类型和动态类型、强类型和弱类型?

论编程界的日经问题:到底如何区分静态类型和动态类型、强类型和弱类型?

论编程界的日经问题:到底如何区分静态类型和动态类型、强类型和弱类型? 我发现在我加的一些编程交流群里,几乎每半个月就会产生这样的一些争论:“Python 到底是强类型语言还是弱类型语言”,“为什么 JavaScript 是弱类型语言”,“动态类型语言和静态类型语言的区别是什么”...... 这些争吵

剑圣无痕 剑圣无痕 2023-10-07
0 0 0
实用!Python数据可视化与图表绘制:让数据一目了然

实用!Python数据可视化与图表绘制:让数据一目了然

Python 提供了多种数据可视化库,使得数据的可视化和图表绘制变得非常简单和灵活。下面将介绍一些常用的 Python 数据可视化库,并分享如何使用它们来创建各种类型的图表。一、MatplotlibMatplotlib 是 Python 中最常用的数据可视化库之一,它提供了广泛的功能和灵活性,可以绘

捡田螺的小男孩 捡田螺的小男孩 2023-10-07
0 0 0
Docker 安装 Redis 单机+集群总结

Docker 安装 Redis 单机+集群总结

前言 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于 内存 、 分布式 、可选持久性的键值对( Key-Value )存储数据库 redis版本:redis:6.2.13 作者:易墨 发布时间:2023.10.06 安装单机版 安装源:Dock

竹子爱熊猫 竹子爱熊猫 2023-10-07
0 0 0
DDD架构下的防御式编程:五大关卡共同保障业务数据的有效性

DDD架构下的防御式编程:五大关卡共同保障业务数据的有效性

1. 规则验证是准确性的基础规则验证是业务稳定性的重要保障手段,通过规则验证,可以验证和确保系统或业务逻辑的正确性和合规性,避免潜在的错误和问题。而规则的遗漏往往会伴随着线上bug的出现。相信每个开发人员都曾面对过以下情况:未对入参进行非空判断,在执行逻辑时导致空指针异常(NullPointerEx

泡泡 泡泡 2023-10-07
0 0 0
java常用APIObject

java常用APIObject

java常用API-Object Object类是java中所有类的祖宗类,因此,java中所有的类的对象都可以直接使用Object类中提供的一些方法 Clone-对象克隆 clone 就是复制 , 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象

大树 大树 2023-10-07
0 0 0
Astro是2023年最好的web框架,原因如下

Astro是2023年最好的web框架,原因如下

以下解释是全面理解为什么 Astro 在2023年成为最佳 web 框架所必需的。问题:JavaScript过多在 Web 开发世界中,变化发生得非常快,尤其是对前端JavaScript开发者而言。变化之快,以至于我们有时会忘记为谁创建网站和 web  应用:用户。自从 BackboneJS 和 A

宇宙之一粟 宇宙之一粟 2023-10-07
0 0 0
带你设计一套会员功能并开发它

带你设计一套会员功能并开发它

相信每一位程序员都梦想着有一天开发出自己的产品,而且有人愿意为自己的产品买单。用户买单的方式可能是一次性购买产品的使用权、购买产品会员享受高级功能等等。本文和下一篇文章将进行会员与支付功能的设计开发分享,希望可以给正在开发会员功能的开发者提供一点帮助。 本文我们先把支付的逻辑放一边,只关注会员功能的

共饮一杯 共饮一杯 2023-10-07
0 0 0
1 931 932 933 934 935 1,703