三种ThreadLocal,玩转线程变量保存与传递

ThreadLocalThreadLocal是jdk中自带的类,用于保存本线程专有的数据,从下面的代码大家可以很直接的看到它的作用 private static ThreadLocal<String> sThreadLocal=new ThreadLocal<>(); @Test void testThreadlocal() { //主线程 sThreadLocal.set("这是在主线程中"); System.o
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

谈谈vue-router的实现原理

前言相信不少伙伴都听过SPA(单页面应用),SPA指的是在一个应用中只有一个主的index.html页面,区别于多页面应用(多个index.html页面)。SPA的优点如下:1、交互体验良好单页应用的内容的改变不需要重新加载整个页面,获取数据也是通过Ajax异步获取,没有页面之间的切换,就不会出现“白屏现象”,也不会出现假死并有“闪烁”现象,页面显示流畅,用户的交互体验得到了提升和改善。2、前后端分离良好的前后端分离机制,后段无需负责模板渲染、输出页面工作,后端API通用化,即同一套后端程序代码
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

救火队员的行为准则

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

谈一谈raft分布式一致性算法

谈一谈raft分布式一致性算法1、什么是分布式一致性2、raft算法应用场景3、raft算法4、总结本文讲解Raft分布式一致性理论算法,阅读了raft算法论文,帮助后面大家更好的理解Raft分布式一致性算法。1、什么是分布式一致性分布式一致性问题,简单的说,就是在一个或多个进程提议了一个值应当是什么,使系统中所有进程对这个值达成一致意见。它是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。这样就需要一种Cons
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

系统可扩展性思考

系统扩展的错觉没有什么是加机器解决不了的,一台不行加两台。这是我们工作中经常调侃的一句话,当我们系统遇到性能瓶颈时,第一直觉就是加机器,但是在实际实践中,加机器能解决问题吗?我们一般说的加机器得到的性能提升称为横向扩展。横向扩展(scale up),也叫水平扩展,指用更多的节点支撑更大量的请求。如果1台机器能够支撑1万TPS,那么两台机器能否支撑2万TPS?横向扩展通常是为了提升吞吐量,响应时间一般要求不受吞吐量影响即可,无限提高吞吐量不能相应提升响应时间。与横向扩展对应的是垂直扩展,针对一
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

浅谈CQRS模式

文章目录背景:CQRS简介:原作者Greg Young对CQRS的说明:对CQRS的一些误读:总结:背景:笔者在刚开始尝试实践DDD模式时,时常会觉得DDD模式相当笨重,尤其是在面对来自UI的各种不同维度的查询时,相当的繁琐:如果遵循DDD的设计原则,那么就应该只有聚合根才能持有Repository,我们需要先根据VO构建聚合根,再通过聚合根操作Repository去做查询操作,拿到查询的domain,再转换为VO返回给UI。如果UI查询涉及到多个聚合根,那么情况将会更加复杂。仅仅只是做一次查询操作
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

oracle财务数据权限思考

浅谈oracle财务数据权限ebs数据安全介绍VDP技术VDP简介VDP实现逻辑总帐安全性总结ebs数据安全介绍几乎在任何一个系统中,都离不开权限的设计,权限设计 = 功能权限 + 数据权限,而功能权限,在业界常常是基于RBAC(Role-Based Access Control)的一套方案。而数据权限,则根据不同的业务场景,则权限却不尽相同,应该根据具体的场景巧妙设计。作为曾经ERP的霸主,OracleE-Business Suite在国际上长期市场占用率在长期排名前二的市场,应用在各行各业,在二十
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

SEATA分布式事务框架解析

随着微服务框架的流行,目前应用服务的设计也越来越精细化。过去单应用就能完成的任务,目前可能会拆分打散到各个不同的子服务中,如用户中台、数据中台、订单中心、库存平台。随之而来的问题是如何保证各个子服务间数据的一致性,从中提出了分布式事务的需求。为什么需要事务在对分布式事务进行介绍之前,有必要再回顾一下事务的基本概念。我们知道事务的概念是指“事务中的一系列操作要么全部成功,要么一个不做”,并且具有ACID四个基本特性:原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

一个简单的AOP实例

第一个AOP的练习欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

离线数仓和bi开发的实践和思考

离线数仓的实践和思考背景什么是数据仓库分层设计维度建模数仓实践中踩坑以及思考背景笔者在来唯品之前主要的工作内容主要是依托于公司自研的bi低代码平台进行报表、图表开发工作,在此基础上做产品化的探索。因此在离线数仓建模和开发有过一些实践,也有一些思考,在此尝试做一点梳理。什么是数据仓库数据仓库是一个数据存储的集合,其创建目的是为了企业经营数据分析以及决策支持。数据仓库的输入是企业各个应用系统产生的数据,通过特定的范式的模型对企业数据进行筛选,整合和存储,再提供给数据应用消费。可以为企业提供bi能力,目的
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

【物联网】esp8266 + 物联网平台 + 微信小程序的智能环境监测系统

物联网平台实现智能监测室内环境
分类: 移动开发 发布时间: 05-27 14:17 阅读次数: 0

一个中年程序员学习中国近代史的小结

一个中年程序员学习中国近代史的小结前言程序员应该要认真学习历史一些有意思的说法哲学论偏见程序员学习历史的原因学习历史首推中国近代史什么是历史历史有哪些分类修史中国近代史的重要意义学习中国近代史缘份学习方法通史的结构方法二面法看历史人物日记中国近代史脉络清朝衰落百年苦难中国人民站起来了结论前言之所以写这个主题,也是为了迩补之前上曹教授历史课,随便应付历史小结作业的遗憾。当时,花了几个月,每周末去上课,上完课,教授要求每位学员,写一些小结,我因为周末有时候也在赶公司项目,平时也很忙,就将此事优先级降低,最
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

vscode配置vue环境找不到package.json

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档vscode配置vue环境找不到package.json前言问题处理前言`由于web老师要求我们从vue,react,bootstrap三大框架学习一个,思来想去,决定学习vue,今天尝试在vscode配置了vue环境废话不多说,直接上截图问题目录里面包含package.json,但是终端里面说不存在package.json处理我这里是路径的问题,需要cd到对应的工程,再npm run dev就可以运行成功。但是出.
分类: 移动开发 发布时间: 05-27 14:17 阅读次数: 0

spark sql任务性能优化(基础)

优化任务的意义对于项目而言,可以节省机器计算资源执行时间可能大幅度缩短,对于长链条任务依赖减少等待时间,尤其于上游任务而言,从而数据稳定性增加spark UI在上面的导航栏:1 代表job页面,在里面可以看到当前应用分析出来的所有任务,以及所有的excutors中action的执行时间。2 代表stage页面,在里面可以看到应用的所有stage,stage是按照宽依赖来区分的,因此粒度上要比job更细一些3 代表storage页面,我们所做的cache persist等操作,都会在这里看
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

Android Studio第六课:模仿QQ登录跳转

Android Studio第六课:模仿QQ登录跳转导包,添加依赖登陆界面欢迎界面主界面导包,添加依赖找到build.gradle,后缀是自己建的项目名 // 基础依赖包,必须要依赖 implementation 'com.geyifeng.immersionbar:immersionbar:3.2.2'// kotlin扩展(可选) implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2'// f
分类: 移动开发 发布时间: 05-27 14:17 阅读次数: 0

叮咚,Redis OM对象映射框架来了

叮咚,Redis OM对象映射框架要来了!一、Redis OM来了11月23日,redis宣布了四个新的Redis高级客户端的预览版,将这些库称为Redis OM(Redis Object Mapping)-----对象映射。其框架以强大的 Spring Data Redis (SDR) 框架为基础,提供一个高级抽象工具箱,通过我们熟悉的面向对象的编程来表示。其目的是专注于对象映射和流畅查询,即尽可能轻松的使用 Redis 。它可以透明地将域对象保存在 Redis 中,并且能使用流畅的、以语言为中心
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

MyBatis源码简析

MyBatis源码简析Mybatis作为一个经久不衰的ORM框架,其源码被众多人膜拜过,今天简单走一遍。
分类: 编程语言 发布时间: 05-27 14:17 阅读次数: 0

工业控制靶场记录以及工业控制协议的简单介绍

接下来,由我带大家揭开工业控制靶场的神秘面纱
分类: 数据库 发布时间: 05-27 14:16 阅读次数: 0

@Transational踩坑

踩坑1:@Transational里代码太长@Transational最简单粗暴的使用方法就是在一个public方法上加上该注解,然后开始洋洋洒洒写上几百上千行代码,其中除了DB操作部分代码,也可能包含了接口/方法入参校验、外部系统接口调用、业务逻辑、数据计算、集合转换等逻辑。如此写,理论上是没什么大问题的,但绝大部分情况是到了最后部分才真正执行写DB的操作,此时才需用上@Transational,而在方法一开始就开启事务,很可能存在以下2种情况:程序还未执行到写DB逻辑,就return了,此时@T
分类: 编程语言 发布时间: 05-27 14:16 阅读次数: 0

如何debug linux 系统内核

1. 目的本文章是写给有兴趣debug linux 操作系统内核的开发者2. 使用的开源应用linuxbusyboxqemueclipse3. 步骤3.1 编译linux3.1.1 下载linux执行如下命令:wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.xz3.1.2 解压缩tar xvf linux-4.15.tar.xz3.1.3 编译linux3.1.3.1
分类: 编程语言 发布时间: 05-27 14:16 阅读次数: 0