自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(278)
  • 资源 (6)
  • 收藏
  • 关注

转载 core 接口优化的常见方案实战总结

批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。//批量入库我相信很多接口的效率问题不是一朝一夕形成的,在需求迭代的过程中,为了需求快速上线,采取直接累加代码的方式去实现功能,这样会造成以上这些接口性能问题。变换思路,更高一级思考问题,站在接口设计者的角度去开发需求,会避免很多这样的问题,也是降本增效的一种行之有效的方式。以上,共勉!作者:京东开发者来源:toutiao.io/posts/0kwkbb。

2023-04-27 15:09:47 289

原创 没有身份证如何坐高铁

12306 -》 温馨服务 -〉乘坐旅客列车临时身份证明-》申请-〉扫描入站

2022-07-05 15:23:12 225

原创 上海疫情 - 离沪方案(2022.06版)

现状:上海闵行区小区内隔离两个月,现已回到镇江离沪事项:1、房屋退租(物品可交由朋友暂存,或者邮寄回家)2、抢车票(如果是中转,需要走完中转地的防疫流程才会放行,南京是两小时以内)3、电话联系家乡居委,告知回乡时间、路程、足够充分的理由4、离开前一天,在居委 / 门卫处出示车票,可以去就近检测点免费检验核酸,上午检测最佳,结果一般12小时左右可查询5、离开当天,在居委 / 门卫处办理通行证,便可以出发去车站了(提前规划好路线)!!!建议每一步都留有足够的时间buffer

2022-05-29 19:05:13 248

原创 个人对中台的认识

1、公司大了后,基础能力、业务能力需要沉淀;通用能力可以剥离出来,解决共性问题;好处:降成本,提升效率坏处:中台成熟后改动较少,后期新的业务会为了接中台而瘦身,反而阻碍了一些业务的发展2、业务满意度调研、文档建设(文档框架-逐个审核)、Oncall服务、SDK封装的能力、中台主页+找人地图3、中台分类基础中台:基础通用的能力业务中台:业务的某一个动作,这个动作很多业务都做,比较通用,在基础中台之上再次封装...

2022-04-22 11:09:41 318

转载 Go的50度灰:Golang新开发者要注意的陷阱和常见错误

Go的50度灰:Golang新开发者要注意的陷阱和常见错误

2021-12-28 21:15:48 209

原创 ID生成器方案

一、主方案mysql步长缓存,提供id二、灾备方案1、数据库主从复制,一主两从并且采用全同步方式2、redis作为兜底方案,redis与mysql生成的id最后一位数字是0/1还有个方案,直接一百个实例,每个实例拥有一个状态编号步长,每台实例的步长是固定的;只是需要定时将限制id记录到存储中,这就需要每个实例一个存储,即使单个实例奔溃也没事;优点:纯内存计算,高可用缺点:初始就要分配好机器数和步长;可以缩容,扩容稍微麻烦些...

2021-09-18 13:15:07 115

转载 【干货】互联网公司理想网络架构探讨

整体架构

2021-06-10 15:18:07 289

转载 docker安装elasticsearch

docker安装elasticsearch1.设置max_map_count不能启动es会启动不起来查看max_map_count的值默认是65530

2021-06-09 19:59:52 166

转载 gradle中api、implementation和compile的区别

我们在gradle中引用第三方maven库时,一般通过下面的语句去引用:compile 'com.android.support:appcompat-v7:26.1.0'然后sync project,就能成功引用对应的包到项目之中了,十分方便。除了使用compile关键字,使用implementation和api也能将包引用到项目中:implementation 'com.android.support:appcompat-v7:26.1.0'api 'com.android..

2021-06-08 17:23:42 1394

转载 朴素贝叶斯分类算法

带你理解朴素贝叶斯分类算法和,确定映射规则y = f(),使得任意有且仅有一个,使得成立。其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键。那么如何由指定特征,得到我们最终的类别,也是我们下面要讲的,每一个不同的分类算法,对应着不同的核心思想。本篇文章,我会用一个具体实例,对朴素贝叶斯算法几乎所有的重...

