自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

为无为,事无事,味无味。

大小,多少,抱怨,以德。图难乎,其易也;为大乎,其细也;天下之难,作于易;天下之大,作于细。是以圣人终不为大,故能成其大。夫轻诺,必寡信;多易必多难。是以圣人犹难之,故终无难矣。

  • 博客(519)
  • 资源 (6)
  • 收藏
  • 关注

原创 合格程序员每天每周每月每年应该做的事

程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢 4、考虑自

2009-11-18 12:45:00 1755 1

原创 科普文:JDK678三个版本内存布局变化

在之前的文章中我们说到过,Oralce 拥有 JRockit 与 HotSpot 两款优秀的虚拟机,在 JRockit 中并没有永久代,为了将 JRockit 优秀的设计融入 HotSpot 中,在 JDK 1.8 中 HotSpot 移除了永久代。这两个参数的限制,这两个参数在物理空间上又受到 JVM 设定的内存大小限制,这就会导致在使用中永久代可能出现内存溢出的问题,因此在 JDK 1.8 及之后的版本中彻底移除了永久代,用元空间来进行替代,其中。用于分配一个容量为1024字节的直接内存区域。

2024-07-26 10:01:48 417

原创 科普文:Linux系统安全加固指南

本指南仅关注安全性和隐私性,而不关注性能,可用性或其他内容。列出的所有命令都将需要root特权。以“$”符号开头的单词表示一个变量,不同终端之间可能会有所不同。选择一个好的Linux发行版有很多因素。避免分发冻结程序包,因为它们在安全更新中通常很落后不使用与Systemd机制的发行版。Systemd包含许多不必要的攻击面;它尝试做的事情远远超出了必要,并且超出了初始化系统应做的事情。使用musl作为默认的C库。

2024-07-25 09:58:57 760

原创 科普文:图文探究Linux内核

本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux内核,能看懂Linux内核。拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是内核是什么,它用于什么?

2024-07-25 09:46:31 735

原创 科普文:田哥万字总结JVM核心知识

JVM 全称 Java Virtual Machine(Java 虚拟机) ,也就是我们耳熟能详的 Java 虚拟机。它能识别 .class后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。JRE全程Java Runtime Environment,是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

2024-07-23 18:48:09 806

原创 科普文:搞懂Apache BookKeeper和一致性协议

BookKeeper最初在雅虎开发,代表了一种可靠的高性能存储系统。它提供分布式可扩展的存储服务,具有低延迟和强容错性的优点。这些充分说明了为什么它能够充当Pulsar的存储层。BookKeeper将数据存储在分类帐(ledger)中,分类帐只能追加且不可变。借助特殊的复制协议,BookKeeper以并发方式在多个节点上安全地存储日志条目,因而具有高可用性。顾名思义,BookKeeper和分类帐在云原生环境中大有用途。不妨设想一下簿记员使用分类帐记录所有相关账户信息,以跟踪企业的财务状况。

2024-07-23 16:56:30 991

原创 科普文:搞懂多线程和多线程同步C++版

一个进程内多个线程并发执行的情况就叫多线程,每个线程是一个独立的执行流,多线程是一种编程模型,它与处理器无关、跟设计有关。并行计算:充分利用多核,提升整体吞吐,加快执行速度。后台任务处理:将后台线程和主线程分离,在特定场景它是不可或缺的,如:响应式用户界面、实时系统等。我们用 2 个例子作说明。

2024-07-23 16:51:20 983

原创 科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明

提供基础设施服务,‌包括服务器、‌存储、‌网络等硬件资源。‌用户可以在这些基础设施上运行自己的应用和数据,‌从而大大降低了基础设施的购买和管理成本。‌这种服务模式让用户能够专注于应用开发,‌而不必担心基础设施的管理和维护。‌提供了一个平台和环境,‌用户可以在这个平台上开发、‌运行和管理自己的应用。‌PaaS解放了用户从基础设施管理的困扰,‌让他们可以专注于应用的开发。‌这种服务模式通过提供开发工具、‌运行时环境等,‌简化了应用的开发和部署过程。‌。

2024-07-23 11:48:11 950

原创 科普文:万字图文解说Dubbo的RPC调用核心流程

到这终于讲完了一次RPC请求在Dubbo中经历整个核心流程不知道你看完有什么感受这里我再来画一张图总结整个调用过程值得注意是,上面提到的所有调用环节,注意说的是所有,Dubbo都留了对应的扩展点也就是说,小到一个Filter,大到整个通信协议你都可以进行自定义扩展从这也可以看出,Dubbo在设计上的优秀之处。

