Map的常用方法案例1场景:一张建行用户体验金信息大表(百万级别),里面存在一个字段对多条数据,需要统计某个字段的多条数据累加值以供于别的服务调用。优化前解决:直接查出来一个大list给到另一个服务,再另外一个服务里有笛卡尔积算出累加值(笛卡尔积后得到jvm需运算56亿次),程序直接接近崩溃,故需优化。优化思路:首先由于该表是一张大表,所以我们不能直接把这百万级别轰到内存中(不然会OOM),我们先分组取出,分组迭代使用Map的Merge方法(源码如下),该方法接收了三个参数,一个是Key,一个是value,一个是remappingFunction,简单理解,如果给定的key不存在,它就变成了p
Map的常用方法案例1场景:一张建行用户体验金信息大表(百万级别),里面存在一个字段对多条数据,需要统计某个字段的多条数据累加值以供于别的服务调用。优化前解决:直接查出来一个大list给到另一个服务,再另外一个服务里有笛卡尔积算出累加值(笛卡尔积后得到jvm需运算56亿次),程序直接接近崩溃,故需优化。优化思路:首先由于该表是一张大表,所以我们不能直接把这百万级别轰到内存中(不然会OOM),我们先分组取出,分组迭代使用Map的Merge方法(源码如下),该方法接收了三个参数,一个是Key,一个是value,一个是remappingFunction,简单理解,如果给定的key不存在,它就变成了p
前言因为是在vue源码的基础上进行修改,所以,就没有复制代码在文章上,采取的是截图对比源码和我修改的代码片段。要麻烦你们自己手敲了。先来看看效果:场景:在费用配置列表中,点击每一项的配置,都会在页面容器内部打开一个新页面,所以新页面的路径一样,根据传的参数不同,面包屑和标签页标题动态改变二级路由效果(这是用菜单管理新建一条隐藏的路由做法,不推荐)http://localhost/feeManage/feeConfigDetail?id=4&metaTitle=3253的费用配置http://localhost/feeManage/feeConfigDetail?id=1&metaTitle=e
前言因为是在vue源码的基础上进行修改,所以,就没有复制代码在文章上,采取的是截图对比源码和我修改的代码片段。要麻烦你们自己手敲了。先来看看效果:场景:在费用配置列表中,点击每一项的配置,都会在页面容器内部打开一个新页面,所以新页面的路径一样,根据传的参数不同,面包屑和标签页标题动态改变二级路由效果(这是用菜单管理新建一条隐藏的路由做法,不推荐)http://localhost/feeManage/feeConfigDetail?id=4&metaTitle=3253的费用配置http://localhost/feeManage/feeConfigDetail?id=1&metaTitle=e
众所周知,通过唯一的链路id来追踪一次请求的所有日志,对于排查生产问题来说,会是非常给力的。这个比较容易实现。我之前的博客也有多次提及▄︻┻┳═一https://www.cnblogs.com/buguge/tag/日志链路追踪/。那么,如果涉及到异步线程处理的话,我们知道,由于异步线程与工作线程是两个不同的线程,因此,这时的线程名会发生变化。一次请求的完整日志就无法通过唯一的标识来过滤了。 有没有办法呢?问题即答案。当然是有的。 线程是用来执行任务的,任务是一段程序代码的封装。在java中,任务通过java.lang.Runnable来表示。使用方面,我们可以自己定义一个实现Runnable
众所周知,通过唯一的链路id来追踪一次请求的所有日志,对于排查生产问题来说,会是非常给力的。这个比较容易实现。我之前的博客也有多次提及▄︻┻┳═一https://www.cnblogs.com/buguge/tag/日志链路追踪/。那么,如果涉及到异步线程处理的话,我们知道,由于异步线程与工作线程是两个不同的线程,因此,这时的线程名会发生变化。一次请求的完整日志就无法通过唯一的标识来过滤了。 有没有办法呢?问题即答案。当然是有的。 线程是用来执行任务的,任务是一段程序代码的封装。在java中,任务通过java.lang.Runnable来表示。使用方面,我们可以自己定义一个实现Runnable
这不光棍节快到了,表弟准备写一封情书给他的女神,想在光棍节之前脱单。为了提高成功率,于是跑来找我给他参谋参谋,本来我是不想理他的,不过谁让他是我表弟呢(请我洗jio),于是教给他程序员的终极浪漫绝招,先假装给女神拍照,然后再把情书写到她的照片上打印出来送给她,嘿嘿~实现步骤想要实现把情书写在像素中,那么我们就需要用到pillow这个神器。众所周知,图片是由无数个像素所组成的,把图片无限放大,就会看到一个个小方格,这就是像素。1、准备工作我们都知道,针对图片进行操作,就会用到Pillow这个库,因为Pillow 是第三方库,所以在使用前,我们要使用pip进行安装。pipinstallPillow
这不光棍节快到了,表弟准备写一封情书给他的女神,想在光棍节之前脱单。为了提高成功率,于是跑来找我给他参谋参谋,本来我是不想理他的,不过谁让他是我表弟呢(请我洗jio),于是教给他程序员的终极浪漫绝招,先假装给女神拍照,然后再把情书写到她的照片上打印出来送给她,嘿嘿~实现步骤想要实现把情书写在像素中,那么我们就需要用到pillow这个神器。众所周知,图片是由无数个像素所组成的,把图片无限放大,就会看到一个个小方格,这就是像素。1、准备工作我们都知道,针对图片进行操作,就会用到Pillow这个库,因为Pillow 是第三方库,所以在使用前,我们要使用pip进行安装。pipinstallPillow
来源:https://lepdou.github.io/blogs/config/config.html引言项目开发中总是有各种各样的配置,对于程序开发新手来说,配置是摆在面前的第一座大山。回想当年在学校学习经典的“SSH”的时候,一个web.xml配置都是异常的艰辛。工作多年的你,对配置真的了解吗?什么是配置?首先我们来看一下配置文件的定义:“Asoftwarefileusedtoconfiguretheinitialsettingsforacomputerprogram.”--Fromwikipedia配置来源可能有以下这些:硬编码参数项目里的配置文件文件系统上的配置文件网络上的配置文件启
来源:https://lepdou.github.io/blogs/config/config.html引言项目开发中总是有各种各样的配置,对于程序开发新手来说,配置是摆在面前的第一座大山。回想当年在学校学习经典的“SSH”的时候,一个web.xml配置都是异常的艰辛。工作多年的你,对配置真的了解吗?什么是配置?首先我们来看一下配置文件的定义:“Asoftwarefileusedtoconfiguretheinitialsettingsforacomputerprogram.”--Fromwikipedia配置来源可能有以下这些:硬编码参数项目里的配置文件文件系统上的配置文件网络上的配置文件启