- 如何设计可扩展的后端系统架构?
破碎的天堂鸟
学习教程系统架构
设计可扩展的后端系统架构需综合考虑核心原则、架构模式、扩展策略、数据存储、容错机制及监控体系。以下是基于行业实践的详细指南:一、可扩展架构的核心原则无状态性(Statelessness)服务不保存客户端状态,请求可被任意实例处理,便于水平扩展。实现:通过负载均衡器(如Nginx、HAProxy)分发请求至多个无状态实例。松散耦合(LooseCoupling)模块间通过API或消息队列通信,减少依赖
- 探秘阿里云消息队列:解锁分布式系统的异步通信奥秘
云资源服务商
阿里云云计算中间件
阿里云消息队列:分布式架构的基石在当今数字化快速发展的时代,分布式系统已成为企业构建高可用、高性能应用的关键架构。而消息队列,作为分布式系统中的重要组件,犹如基石一般,支撑着整个架构的稳定运行。它能够有效地解决分布式系统中的异步通信、解耦、削峰填谷等问题,为系统的可靠性和扩展性提供了强大的保障。阿里云作为云计算领域的领军者,其推出的阿里云消息队列凭借着卓越的性能、高可靠性以及丰富的功能,成为了众多
- 深入 Java 领域 log4j 的日志异步队列实现
Java大师兄学大数据AI应用开发
AI人工智能与大数据应用开发AI实战javalog4j开发语言ai
深入Java领域log4j的日志异步队列实现关键词:log4j、异步日志、队列实现、Java日志框架、性能优化、并发编程、日志系统架构摘要:本文深入探讨了log4j日志框架中异步队列的实现原理和机制。我们将从日志系统的基本概念出发,详细分析log4j异步日志的核心架构、队列实现方式、性能优化策略以及在实际项目中的应用场景。通过源码级别的解析和性能测试数据对比,帮助开发者深入理解异步日志的工作原理,
- JAVA使用搭建EMQX消息队列
xiaomadingd
javaspringspringboot
JAVA连接EMQX简介1.依赖导入2.写入配置文件和配置类3.连接broker核心类和消息发布回调类4.HTTP调用测试发布消息简介本文主要介绍怎么用java客户端paho连接emqx并实现共享订阅,所谓共享订阅就是在开多个节点的客户端消费时,保证一条消息有且仅有一个节点消费,不会造成重复消费。1.依赖导入org.eclipse.pahoorg.eclipse.paho.client.mqttv
- 基于 Java 的电商业务秒杀商品高并发、数据一致性、系统性能等多个方面设计方案
一杯冰美式_丶
java开发语言
1.需求分析高并发:大量用户同时抢购,系统需要支持高并发请求。库存一致性:避免超卖(库存减为负数)或数据不一致。高性能:响应时间要短,用户体验要好。公平性:先到先得,避免作弊。2.技术选型缓存:使用Redis缓存商品库存和秒杀结果,减少数据库压力。消息队列:使用RabbitMQ或Kafka异步处理订单,削峰填谷。数据库:MySQL存储订单和商品信息,使用事务保证数据一致性。分布式锁:使用Redis
- 深入解读MCP:构建低延迟、高吞吐量通信中间件
LCG元
MCP中间件
目录MCP核心架构设计MCP中间件架构图协议设计与消息格式MCP协议头结构消息体编码示例核心模块实现1.高性能网络层(基于Netty)2.零拷贝内存队列3.高效路由引擎4.消息持久化模块性能优化技巧1.批量合并写操作2.CPU缓存行优化3.内存池技术可靠性保障机制消息处理流程图实现代码:消息重试机制性能基准测试压测环境配置性能测试结果生产部署方案集群拓扑图部署脚本示例总结与最佳实践性能优化矩阵部署
- RabbitMQ在SpringBoot中的使用详解
z小天才b
RabbitMQrabbitmqspringboot
目录RabbitMQ基础概念什么是RabbitMQ?核心概念详解1.队列(Queue)2.交换机(Exchange)3.绑定(Binding)️环境搭建1.安装RabbitMQWindows安装Docker安装(推荐)2.访问管理界面SpringBoot集成RabbitMQ1.添加依赖2.配置文件⚙️基础配置1.RabbitMQ配置类简单队列模式1.队列配置2.生产者3.消费者工作队列模式1.配置
- 嵌入式C语言中void*的妙用与实战
隐身模式
C/C++c语言开发语言
嵌入式C语言中void*的工程应用详解在嵌入式开发中,void*指针无处不在,理解它的使用场景和注意事项,是写好通用接口和系统模块的关键。目录嵌入式C语言中`void*`的工程应用详解✳️一、什么是`void*`二、典型应用场景1.通用参数传递2.通用回调机制3.通用数据结构(链表、队列)4.封装模块接口(如SDK、HAL)⚠️三、使用`void*`的注意事项✅建议实践:四、实战案例:事件处理机制
- 【华为OD机试真题 2025B卷】130、最多获得的短信条数、云短信平台优惠活动 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
KFickle
最新华为OD机试(C++JavaPyCJS)+OJ华为odc++javajavascript华为OD机试真题c语言最多获得的短信条数
文章目录一、题目题目描述输入输出样例1样例2二、代码与思路参考C++代码Java代码Python代码C语言代码JS代码订阅本专栏后即可解锁在线OJ刷题权限个人博客首页:KFickle专栏介绍:最新的华为OD机试真题,使用C++,Java,Python,C语言,JS五种语言进行解答,每个题目都包含解题思路,五种语言的解法,每日持续更新中,订阅后支持开通在线OJ测试刷题!!!一次订阅永久享受更新,有代
- 【华为OD机试真题 2025B卷】128、 判断一组不等式是否满足约束并输出最大差 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
KFickle
最新华为OD机试(C++JavaPyCJS)+OJ华为odc++java华为OD机试真题c语言javascript
文章目录一、题目题目描述输入输出样例1样例2二、代码与思路参考C++代码Java代码Python代码C语言代码JS代码订阅本专栏后即可解锁在线OJ刷题权限个人博客首页:KFickle专栏介绍:最新的华为OD机试真题,使用C++,Java,Python,C语言,JS五种语言进行解答,每个题目都包含解题思路,五种语言的解法,每日持续更新中,订阅后支持开通在线OJ测试刷题!!!一次订阅永久享受更新,有代
- WiFi通信——STM32通过ESP8266-01S上传DHT11温湿度和LED灯状态到阿里云物联网平台上(二)MQTT协议代码讲解
文科比理科更擅长的工科男
STM32单片机实战项目讲解stm32阿里云物联网
上一篇博客讲了ESP8266-01S的MQTT固件包烧录过程,配置了阿里云物联网平台,并且利用MQTT.fx验证和阿里云通信的过程,链接如下:https://blog.csdn.net/weixin_41011452/article/details/1406451301MQTT协议MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议)是IBM在1999年
- 力扣239 滑动窗口最大值--JS解法
大号密码忘了
力扣刷题算法leetcode数据结构
239.滑动窗口最大值-力扣(LeetCode)(leetcode-cn.com)题目:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。算法核心:1.维护一个大小为K的队列(数组)头部是该队列最大的单调队列;方法:推入元素之前,与该大小为K的队列的队尾元素进行比较,如果推入元
- 【算法入门】LeetCode 239. 滑动窗口最大值:Java与JavaScript双解法详解|单调队列的精妙运用力扣239题详解:滑动窗口最大值(Java & JavaScript 双语言实现)
南北极之间
算法算法leetcodejava
题目:官方链接:https://leetcode.cn/problems/sliding-window-maximum/description/?envType=study-plan-v2&envId=top-100-liked参考答案:【新手入门】LeetCode239.滑动窗口最大值:Java&JavaScript双解法详解目录题目描述问题分析解题思路3.1暴力法(不推荐)3.2单调队列法(最
- TCP backlog工作机制
riverz1227
tcp/ip网络服务器
Linux中的TCPbacklog:两个队列与丢连接的真相在高并发网络服务场景中,listen()的backlog参数常常被误解,许多TCP连接被悄悄丢弃时,我们甚至毫无察觉。近期在排查一条内核日志TCP:dropopenrequestfrom...时,对此翻阅整理了一些资料,就TCPbacklog在Linux中的工作原理、背后的两个关键队列机制,以及如何高效排查相关连接丢失问题,做些记录01|什
- 我与C语言二周目邂逅vlog—1.熟悉而又陌生-初识C语言
hope kc
c语言开发语言
如题,在下是一名大二学生,希望改过自新,重新学习C语言(同时也在学习数据结构,希望各位大佬多多指教)1.C语言的历史C语言最初作为Unix系统的开发工具而发明的。如今成为一种高级语言,可谓C生万物2.编译与链接C语言代码是放在.c为后缀的文件里,.c为后缀的文件称为源文件,.c本身就是文本文件,无法直接运行,所以要得到最终运行的可执行程序,中间要经过编译和链接两个过程。3.VS项目的创建打开VS时
- 领域驱动设计实战:用六边形架构解耦你的Spring Boot应用
lingRJ777
Java技术栈应用javabackendspringbootdddmicroservices
领域驱动设计实战:用六边形架构解耦你的SpringBoot应用引言在复杂的软件系统中,业务逻辑的持续演进和技术栈的不断更迭是两大核心挑战。以一个典型的电商系统为例,其订单处理模块不仅业务规则繁多(如价格计算、库存校验、优惠券使用、订单状态流转),还需与多种外部系统交互(如Web请求、数据库、消息队列、第三方支付接口)。在传统的N层架构中,我们常常会遇到以下核心挑战:技术债与僵化设计:业务逻辑与具体
- 【ARM AMBA AXI 入门 5.1 - QoS是什么?QoS是怎么工作的? 】
主公讲 ARM
#ARMAMBAAXI系列QoS是什么?QoS怎么工作的?AXIQoS
请阅读【嵌入式及芯片开发学必备专栏】转自:揭秘数通知识:QoS是什么?QoS是怎么工作的?(一)文章目录QoS概述综合服务和差分服务QoS工具报文分类报文标记流量监管和整形工具拥塞管理工具拥塞避免工具队列策略FIFO(先进先出队列,FirstInFirstOutQueue)PriorityQueue(优先队列PQ)Weighted-fairQueue(加权平均队列WFQ)丢弃策略我们在学习嵌入的时
- 12.Java SDK源码分析系列笔记-PriorityQueue
Thinker QAQ
JavaSDK源码分析java笔记python
文章目录1.PriorityQueue是什么2.使用3.源码分析3.1.属性3.2.有参构造3.2.1.初始化元素到数组中3.2.2.维护堆的属性3.2.2.1.下沉操作3.3.插入3.3.1.上浮操作3.4.删除3.4.1.下沉操作4.参考1.PriorityQueue是什么是一个队列,只不过加上了优先级的概念,换句话说队列里的元素是根据某种规则排好序的2.使用publicclassPriori
- 【JavaScript 事件循环实战解析】
Gazer_S
jsjavascript开发语言ecmascript
JavaScript事件循环实战解析引言JavaScript的事件循环机制是理解异步编程的关键。本文通过实际代码示例和详细解析,帮助你掌握事件循环的工作原理,准确预测代码执行顺序。事件循环基础JavaScript是单线程语言,通过事件循环处理异步操作。事件循环由以下几个关键部分组成:调用栈(CallStack):执行同步代码宏任务队列(MacrotaskQueue):存放setTimeout等AP
- 【网络】Linux 内核优化实战 - net.ipv4.tcp_syncookies
锅锅来了
Linux性能优化原理和实战网络tcp/iplinux
目录功能作用取值及含义查看与修改方法net.ipv4.tcp_syncookies是Linux系统中的一个内核参数,用于控制是否启用SYNCookies功能,该功能主要用于防范SYNFlood攻击。以下是关于它的详细介绍:功能作用SYNFlood攻击是一种常见的DDoS攻击方式,攻击者会短时间内伪造大量不同IP地址的SYN报文发送给服务端,导致服务端的半连接队列被占满,从而无法为正常用户提供服务。
- 算法题目记录
iamwiam
java
数据空间研究院-后端试题题目一:线程安全的链表描述:实现题目二:自定义注解与反射描述:实现题目三:简化的消息队列描述实现题目一:线程安全的链表描述:实现一个线程安全的链表类ThreadSafeLinkedList,支持以下操作:add(Telement)-在链表末尾添加元素。remove(Telement)-移除链表中的指定元素。contains(Telement)-检查链表中是否包含指定元素。要
- Netty架构解析:从高性能到协议支持
lifallen
Nettyjava开发语言设计模式数据结构nio
Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。主要应用场景高性能网络服务器(HTTP、WebSocket、TCP服务器)分布式系统通信(RPC框架、消息队列)协议实现(自定义协议、标准协议适配)网络代理和网关(负载均衡、API网关)核心基础(CoreFoundation)io.netty.common:提供通用的工具类、常量和基本抽象,例如Attri
- 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级的理解
一:缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。解决办法:大多数系统设计者考虑用加锁(最多的解决方案)或者队列的方式保证来保证不会有大量的线程对数据库一次性进
- redis实现消息队列
秋恬意
redis
✅一、使用List实现消息队列的原理(经典队列模型)RedisList本质是什么?Redis的List是一个双向链表(quicklist实现),支持从两端高效地插入和弹出元素。队列模型怎么实现?你可以把List当成一个先进先出的队列:生产者使用LPUSH把消息推入队列(左边)消费者使用RPOP弹出队列(右边)如果用BRPOP,消费者会阻塞等待直到有消息可读⚙️工作机制示意图:生产者(LPUSH)-
- 游戏跳伞卡顿?CPU Stall优化全解析
你一身傲骨怎能输
游戏开发技术专栏游戏开发语言
《粒子特效导致CPUStall的优化分析》摘要文章解析了"CPUStallwaitforevent"现象,指出这是CPU因等待内存/I/O/锁等事件而暂停执行的情况。在粒子特效中,主要诱因包括:多线程同步等待、内存带宽争用、资源竞争和任务分配不均。针对性地提出了五大优化方案:减少线程同步(采用无锁队列)、优化内存访问(避免伪共享)、均衡任务分配、异步处理计算与渲染,以及使用性能分析工具定位瓶颈。通
- 【备战秋招】详解synchronized
来个offer8
备战秋招java开发语言synchronized秋招后端
底层原理synchronized是jvm层面的内置锁,又被成为监视器锁。使用synchronized之后,会在编译之后在同步的代码块前后加上monitorenter和monitorexit字节码指令,依赖操作系统底层互斥锁实现。执行monitorenter指令时会尝试获取对象锁,如果对象没有被锁定或者已经获得了锁,锁的计数器+1。此时其他竞争锁的线程则会进入等待队列中。执行monitorexit指
- ARM SMMUv3故障和错误(五)
业余程序员plus
ARMv8-A架构SMMUFaultsErrorsSMMU_GERRORCMDQ_ERRFaultmodelsStallmodel
1.概述SMMU有三种方式将故障和错误(FaultsandErrors)报告给软件,具体如下:提交给SMMU命令在某些情况下不正确时,命令队列有机制报告这些错误。事件队列中记录了一些错误和故障。包括了来自设备流量(traffic)引起的错误和故障,比如配置错误或者设备地址引起的缺页异常。一种基于全局寄存器的SMMU_GERROR机制用于上报以下情况引发的事件:当无法将记录写入事件队列或PRI队列时
- 开源的APP+小程序商城源码推荐,可支持二次开发。
yuhuidog
开源APP商城源码小程序商城源码来客电商saas新功能
今天我给大家介绍一款基于PHP开发的电商平台框架,可快速二次开发!用户体验还可以~全网比较shao见的Saas移动电商平台源码。系统特点:1、VueCLI框架,完全实现前后端分离,完善的API文档2、标准接口3、支持队列4、长链接5、无缝事件机制6、支持分布式部署7、基于SAAS源码服务8、N多插件扩展:拼团+分销+多店+会员电商+线下核销+拍卖+砍价等9、支持支付宝小程序+微信小程序+andro
- CALayer的异步处理
在iOS开发中,实现**CALayer**的异步处理是优化性能的关键技术,尤其对于复杂绘制或需要高性能渲染的场景。以下是完整实现方案:一、异步绘制核心架构设置异步绘制标志触发display创建异步任务执行绘制生成CGImage设置contents主线程CALayer实现displayLayer:方法全局队列CoreGraphics绘制主线程回调二、完整实现代码1.自定义异步图层//AsyncLay
- 深入解析Spring Boot与Kafka集成:构建高效消息驱动应用
深入解析SpringBoot与Kafka集成:构建高效消息驱动应用引言在现代分布式系统中,消息队列技术扮演着至关重要的角色。ApacheKafka作为一款高性能、分布式的消息队列系统,被广泛应用于实时数据处理、日志收集、事件驱动架构等场景。本文将深入探讨如何在SpringBoot应用中集成Kafka,构建高效的消息驱动应用。1.Kafka简介ApacheKafka是一个分布式流处理平台,具有高吞吐
- jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
- 【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
- HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
- Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
- servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
- FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
- linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
- 我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
- mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
- sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
- 深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
- JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
- 【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
- 【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
- nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
- java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
- BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
- [金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
- vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
- 清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
- 不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
- [入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
- Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
- zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
- 纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
- fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
- 基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
- js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
- java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
- erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s