2024-07-23 11:10:50 599

原创 科普文:【Linux内核设计思想】之三Linux内核启动过程

zImage适用于小内核的情况,它的存在是为了向后的兼容性。第三步,把 head.o,misc.o 和 piggy.o 链接生成 arch/i386/boot/compressed/vmlinux,这一步,链接的是arch/i386/boot/compressed/head.S。setup执行完毕,跳转到vmlinux.bin中的startup_32()是arch/i386/boot/compressed/head.S中的startup_32()这是一段自解压程序,过程和内核生成的过程正好相反。

2024-07-23 08:53:27 965

原创 科普文:【Linux内核设计思想】之二内核编译及内核开发的特点

在三选一的情况下多了一个 module 选项,如果选择 module 选项,表示该配置项已被选定,但编译的时候这部分功能的实现代码是以模块(一种可以动态安装的独立代码段)的形式生成,而 yes 选项表示把代码编译进主内核映像,而不是作为一个模块。但是内核栈的大小是固定的,它和体系结构有关,在 x86 上,栈的大小在编译时配置,可以是4KB或8KB,一般来说,内核栈的大小是两页,在32位机器内核栈大小为8KB,在64位机器内核栈大小为16KB,这是固定的,每个处理器都有自己的栈。例如下面一个条件选择语句。

2024-07-23 08:49:59 869

原创 科普文:【Linux内核设计思想】之一Linux内核概念梳理

Linux系统的基础包括内核、C库、编译器、工具集和系统的基本工具,比如登陆程序和shell。当我们说到Linux这个词时,一般指的是Linux内核。对于Linux系统来说,操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分,包括内核、设备驱动程序、启动引导程序、命令行shell或者其他用户界面、基本的文件管理工具和系统工具。用户界面是操作系统的外在表现,而内核是操作系统的内在核心。操作系统的其他部分必须依靠内核所提供的服务,而内核实质也是一个软件。内核也叫做超级管理者或者操作系统核心。

2024-07-23 08:48:39 886

原创 实战:OpenFeign使用以及易踩坑说明

对于单个接口怎么配置超时时间,我这里给出一个方案,如果你有其他方案,欢迎探讨。@Bean@Bean为了使用ribbon负载均衡,上面加了@LoadBalanced如果使用RestTemplate,就会使用OkHttp3ClientHttpRequestFactory中配置的时间。

2024-07-23 06:02:51 661

原创 实战:搞懂数据库连接池和Druid连接池

数据库连接池是一种管理数据库连接的技术,它可以在应用程序启动时创建一定数量的数据库连接,并将这些连接保存在一个连接池中。当应用程序需要访问数据库时,可以从连接池中获取一个空闲的连接,使用完毕后再归还给连接池。这样可以提高应用程序访问数据库的效率,减少数据库连接的开销。Druid数据库连接池中,应用线程向连接池获取连接时,如果池中没有连接,则应用线程会在notEmpty上等待,同时Druid数据库连接池中有一个创建连接的线程,会持续的向连接池创建连接,如果连接池已满,则创建连接的线程会在empty上等待。

2024-07-22 20:24:57 621

原创 科普文: hikari druid c3p0 dbcp等主流数据库连接池性能比较

对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池。NOTE: 本文所有测试均是MySQL库。

2024-07-22 18:38:05 1008

原创 科普文:搭建信贷业务大数据风控体系

大家好,本期为大家介绍如何从0到1搭建大数据风控体系。分为:获客、贷前、贷中、贷后、主要数据维度,以及如何识别风险客户。

2024-07-22 14:10:58 923

原创 实战:MyBatis适配多种数据库:MySQL、Oracle、PostGresql等

很多时候,一套代码要适配多种数据库,主流的三种库:MySQL、Oracle、PostGresql,刚好mybatis支持这种扩展,如下图所示,在一个“namespace”,判断唯一的标志是id+databaseId,刚好写了三个同样的方法,一个不带databaseId,两个带databaseId,此时当前库如果连接的是oracle则执行databaseId=’oracle‘的方法,如果连接的是MySQL则执行databaseId=’mysql‘的方法。

2024-07-22 13:51:17 945 2

原创 科普文:TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin

不使用JavaAgent技术的支持 ForkJoin使用手动捕获,重放的ForkJoinTask实现传递,但是需要暴露ForkJoinPool的使用。通过 javaAgent技术可以添加jvm启动参数后无感支持Runnable,Callable,TimerTask,ForkJoinTask。默认开启Runnable,Callable,ForkJoinTask,并且目前不支持第三方框架重写的线程池逻辑,并做了一定程度的去干扰操作。

