7.数据库设计

没有正儿八经的设计过数据库表结构,这注定是个需要长期更新的一篇文章~ 朋友推荐了一个工具,设计表还挺好用的:EZDML,有兴趣也可以试试~ 先从登录所需要的表开始吧: 用户信息表:存储用户信息。 状态信息表:用于管理用户状态或者文章状态。(例如封禁,屏蔽,启用,禁用诸如此类的,目前的想法是这样的)

深挖 Python 元组 pt.2

哈喽大家好,我是咸鱼 在《深挖 Python 元组 pt.1》中我们了解 Python 元组的一些概念(索引和切片等),以及如何创建元组,最重要的是我们还介绍了元组的不可变特性 那么今天我们来继续深挖 Python 元组 打包&解包 在 python 中,元组可以被打包(packing )和解包(u

java实现朴素rpc

远程过程调用(RPC),比较朴素的说法就是,从某台机器调用另一台机器的一段代码,并获取返回结果。 实现了rpc的通信过程,完成度比较高。 针对大流量的服务端还有优化空间,比如NIO的使用来管理长连接会更加有效。

轻松掌握组件启动之Redis单机、主从、哨兵、集群配置

这篇文章介绍了Redis的单机配置启动和主从架构、哨兵、集群搭建方法。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供实用的指导,让你轻松掌握Redis的配置和架构搭建。

ESP32-MicroPython 开发环境

Linux/Mac 下使用MicroPython开发ESP32 刷入固件 使用 esptool.py 将 MicroPython 刷入 ESP32 开发板涉及几个步骤。 1. 安装 esptool 如果你还没有安装 esptool.py,你可以使用 pip 来安装它: pip install esp

掌握Go类型内嵌:设计模式与架构的新视角

本文深入探讨了Go语言中的类型内嵌特性,从基础概念到实际应用,以及相关的最佳实践。文章不仅讲解了如何在Go中实现和使用类型内嵌,还通过具体的代码示例展示了其应用场景和潜在陷阱。最后,文章总结了类型内嵌在代码设计中的价值,并提出了一些独特的洞见。 关注【TechLeadCloud】,分享互联网架构、云

软件开发人员 Kubernetes 入门指南|Part 2

在第 1 部分中,我们讲解了 Kubernetes 的核心组件,Kubernetes 是一种开源容器编排器,用于在分布式环境中部署和扩展应用程序;我们还讲解了如何在集群中部署一个简单的应用程序,然后更改其副本数量以扩大或缩小其规模。 在本文中,我们将为您深入讲解 Kubernetes 提供的网络和监

Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听)

前言 新项目采用的abp vnext的微服务模块化架构,所以把应用的服务拆成了很多独立模块 在初期,我们通过日志还能跟踪到问题, 后期服务越来越多(大约扩充到了十几个),随着调用链路越来越深 ,问题也越来越能排查了. 往往入口报错之后,要跟好几个服务的日志 才能找到最终节点. 所以考虑引入Skywa

CSS 多行文本超链接下划线动效

先看效果 乍一看,是不是感觉很简单,仔细一瞅发现事情好像没有那么简单。 如果十分钟还没想出怎么实现,那就把简历上的“精通css”改成“了解css”……😅 大部分人第一感觉都是想着用border-bottom去做,但是仔细看一下这个是多行文本,下划线始终在最后一行肯定是不合适的,而且下划线运动轨迹是

.NET静态代码织入——肉夹馍(Rougamo)发布2.0

肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应用启动的初始化时间让服务更快可用,同时还能对静态方法进行AOP。 摆烂半年又一更,感谢各位的支持,那

SpringBoot2.7升级到3.0的实践分享

背景 最近把项目中的技术框架做一次升级,最重要的就是SpringBoot从2.7.x升级到3.0.x,当然还会有一些周边的框架也会连带着升级,比如Mybatis Plus,SpringCloud等,话不多说直接看看有哪些事情要做。 具体事项 主要分两类,第一类是单纯的提升版本,主要如下: 1.jdk

MySQL innoDB 间隙锁产生的死锁问题

线上经常偶发死锁问题,当时处理一张表,也没有联表处理,但是有两个mq入口,并且消息体存在一样的情况,频率还不是很低,这么一个背景,我非常容易怀疑到,两个消息同时近到这一个事务里面导致的,但是是偶发的,又模拟不出来什么场景会导致死锁,只能进行代码分析,问题还原的方式去排查问题。

【RocketMQ】Dledger模式下的日志复制

RocketMQ在开启Dledger时,使用DLedgerCommitLog,其他情况使用的是CommitLog来管理消息的存储。在Dledger模式下,消息写入时Leader节点还需要将消息转发给Follower节点,有过半的节点响应成功,消息才算写入成功。 Leader消息写入 Dledger下

DBeaver Ultimate 22.1.0 连接数据库(MySQL+Mongo+Clickhouse)

前言 继续书接上文 Docker Compose V2 安装常用数据库MySQL+Mongo,部署安装好之后我本来是找了一个web端的在线连接数据库的工具,但是使用过程中并不丝滑,最终还是选择了使用 DBeaver ,然后发现 mongo 还需要许可,又折腾整理了半下午,终于大功告成。 DBeave

一种对数据库友好的GUID的变种使用方法

.NET生成的GUID唯一性很好,用之方便,但是,缺少像雪花算法那样的有序性。虽然分布式系统中做不到绝对的有序,但是,相对的有序对于目前数据库而言,索引效率等方面的提升还是有明显效果的(当然,我认为,这是数据库的问题,而非编程的问题,数据库应该处理好任何类型数据作为主键索引时的性能,除非在SQL标准...

C#使用iKvm黑科技无缝接入JVM生态

前言 时间过得飞快,一转眼国庆假期也要过去了,再不更新博客就太咸鱼了…… 最近在开发AIHub的时候想找个C#能用的命名实体识别库,但一直没找到,AI生态方面C#确实不太丰富,这块还是得Python,但我又不想跟LLM一样用gRPC的方式来调用,感觉有点麻烦。 这时候发现好像JVM生态有不少这类NL

Java新特性中的Preview功能如何运行和调试

在每个Java新版本发布的特性中,都会包含一些Preview(预览)功能,这些功能主要用来给开发者体验并收集建议。所以,Preview阶段的功能并不是默认开启的。 如果想体验某个Java版本中的Preview功能,您还需要做一些设置才能把程序跑起来。 下面以IDEA 2023.2为例,演示为Java

深入理解 python 虚拟机:生成器停止背后的魔法

在本篇文章当中主要分析的生成器内部实现原理和相关的两个重要的字节码,分析了生成器能够停下来还能够恢复执行的原因,深入剖析的生成器的原理的各个细节。

解密网络通信的关键技术(下):DNS、ARP、DHCP和NAT,你了解多少?

本文探讨了动态主机配置协议(DHCP)和网络地址转换(NAT)技术的工作原理和应用。DHCP通过简化IP地址配置过程实现了动态地址分配,而NAT则解决了IPv4地址紧缺问题。我们还介绍了DHCP中继代理和NAT中的网络地址与端口转换(NAPT)概念。然而,这些技术也存在一些限制,如无法主动建立连接和...

9.1 运用API创建多线程

在Windows平台下创建多线程有两种方式,读者可以使用`CreateThread`函数,或者使用`beginthreadex`函数均可,两者虽然都可以用于创建多线程环境,但还是存在一些差异的,首先`CreateThread`函数它是`Win32 API`的一部分,而`_beginthreadex`...