自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 Spring大事务到底如何优化?

所谓的大事务就是耗时比较长的事务。Spring有两种方式实现事务,分别是编程式和声明式两种。不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交。一、大事务产生的原因操作的数据比较多 调用了 rpc 方法 有其他非 DB 的耗时操作 大量的锁竞争 执行了比较耗时的计算二、大事务造成的影响并发情况下,数据库连接池容易被撑爆 锁定太多的数据,造成大量的阻塞和锁超时 执行时间长,容易造成主从延迟 回滚所需要的时间比较长 undo log日志膨胀,不仅增加了存储

2022-05-25 10:50:50 1262

翻译 drools中then部分的写法

1、背景此处介绍一下drools中then部分的写法,以及一些内置的方法,比如insert/delete/modify等等。同时也介绍一下rule的继承,和在when中实现if else if等操作。2、支持的方法drools提供了一些内置的方法,这些方法会修改drools的工作内存中Fact对象的值。从而会导致重新进行模式匹配。2.1 insert 插入对象到工作内存中insert是向工作内存中插入对象,同时会导致重新进行规则的模式匹配。同时当规则不满足时,不会自动删除。2....

2022-05-25 10:41:36 813

翻译 linux系统下文件误删除该如何恢复?

一、linux误删除数据的场景在实际的工作中,朋友们可能会将linux服务器上的文件不小心误删除掉了。而且越是资历老的工程师越容易犯这样的错误,敲代码的速度也是够快,啪啪rm -rf一个回车,然后就是打脸时刻 。新人操作文件时往往战战兢兢、反复确认,反而不容易出错。如果你也是一个有多年工作经验的工程师,也给自己提个醒:淹死的都是会水的。我们需要区分两种场景来进行误删除文件的恢复:第一种场景:被删除的文件正在被进程使用 第二种场景:文件没有被任何进程使用第一种场景的数据恢复相对简单一些。二..

2022-05-25 10:40:28 22333 1

翻译 一次*定 vue3的 路由 + 菜单 + tabs

做一个管理后台,首先要设置路由,然后配置菜单(有时候还需要导航),再来一个动态tabs,最后加上权限判断。这个是不是有点繁琐?尤其是路由的设置和菜单的配置,是不是很雷同?那么能不能简单一点呢?如果可以实现设置一次就全部搞定的话,那么是不会很香呢?我们可以简单封装一下,实现这个愿望。定义一个结构我们可以参考 vue-router 的设置 和 el-menu 的参数,设置一个适合我们需求的结构:./router.jsimport { createRouter } from '@n...

2022-05-25 10:38:10 4001

翻译 .NET性能优化-推荐使用Collections.Pooled

性能优化就是如何在保证处理相同数量的请求情况下占用更少的资源,而这个资源一般就是CPU或者内存,当然还有操作系统IO句柄、网络流量、磁盘占用等等。但是绝大多数时候,我们就是在降低CPU和内存的占用率。之前分享的内容都有一些局限性,很难直接改造,今天要和大家分享一个简单的方法,只需要替换几个集合类型,就可以达到提升性能和降低内存占用的效果。今天要给大家分享一个类库,这个类库叫Collections.Pooled,从名字就可以看出来,它是通过池化内存来达到降低内存占用和GC的目的,后面我们会直接来看看它的性

2022-05-25 10:36:45 70

翻译 ABP框架之——数据访问基础架构

几乎所有的业务应用程序都要适用一种数据库基础架构,用来实现数据访问逻辑,以便从数据库读取或写入数据,我们还需要处理数据库事务,以确保数据源中的一致性。ABP框架可以与任何数据库兼容,同时它提供了EF Core和MongoDB的内置集成包。您将通过定义DbContext类、将实体映射到数据库表、实现仓储库以及在有实体时部署加载相关实体的不同方式,学习如何将EF Core与ABP框架结合使用。您还将看到如何将MongoDB用作第二个数据库提供程序选项。本章介绍了ABP的基本数据访问架构,包括以下主题:

2022-05-25 10:34:32 1004

翻译 HCNP Routing&Switching之RSTP保护

 前文我们了解了RSTP相关话题,回顾请参考HCNP Routing&Switching之RSTP - Linux-1874 - 博客园;今天我们来聊一聊RSTP保护相关话题;  我们知道RSTP优化了STP收敛速度,同时也加入了边缘端口的机制,但是如果有人恶意使用stp特有的属性发起攻击,对于STP网络来说它也会造成网络不稳定;为了更好的保证RSTP协议在网络不稳定情况下,尽可能的保证流量的正常转发,在标准协议中新增了4中保护功能;  1、BPDU保护  提示:我们知道边缘端口的属

2022-05-11 11:45:02 581

翻译 crontab和cron表达式详解

我们在定时任务中经常能接触到cron表达式,但是在写cron表达式的时候我们会遇到各种各样版本的cron表达式,比如我遇到过5位、6位甚至7位的cron表达式,导致我一度搞混这些表达式。更严重的是,当我们没有准确写出cron表达式时,会出现定时任务一直没有执行,或者定时任务执行太频繁的糟糕情况。其实,这里的cron表达式是广义的,它包括了狭义的cron表达式和crontab表达式。cron表达式Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有