2024-07-22 10:11:23 696

原创 科普文:TransmittableThreadLocal线程间传递逻辑示例解析

利用装饰器对ExectorService包装后一步步的继续利用装饰器一直装饰到要执行的目标对象接口例如Runnable,Callable等对初始化,执行前,执行后三个时机进行增强重写了InheritableThreadLocal#childValue 方法来传递 TTL定义的一个中转map对象 key为 TTL对象。

2024-07-22 10:03:45 676

原创 实战:ForkJoinPool对大文件导入技术优化指南

Fork/Join框架是Java7提供了的一个用于并行执行任务的框架。ForkJoinPool是Java中提供了一个线程池,特点是用来执行分治任务。主题思想是将大任务分解为小任务,然后继续将小任务分解,直至能够直接解决为止,然后再依次将任务的结果合并。是一种工作窃取算法的线程池,‌它特别适用于计算密集型任务,‌尤其是那些可以递归分解成更小子任务的问题。‌ForkJoinPool的原理主要基于两个核心概念:‌fork和join。‌Fork。

2024-07-22 08:17:38 1300

原创 科普文:5种Linux下软件部署方式说明

Snap最大的特点是它的自包含性,每个Snap包都包含了运行该软件所需的所有依赖和库,这意味着Snap软件可以在几乎任何Linux系统上运行,而不会受到系统库版本冲突的影响。从传统的RPM包管理,到便捷的YUM软件仓库,再到颠覆性的Docker容器技术,Snap,源码安装,每一种方法都有其独到之处,适应不同的场景需求。RPM数据库记录了系统中所有已安装RPM包的信息,便于管理和跟踪。安全性:虽然Docker提供了隔离环境,但容器内的安全漏洞仍需关注,合理配置Docker的运行参数,使用安全的基础镜像。

2024-07-22 07:43:46 586

原创 科普文:RedSearch全文搜索

RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了。

2024-07-22 02:59:24 727

原创 科普文:银行信贷系统概叙

功能:接受进件、审批、输出结果、支持自动与人工审批、调用其他风控系统;作用:统一对接外部数据源,支持审批过程中的数据调用;其他系统包括:核心系统(账务系统),资管系统,客户端系统,服务端系统,数据计算平台,短信平台,语音系统等。通过完善的风控系统和业务数据平台,信贷机构能够更有效地管理风险,提高审批效率,为客户提供更优质的服务。系统交互完成策略判断:基于预设的风控策略,系统对申请人的信用状况、还款能力等进行深度分析和判断。系统交互完成审批:系统通过自动化和人工相结合的方式,对贷款申请进行初步筛选和审批。

2024-07-22 02:50:49 647

原创 科普文:后端性能优化的实战小结

分块传输编码(Chunked Transfer Encoding)是一种HTTP/1.1协议中的数据传输机制,它允许服务器在不知道整个内容大小的情况下,就开始传输动态生成的内容。这种机制特别适用于生成大量数据或者由于某种原因数据大小未知的情况。在分块传输编码中,数据被分为一系列的“块”(chunk)。每一个块都包括一个长度标识(以十六进制格式表示)和紧随其后的数据本身,然后是一个CRLF(即"\r\n",代表回车和换行)来结束这个块。

2024-07-22 02:33:59 920

原创 科普文:重读并翻译分布式计算经典文论-MapReduce

Mapreduce是一种处理和生产大型数据集的大型数据集的编程模型和相关实现。用户指定一个map函数,该函数处理键/值对以生成一组中间健/值对,以及一个reduce函数,该函数合并与同一中间键关联的所有中间值。如本文所示,许多现实世界中的任务都可以用该模型表示。用这种函数式风格编写的程序可以自动并行化,并在大型商用机器集群上执行。运行时系统需要关注对输入数据进行分区、在一组机器上调度程序的执行、处理机器故障以及管理所需的机器间通信等细节。

2024-07-22 02:29:01 963

原创 科普文:Jmeter 性能压测-分析定位

科普文:Jmeter 性能压测-分析定位。1、压测过程中TPS上不去?请求响应时间过长?硬件资源不足:服务器的CPU、内存、磁盘等硬件资源不足,无法支撑高并发的请求处理。可以通过增加硬件资源或者优化服务器配置来提升TPS。网络带宽限制:网络带宽不足,导致服务器无法及时响应请求。可以通过增加网络带宽或者优化网络传输方式来提升TPS。数据库性能问题:数据库的读写性能不足,无法满足高并发的请求。可以通过优化数据库结构、索引、查询语句等方式来提升数据库性能。代码逻辑问题:应用程序中存在性能瓶颈