2021-06-08 14:52:35 1169

转载 发现一款好用到爆的数据库工具 - DataGrip(就是耗内存)

作者:Atzuge cnblogs.com/zuge/p/7397255.html最近看到一款数据库客户端工具,DataGrip,是大名鼎鼎的JetBrains公司出品的,就是那个出品Intellij IDEA的公司。DataGrip是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql、创建表、创建索引以及导出数据等。之前试用的客户端工具是dbvisualizer,但是在试用了DataGrip以后,我就决定抛弃dbvisualizer。我相信,当你第一眼看到DataGrip以...

2021-05-30 16:51:12 4158

原创 数据库中间件的思考

一、一代数据库一代本质还是使用mysql 上面加一层代理 只是代理是proxy和zebra的问题二、二代数据库

2021-05-30 11:58:42 111

转载 Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计 - 几十M就能统计亿级数据

在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合。常见的场景如下: 给一个 userId ,判断用户登陆状态; 显示用户某个月的签到次数和首次签到时间; 两亿用户最近 7 天的签到情况,统计 7 天内连续签到的用户总数; 通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。所以,我们必须要选择能够非常高效地统计大量数据(例如亿级)的集合类型。如何选择合适的数据集合,我们

2021-05-28 15:21:59 1126

转载 最近最少使用策略LRU原理

原理:双向链表实现1、当一个位置被命中之后,将该位置调整到链表头2、新加入的节点直接加到链表头当需要删除内容时候,链表的最后位置就是最少被命中的位置,我们只需要淘汰链表最后的部分即可。今天和简单聊一下大厂面试经常被问到的一个知识点,LRU 的原理。三种最常见的链表结构循环链表的概念如上图所示:单链表的尾结点指针指向空地址,表示这就是最后的结点了。而循环链表的尾结点指针是指向链表的头结点。因此循环链表是一种特殊的单链表。*它跟单链表唯一的区别就在于尾结点。它像一个环一.

2021-05-24 15:31:50 704

转载 java实现动态编译并动态加载

在D盘test目录下有个java文件:AlTest.javapublic class AlTest { public String sayHello(){ System.out.println("AlTest类 sayHello()方法正在执行...."); return "hello word"; }}现需要实现在工程已经运行过程中,进行java文件到class文件的编译操作,并运行AlTest类的方法package com.piao.j...

2021-05-20 10:24:03 442

转载 零拷贝

作者:艾小仙链接:https://zhuanlan.zhihu.com/p/357820303来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。平时在面试中你肯定会经常碰见的问题就是:RocketMQ为什么快?Kafka为什么快?什么是mmap?这一类的问题都逃不过的一个点就是零拷贝,虽然还有一些其他的原因,但是今天我们的话题主要就是零拷贝。传统IO在开始谈零拷贝之前,首先要对传统的IO方式有一个概念。基于传统的IO方式,底层实际上通过调用read(.

2021-05-16 17:58:57 120

转载 Redis

Redis作为一个内存数据库。1、性能优秀,数据在内存中,读写速度非常快,支持并发10W QPS;2、单进程单线程,是线程安全的,采用IO多路复用机制;3、丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等;4、支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载;5、主从复制,哨兵,高可用;6、可以用作分布式锁;7、可以作为消息中间件使用,支持发布订阅1、string是redis最基本的类型,可以理解成与m

2021-05-13 12:46:16 115

转载 再过半小时,你就能明白kafka的工作原理了

为什么需要消息队列  周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”。买一送一还有这种好事,那我可不能错过!忍不住立马点了去。于是选了两个最新款,下单、支付一气呵成!满足的躺在床上,想着马上有女朋友了,竟然幸福的失眠了……  第二天正常上着班,突然接到快递小哥的电话:  小哥:“你是xx吗?你的女朋友到了,我现在在你楼下,你来拿一下吧!”。  我:“这……我在上班呢,可以晚上送过来吗?“。  小哥:“晚上可不行哦,晚上我也下班了呢!”。  于

2021-05-12 20:57:50 131

原创 实用算法 - 总纲