2022-05-11 11:43:53 2894

翻译 Json序列化与反序列化导致多线程运行速度和单线程运行速度一致问题

紧跟上篇文章 十个进程开启十个bash后一致写入命令执行完毕之后产生了很多很多的文件,博主需要对这些文件同意处理,也就是说对几十万个文件进行处理,想了又想,单线程处理那么多数据肯定不行,于是乎想到了使用多线程,紧接着就引发了一系列问题,其中做大的问题就是json序列化,导致了多条线程运行和单线程运行时间一致问题。我们正常去读取json文件转成一般是通过实体类去使用JsonConvert.DeserializeObject方法进行接收的,然后再通过实体类去进行一系列的操作,目前遇到的问题就是读取上万的js

2022-05-11 11:42:29 539

翻译 操作系统实现-loader

大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系统中最重要的一个部分,承接上面的boot,启下下面的kernel,那我们就开始吧!!!内存检测在loader中,最重要的一点就是检测内存,检测一些系统参数,到时候给kernel使用,那么下面我们就介绍下loader中如何检测内存。还是一样,我们先看下检测内存的代码detect_memory: ; 置为0 xor ebx, ebx ; es:di赋值 mov ax, 0 mov e

2022-05-11 11:41:37 337

翻译 django-rest-framework 基础四 过滤、排序、分页、异常处理

1. 过滤在之前所写的五个接口中,只有获取所有需要过滤,其他接口都不需要。如在访问的时候带参数过滤出自己想要的数据。http://127.0.0.1:8080/?search=活着1.1 内置过滤类views.pyfrom rest_framework.viewsets import GenericViewSetfrom rest_framework.mixins import ListModelMixinfrom 应用名.models import Book # 数据库

2022-05-11 11:40:34 717

翻译 使用client-go实现自定义控制器

介绍我们已经知道,Service对集群之外暴露服务的主要方式有两种:NodePort和LoadBalancer,但是这两种方式,都有一定的缺点:NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显。 LoadBalancer的缺点是每个Service都需要一个LB,浪费,麻烦,并且需要Kubernetes之外的设备的支持。基于这种现状,Kubernetes提供了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露

2022-05-11 11:38:36 561

翻译 Flutter网络请求和数据解析

一:前言 - 什么是反射机制,Flutter为什么禁用反射机制? 在Flutter中它的网络请求和数据解析稍微的比较麻烦一点,因为Flutter不支持反射机制。相信大家都看到这么一条,就是Flutter不支持反射,那首先有一点需要我们明白的。什么是反射?不知道大家看到这个问题的时候,有多少人脑子里面是一下子能闪出反射的概念的,我们首先还是说说,什么是反射机制。 反射机制简单来说就是动态获取类或者对象中的属性,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于...

2022-05-11 11:36:28 1154

翻译 『现学现忘』Git基础 — 25、git log命令参数详解

git log命令主要用于查看Git版本演变历史(也就是提交历史),同时根据追加的参数和选项不同,也会有不同的展示效果。但默认git log命令显示出的x效果实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了!1、git log命令说明git log用于查询版本的历史,命令形式如下:fsharpgit log [<options>] [<since>..<until>] [[--] <path>...]

2022-05-11 11:35:40 3363

翻译 使用C#跨PC 远程调用程序并显示UI界面

在项目中有一个需求是需要在局域网内跨PC远程调用一个程序,并且要求有界面显示,调查了一些资料,能实现远程调用的.Net技术大概有PsExec、WMI、Schedule Task。这三种方式都做了一个尝试,结果发现PsExec、WMI都只能在进程列表中看到程序执行,却无法显示界面,无法执行程序中的管理员权限操作,就连简单的在C盘创建一个txt文本都做不到。也许是我使用方法不对,无法达到我的需求。直到后来使用了Schedule Task的方式之后,才成功实现了我的需求。第三种技术的主要思路是先通过C

2022-05-11 11:34:41 673

转载 Web安全学习笔记 SQL注入下

繁枝插云欣——ICML8SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得一.SQL注入小技巧1. 宽字节注入一般程序员用gbk编码做开发的时候,会用set names 'gbk'来设定,这句话等同于set character_set_connection='gbk', character_set_result='gbk', character_set_client='gbk';漏洞发生的原因是执行了set character_...

2022-05-11 11:33:34 189

转载 Blazor 组件库 BootstrapBlazor 中Editor组件介绍

组件介绍Editor组件是对Summernote组件的二次封装。组件分为div模式和editor模式。默认状态下editor模式的组件样子如下:其代码如下:<Editor @bind-Value="@EditorValue" IsEditor="true"></Editor>我们可以通过@bind-Value来绑定到字段中.组件的其他属性IsEditor:是否默认显示为编辑器,默认为false,即显示为一个div,只有在div被点击时才会显示编.

2022-04-22 10:57:54 603