2024-07-22 02:24:36 402

原创 规范:java代码编写规范

比如在项目中不同的类型的业务可能需要上传各种各样的附件,此时就可以定义好不同的一个附件的枚举,来区分不同业务的附件。不要在代码中直接写死,不定义枚举,代码阅读起来非常困难,直接看到数字都是懵逼的。。我们做了这么多的工作,最终也只有跑起来才能够看到效果,所以在maven打包的时候,不要在了,让测试跑起来。如果可以的话,把单元测试加到我们的CI/CD流程中,只有常态化的用起来,才可以真正的产生效果。上面这些只是我在进行代码质量实践时的一些经验,并不适用于所有人或者场景,但是不管我们可以做到多少,怎么做,

2024-07-22 02:08:54 797

原创 科普文:为什么要制定流程规范?

虽然可能员工都是很优秀的人,但每个人的工作习惯,行为喜好方式,对需求的理解,对目标的认同都不一致。世界上从来没有一道机制就可以解决所有问题,人生也好工作也罢,绝大多数时候,都是吃一堑长一智,不断打补丁积累经验,降低犯错成本和概率的过程。而评审签名机制的价值在于,分工明确,责任到人,没有模糊地带,自然就能减少摸鱼和稀泥的的现象发生,线上业务的稳定性自然而然就会提升上来。如果责任到人,反而从产品到研发再到测试,都在想办法改善流程,优化技术,提高交付质量,减少线上问题的出现。

2024-07-22 02:05:48 366

原创 规范:Git代码管理规范

master 为主分支,也是用于部署生产环境的分支,需要确保master分支稳定性。对于工作量小的功能开发(工时小于1天),可以直接在devolop 分支进行开发,否则由 develop 分支检出 feature 分支进行开发,开发完后合并到develop 分支。develop 为开发环境分支,始终保持最新完成以及bug修复后的代码,用于前后端联调。一般开发的新功能时,feature分支都是基于develop分支创建的。线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支。

2024-07-21 10:42:02 1094

原创 规范:MySQL数据库规范

从数据库的设计原则、命名规范等方面论述数据库设计的规范思想及命名规则。参照以下原则进行数据库设计:(1)方便业务功能实现、业务功能扩展(2)方便设计开发、增强系统的稳定性和可维护性;(3)保证数据完整性和准确性(4)提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达到优化平衡。原因:索引NULL列需要额外的空间来保存,所以要占用更多的空间;进行比较和计算时要对NULL值做特别的处理。

2024-07-21 10:40:40 912

原创 规范:前后端接口规范

一个接口一般对参数(请求数据)都会进行安全校验,参数校验的重要性自然不必多说,那么如何对参数进行校验就有讲究了。一般来说有三种常见的校验方式,我们使用了最简洁的第三种方法业务层校验Validator + BindResult校验Validator + 自动抛出异常业务层校验无需多说,即手动在java的Service层进行数据校验判断。不过这样太繁琐了,光校验代码就会有很多而使用。

2024-07-21 10:19:19 1055

原创 规范:数据分析规范

听上去非常合理,但这里实际就隐藏了选择性偏见,因为新版本发布时,第一批升级上来的用户往往就是最活跃的用户,往往这批用户的指标较好,但不代表新版本更好。但实际中,部分合理的猜测找不到直观可行的验证,在给出猜测性结论的时候,一定是基于合理的、有部分验证依据前提下,谨慎地给出结论,并且说明是猜测。不同的目标对象所处的位置不同,看问题的角度就不一样,比如高层更关注方向,分析报告需要提供业务的深度洞察和指出潜在机会点,中层及员工关注具体策略,基于分析结论能通过哪些具体措施去改善现状。同一数据序列使用相同的颜色。

2024-07-21 10:12:03 877

原创 规范:java日志格式规范

在程序中写日志是一件非常重要,但是很容易被开发人员忽视的地方。写好程序的日志可以帮助我们大大减轻后期维护压力。在实际的工作中,开发人员往往迫于巨大时间压力,而写日志又是一个非常繁琐的事情,往往没有引起足够的重视。开发人员应在一开始就养成良好的日志撰写习惯,并且应在实际的开发工作中为写日志预留足够的时间。

2024-07-21 09:55:58 618

原创 规范:Redis规范

在公司项目中,redis属于高频使用,在使用中,我们遇到了各种各样的redis问题,于是针对自身情况梳理了一个redis使用规范。