1、K最近邻算法 - 一种分类算法思路:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。2、广度优先搜索算法 - 一种盲目搜寻法,思路:求两点最短路径的算法(路径上权重一样),很实用的图算法(地图导航、下棋);可解决两类问题:1、节点A有路径到节点B吗 2、

2021-05-10 16:26:41 181

转载 spring web中对http请求的reponse进行包装

import javax.servlet.ServletOutputStream;import javax.servlet.WriteListener;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;import java.io.ByteArrayOutputStream;import java.io.IOException;/** * @d.

2021-05-10 15:10:17 408

原创 排序算法 - 总纲

排序的稳定性:A==B,开始A在B的前面,排序后A还是在B的前面,说明是这个排序是稳定的;否则称为不稳定的。内排序:需要排序的所有记录在内存中(内排序分为四类:插入排序,交换排序,选择排序,归并排序)外排序:记录个数过多,数据放在外存中,需要内外存之间不断的交互数据基本有序的/数量少追求简单 用直接插入排序;数量大无序用快速排序(快速排序不稳定且需要额外空间,想省空间就要用堆排序;要稳定的话只能换成归并排序了)1.0、冒泡排序:原理:每进行一趟排序都会找出一个较小/大值放到开头(中间比较会交换

2021-05-09 16:26:30 113

转载 SpringMVC项目中获取所有URL到Controller Method的映射

import com.google.common.collect.Lists;import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactoryUtils;import org.springframework.beans.factory.InitializingBean;import org.springframework.context.ApplicationC..

2021-05-07 15:07:49 319

转载 Spring @Conditional注解 详细讲解及示例

前言:@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。@Conditional的定义://此注解可以标注在类和方法上@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME) @Documentedpublic @interface Conditional { Class<? extends Cond

2021-05-06 15:41:51 344

原创 查找算法 - 总纲

查找算法:按照性能来看,散列hash最好(也是一种索引查找),索引查找,磁盘交互用B+树 / 内存增删查用红黑树,有序序列的查找用二分/插值/斐波那契,实在不行直接顺序查找;一般都是组合使用1.0、二分查找算法:前提:是“有序”的“知道界限”的元素列表原理:每次都与“中间的数”比较看是大了还是小了,下一次的猜测直接排除一半的可能,从另外一半继续查找,重复这个过程,直到查找成功或者查找集为空适用场景:本身就是有序的存储,或者维持有序的代价不高,就可以用这个,很快(太简单的直接顺序查找即可)时间复

2021-05-06 11:00:34 98

转载 字节码增强 - 从aop说起

文章目录 前言从AOP说起静态代理动态代理JavaProxyCGLIB 字节码增强实现AOPASMJavaAssist 运行时类加载Instrumentation接口JavaAgentPremainClass随JVM进程启动AgentClass以Attach方法注入Agent 总结 前言 在上篇文章Java字节码技术(一)中已经介绍了Java中字节码相关的基础概念。我们知道,Java代码转换后的JVM指令存在Code区中。如果能对Code区的指令进行新增、修改,即能达到.

2021-05-04 15:16:17 838 1

转载 Java线程池之---ForkJoinPool线程池的使用以及原理

Java 7 引入了一种新的并发框架—— Fork/Join Framework。同时引入了一种新的线程池:ForkJoinPool(ForkJoinPool.coomonPool)@sun.misc.Contendedpublic class ForkJoinPool extends AbstractExecutorService {}本文的主要目的是介绍 ForkJoinPool 的适用场景,实现原理,以及示例代码。说在前面可以说是说明,也可以说下面是结论:ForkJoinP

2021-04-30 17:46:21 1495 2

转载 万字总结,体系化带你全面认识 Nginx !

作者:Lionhttps://juejin.cn/post/6942607113118023710Nginx是开源、高性能、高可靠的Web和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是Nginx最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是,Nginx是免费的并可以商业化,配置使用也比较简单。Nginx 特点 高并发、高...

2021-04-23 15:33:59 92

转载 面试 - HashMap的31连环炮

写在前面在面试中,HashMap基本必问,只是问法各有不同而已。曾经我也和很多面试官聊过关于HashMap的话题,使用HashMap就能考察面试者的很多知识点。不幸的是,很大部分人都拜倒在HashMap的石榴裙底下。HashMap为什么如此受面试官青睐?我觉得其中有4个原因: HashMap在我们工作中使用频率相当高。 Java基础(可以通过此Java集合) 线程安全问题(可以通过这个问题引入多线程并发编程的相关问题) 大厂都在问,岂能不问?(不问的话,显得面

2021-04-22 21:54:47 309

转载 10张图告诉你多线程那些破事

头发很多的程序员:『师父,这个批量处理接口太慢了,有什么办法可以优化?』架构师:『试试使用多线程优化』第二天头发很多的程序员:『师父,我已经使用了多线程,为什么接口还变慢了?』架构师:『去给我买杯咖啡,我写篇文章告诉你』……吭哧吭哧买咖啡去了在实际工作中,错误使用多线程非但不能提高效率还可能使程序崩溃。以在路上开车为例:在一个单向行驶的道路上,每辆汽车都遵守交通规则,这时候整体通行是正常的。『单向车道』意味着『一个线程』,『多辆车』意味着『多个job任务』。单线程顺利同行..

2021-04-22 21:50:03 99

转载 一个复杂系统的拆分改造实践

1 为什么要拆分?先看一段对话。从上面对话可以看出拆分的理由:1)应用间耦合严重。系统内各个应用之间不通,同样一个功能在各个应用中都有实现,后果就是改一处功能,需要同时改系统中的所有应用。这种情况多存在于历史较长的系统,因各种原因,系统内的各个应用都形成了自己的业务小闭环;2)业务扩展性差。数据模型从设计之初就只支持某一类的业务,来了新类型的业务后又得重新写代码实现,结果就是项目延期,大大影响业务的接入速度;3)代码老旧,难以维护。各种随意的if else、写死逻辑散落在...

2021-04-22 21:47:49 90

转载 负载均衡续:万亿流量场景下的负载均衡实践

上篇基本把负载均衡涉及到的基础都罗列了,那么到了实际场景下,特别是万亿流量场景下,真实的负载均衡方案又是怎么做的呢。本篇分别就淘宝双11、春运12306、微信红包和抖音春晚红包等场景在负载均衡方面的运用进行一些介绍和讨论。阿里双11流量下的负载均衡[1]双十一流量特点请求量巨大,脉冲式的。是对阿里生态链路上所有服务的考验对负载均衡器的要求: 性能优良:应对双11当晚脉冲式的流量冲击 服务稳定:可用性高,以应对设备和网络的抖动 业务无感:顺滑的自身升级和容灾切换..

2021-04-22 21:44:10 110

转载 高并发系列:垂直性能优化之细说负载均衡

高并发系列第一篇:垂直性能优化之细说负载高并发是业务发展到一定阶段必须面对的问题,那么面对高并发的问题,我们可以从哪些方面入手优化呢?垂直性能优化[包含整体层面的负载均衡、中间件异步化、存储优化、代码层面调优、jvm容器调优等等]整体可用性优化[包含服务治理、服务保护、可靠性保障、生产验证、故障演练等等]水平扩展提升[包含分层架构、弹性架构、服务拆分及单元化等等]从这篇开始将对上述问题进行逐点阐述,欢迎大家一起交流讨论~前言性能为王。可用性和水平扩展,都要建立在性能优...

2021-04-21 20:40:19 157

转载 直接用 IP 访问知乎,我发现了一个秘密···

我们看到的域名的ip其实很多都不是域名真实的ip地址,而是cdn缓存服务器的地址我们先来ping知乎的域名,然后可以得到响应的服务器的ip,之后我们用浏览器来访问这个ip,结果如下被拒绝访问了。而用ip来访问百度,则没啥问题,如图访问知乎的时候,域名可以访问,ip不可以访问,这究竟是为啥?我们知道,ipv4的ip地址是非常有限的,如果每个人都想拥有一个全球ip,那肯定是不够分配的,不知道啥是全球ip的可以看我这篇文...

2021-04-20 11:37:44 271

转载 http调用框架 - Forest

背景因为业务关系,要和许多不同第三方公司进行对接。这些服务商都提供基于http的api。但是每家公司提供api具体细节差别很大。有的基于RESTFUL规范,有的基于传统的http规范;有的需要在header里放置签名,有的需要SSL的双向认证,有的只需要SSL的单向认证;有的以JSON方式进行序列化,有的以XML方式进行序列化。类似于这样细节的差别太多了。不同的公司API规范不一样,这很正常。但是对于我来说,我如果想要代码变得优雅。我就必须解决一个痛点:不同服务商API那么多的差异点,如何才能.

2021-04-20 11:32:46 609

转载 秒杀系统

解决思路1是分,将非秒杀点击的部分尽可能分出去,单独支持。解决思路2是异步,流量削峰解决思路3是缓存,缓解db压力一、超卖问题1)使用Redis缓存预减库存,减少数据库的访问。因为缓存的访问速度比数据库访问快得多。2)使用内存标记,减少Redis缓存的访问次数。3)使用队列等异步手段,请求先入队缓冲,异步下单,将数据写入数据库(这里还可以再校验一次库存),增强用户体验。总体思路就是要减少对数据库的访问,尽可能将数据缓存到Redis缓存中,从缓存中获取数据。在系统初..

2021-04-20 11:29:18 126

转载 DNS负载均衡

1. DNS简介DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需要记住那些不太容易理解的IP地址。在DNS系统中有一个比较重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。如果你有一个自己的域名,那么要想别人能访问到你的网站,你需要到特定的DNS解析服务商的服务器上填写A记录,过一段时间后

2021-04-18 16:37:39 3744

转载 IO多路复用

阻塞 IO服务端为了处理客户端的连接和请求的数据,写了如下代码。listenfd=socket();//打开一个网络通信端口bind(listenfd);//绑定listen(listenfd);//监听while(1){connfd=accept(listenfd);//阻塞建立连接intn=read(connfd,buf);//阻塞读数据doSomeThing(buf);//利用读到的数据...

2021-04-13 11:44:45 83

转载 聊聊二维码扫码登录的原理

前几天看了极客时间一个二维码的视频[1],写的不错,这里总结下:在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码,防止上当受骗。二维码,大家再熟悉不过了。购物扫个码,吃饭扫个码,坐公交也扫个码。在扫码的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢?这时

2021-04-13 11:39:10 166

转载 移动设备(手机)的唯一ID有哪些

移动设备(手机)的唯一ID有哪些在移动广告领域,设备的ID 是用来追踪一个人的最重要的标识。对于APP自身产品而言,使用设备唯一ID可以追踪到用户从下载到激活、注册、使用、流失、回归的全流程数据,对产品运营工作非常有帮助。对于精准广告和个性化推荐而言,可以使用设备ID进行数据收集、然后进行千人千面的精准营销。对于与外部数据打通而言,移动设备ID 是能与公司外的数据进行打通、交换、补充的唯一性ID,也是市场上大家都认可的ID。既然移动设备ID 如此的重要,那我们就来聊一聊,有哪些ID我们是可

2021-04-13 11:25:47 956

转载 分布式ID生成方式

先说结论:一般推荐号段模式,雪花算法非常容易掉坑。。。。比如前端数字类型最多53位,你一个json以long的形式传到前端基本上就掉坑了一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分.

2021-04-13 11:12:01 81

elasticsearch-analysis-ik-7.6.0

windows下IK分词器的安装包,版本号7.6.0

2020-03-02

mybatis整合springMvc完整jar包

mybatis整合springMvc完整jar包,多种工具包合集

2015-06-25

log4j.jar 下载

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

2015-06-15

操作Excel的poi包

操作Excel的第三方工具包

2015-05-27

操作Excel的jxl包

操作excel文件的一种方式所需的jar包:jxl.jar

2015-05-27

sqljdbc 4.0

第三方工具,连接和操作数据库

2015-05-27

空空如也

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

TA关注的人

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