翻译 【mq】从零开始实现 mq-01-生产者、消费者启动

MQ 是什么?MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。MQ 的作用?消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。解耦:一个业务需要多个模块共同实现,或者一条消息有多

2022-04-22 10:28:03 298

翻译 音视频基本概念和FFmpeg的简单入门

写在前面#最近正好有音视频编辑的需求,虽然之前粗略的了解过FFmpeg不过肯定是不够用的,借此重新学习下;基本概念#容器/文件(Conainer/File):#即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如:mp4flvmkvavi媒体流(Stream):#表示时间轴上的一段连续数据,如一段声音数据、一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器。数据帧/数据包(

2022-04-22 10:27:14 248

翻译 java 中为什么重写 equals 后需要重写 hashCode

1.equals和hashCode方法之间的关系  这两个方法都是Object的方法,意味着若一个对象在没有重写这两个方法时,都会默认采用Object类中的方法实现,它们的关系为: 如果两个对象通过equals()方法比较相等,那么这两个对象的hashCode一定相同。 如果两个对象hashCode相同,不能证明两个对象是同一个对象(不一定相等),只能证明两个对象在散列结构中存储在同一个地址(不同对象hashCode相同的情况称为hash冲突)。 2.为什么重写e...

2022-04-22 10:25:20 375

翻译 09. 树莓派ASP.NET环境配置

 1.安装Mono。Mono是Xamarin公司开发的一个跨平台.NET运行环境。安装Mono是必不可少的一个关键步骤。  2. 在安装前,先查看下树莓派系统的版本lsb_release -a  3. 记住红框中的这个版本号    4.将Mono存储库添加到系统(看你系统版本,选一个安装)注意:这些软件包应该在较新的Raspbian版本上工作,仅测试以下列出的版本。  Raspbian 10:sudo apt install apt-transport-http..

2022-04-22 10:24:33 259 1

翻译 使用aspnetcore前后端分离开发,你一定要知道这个

用过Vue单页面应用开发的,一定都知道Vue-router这个路由组件,它支持hash和history两种模式。HTML5 History 模式vue-router默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。如果不想要很丑的 hash,我们可以用路由的history 模式,这种模式充分利用history.pushStateAPI 来完成 URL 跳转而无须重新加载页面。const router = ne...

2022-04-22 10:23:23 326

翻译 解决go-micro与其它gRPC框架之间的通信问题

在之前的文章中分别介绍了使用gRPC官方插件和go-micro插件开发gRPC应用程序的方式,都能正常走通。不过当两者混合使用的时候,互相访问就成了问题。比如使用go-micro插件生成的gRPC客户端访问基于gRPC官方插件创建的服务端时就会出现如下错误:{"id":"go.micro.client","code":501,"status":"Not Implemented"}经过一番探索,发现是因为go-micro的插件生成代码时丢弃了proto定义中的package,客户端API和服务端A

2022-04-22 10:16:07 180

翻译 Halo 开源项目学习(一):项目启动

Halo 是一个优秀的开源博客发布应用,在 GitHub 上广受好评,正好最近在练习写博客,借此记录一下学习 Halo 的过程。项目下载从 GitHub 上拉取项目源码,Halo 从 1.4.3 开始,最低支持的 JRE 版本为 11,本人下载的是 1.4.13 版本。前提设置导入项目因为 Halo 使用 Gradle 构建,所以在 idea 中导入 Gradle 项目,与 Maven 不同,Gradle 项目的依赖在 build.gradle 中添加。Halo 中主要使用了如下依赖

2022-04-22 10:13:14 1641

翻译 超越iTerm~号称下一代终端神器,功能贼强大

程序员的一生,用的最多的两个工具,一个是代码编辑器(Code Editor),另外一个就是命令行终端工具(Terminal)。这两个工具对于提高开发效率至关重要。代码编辑器在过去的 40 年里不断进化,从我上大学敲 Java 代码开始,就经历了 MyEclipse、NetBeans、Eclipse,到如今称王称霸的 Intellij IDEA。但终端工具,基本上和上个世纪七八十年代差不多。那本期给大家推荐的这款终端——Warp——绝对会让你大开眼界,用完爱不释手!还记得之前给大家推荐的T.

2022-04-22 10:11:10 1207

翻译 企业级 Web 开发的挑战

在深入挖掘ABP 框架之前,我想先介绍开发现代企业 Web 解决方案的挑战,以了解为什么我们需要ABP 框架。让我们从架构大局开始:架构搭建的挑战在开始编码之前,我们需要为解决方案创建一个基础。这是构建软件系统最具挑战性的阶段,在此阶段做出的任何决定都可能会影响应用程序的整个生命周期。有一些常见的、知名的、系统级的架构模式,例如单体架构、模块化架构和微服务架构。不同的架构选型会决定后续的团队组织架构、部署和扩展,所以我们要根据需求尽量做最优的选型。另外,软件开发模型例如命令和查询职责分离(C

2022-04-22 10:08:27 216

空空如也

空空如也

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

TA关注的人

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