2024-07-21 09:51:38 852

原创 规范:Linux服务器程序规范

除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上都是模板式的。———引言Linux服务器程序一般以后台形式运行。后台程序又称守护进程。它没有控制终端,因而也不会意外接受用户输入。守护进程的父进程一般是init进程(pid=1)。Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下有自己的日志目录。Linux服务器程序一般以某个专门的非root身份运行。

2024-07-21 09:47:47 556

原创 实战:一文搞懂InheritableThreadLocal

而且我们自己测试的时候是在几个按钮中重复点击,如果线程的第一个请求是/user/query,当你再次发起这个请求的时候如果刚好分配的是这个线程,页面就是正常的,于是就出现页面时好时坏的情况.某天测试环境更新后,有小伙伴反应页面会随机性的发生请求参数为空的情况(request.getParamter为空),但是前端的参数是传了的,而且不能稳定重现,需要在页面上经过一番操作之后才会发生,而当问题重现之后,之前那些可用的页面就变得不可用了,然后就会在可用和不可用之间交替......最终造成了错误的数据传递。

2024-07-21 09:34:26 1027

原创 实战:shell编程之全量命令练习

全网shell命令最全整理,28个大项,近千条shell命令。反之,若系统中并没有指定软件包的较旧版本,rpm 命令并不会安装此软件包。find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录。

2024-07-21 07:10:44 799

原创 科普文:百度搜索之稳定性问题分析

系统架构如下图所示。阶段性使命:kepler1.0在于完善搜索系统的可观测性,基于开源成熟方案结合公司内组件实现从0到1的建设,快速完成可观测性能力空白的补齐,具备根据queryID查询query处理过程的调用链以及途径服务实例日志的能力。引进来:从kepler1.0的架构不难发现,它从数据通路、存储架构等方面完整的参考zipkin。

2024-07-21 06:23:52 1112

原创 科普文:登录系统演进、便捷登录设计与实现

随着互联网、物联网和移动终端等技术的迅猛发展,登录认证面临着新的挑战和需求。虽然登录认证在信息系统中是传统且古老的组成部分,但未来的发展前景依然广阔。不论是用户登录、PC端、移动端还是智能设备的访问,身份认证在保障业务操作安全、资金安全、系统间通信和与外部系统集成等多个方面起到至关重要的作用。随着认证方式的不断演进,从最初的cookie和session,发展到如今的多端登录、多因子认证以及API令牌等多种认证手段。同时,用户终端设备的不断升级也推动着认证方式和手段的不断创新。

2024-07-21 06:11:17 943

原创 科普文:百度交易中台之商品推广流程构建以及实现

上面只是列举的一些大的问题点,放到细节之上,还有许多前台看不到的,但是很影响体验的问题,比如流量主命中有效推广之后,是需要分配佣金的,这部分佣金的计算如何实现,分配后的佣金又如何能实实在在的变成流量主的收入?但是,抛开挑战不说,从交易中台开始构建CPS推广体系,起步就是站在巨人的肩膀上的。用户界面部分,则和广告主类似,商品、订单的界面依赖于百度小程序进行展示,这样的设计方便于在百度APP产品矩阵内进行共享,在技术实现上,广告主的商品界面,只需要开发一次,即可在所有的百度生态内APP上进行展示以及推广。

2024-07-21 06:06:31 1109

java开发手册最新版黄山版

java开发手册最新版--黄山版

2024-07-19

Sybase语法大全.pdf

Adaptive Server Enterprise参考手册

2012-03-08

jsp+servlet+javabean.ppt

9.1 Servlet概述 9.2 Servlet的基本结构与成员方法 9.3 调用Servlet的多种方法 9.4 两种模式的JSP技术 9.5 Servlet模式的留言板案例 9.6 Servlet的会话跟踪 习题9

2010-04-02

mysql-connector-net-5.2.5-src.zip

mysql connector net 5.2.5 装上就可用...

2009-10-29

Devexpress学习篇(请大家多多指教)

Devexpress学习篇(请大家多多指教)博客文章 因为大家看不到图片,所以我将博客文章保存在word里面 请大家 下载一下啊 帮帮忙看看 多谢指教

2009-07-28

Devexpress自学案例

Devexpress自学案例 请大家 多多指教

2009-07-28

2009届应届生求职指南

涵盖2009年各行业,各职业介绍,以及求职准备,求职注意事项,简历制作,面试技巧等等各方面的信息。

2008-12-19

空空如也

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

TA关注的人

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