自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 微服务 优点及挑战

微服务架构将应用拆分为小型独立服务,具有技术灵活、独立部署和故障隔离等优势,支持敏捷开发和弹性扩展,但需面对分布式系统复杂性、数据一致性等挑战。文章系统分析了微服务特点、优势与实施难点,建议根据项目规模权衡利弊,大型高并发系统推荐采用,小型项目需谨慎。未来趋势将结合Serverless和Service Mesh技术,实施时可采取渐进式迁移策略。

2025-09-09 21:48:10 447

原创 SpringCloud 核心组件详解

本文解析了Spring Cloud核心组件在微服务架构中的关键作用。服务注册发现方面,Eureka采用心跳机制,Nacos支持实时推送;服务通信中,Ribbon提供多种负载均衡策略,Feign实现声明式调用;熔断器Hystrix和Sentinel分别采用线程池隔离和令牌桶算法实现系统保护。重点对比了Zuul与Gateway的性能差异,指出Gateway的异步非阻塞架构优势。此外,还介绍了配置中心、链路追踪、安全认证等辅助组件的最佳实践,并给出新项目组件选型建议:Nacos作为注册中心、Gateway作为AP

2025-09-08 23:29:16 684

原创 Java 并发Lock 锁

摘要: Java的Lock锁(如ReentrantLock、ReadWriteLock)提供比synchronized更灵活的线程同步机制,支持可重入性、公平性、读写分离及条件变量等特性。其核心基于AQS框架实现,需显式调用lock()和unlock(),必须通过try-finally确保锁释放。读写锁适用于读多写少场景,而tryLock()可避免死锁并优化性能。与synchronized相比,Lock锁在复杂同步需求(如可中断、超时控制)中更具优势,但需注意规范使用以避免嵌套死锁。典型应用包括线程安全资源

2025-09-08 23:20:53 236

原创 软件架构中的构件

本文系统阐述了软件构件的定义、复用方式、应用场景及支撑技术。构件是具有独立功能、接口契约化和环境依赖性的可部署单元,包括代码模块、设计模板等多种形式。复用分为水平(跨领域)和垂直(领域专用)两种,涉及检索、评估、适配和集成等流程。构件技术广泛应用于模块化架构、分布式系统及业务场景如产品线开发。CORBA、EJB等标准规范以及领域工程方法为构件化开发提供技术支撑,青鸟模型则定义了构件的层次化抽象体系。

2025-09-08 23:04:50 872

原创 Spring Cloud 核心组件解析

Spring Cloud 是一套基于 Spring Boot 的分布式系统开发工具集,提供微服务架构所需的配置管理、服务发现、断路器、路由等解决方案。通过模块化组件简化分布式系统的开发,支持快速构建高可用的云原生应用。Spring Cloud 是构建微服务架构的“瑞士军刀”,尤其适合以下场景:复杂业务系统:需要拆分为多个独立服务,并实现高效协作。云原生转型:与容器化技术结合,实现自动化运维。高可用要求:通过熔断、限流等机制保障系统稳定性。

2025-09-04 22:09:44 306

原创 特定领域软件架构DSSA

DSSA是为特定领域提供标准化软件架构的框架,包含领域模型、参考架构和可复用组件库。其建立过程分为领域分析、设计和实现三个阶段,由领域专家、分析者、设计者等角色协作完成。DSSA分为垂直域(单一领域)和水平域(跨领域),具有严格定义的问题域与解域,强调领域共性和复用。通过提取领域知识,DSSA能提高开发效率和质量,但需权衡领域成熟度与适用范围。典型案例包括电信软件和图形编辑器等领域应用。

2025-09-04 21:57:45 589

原创 软件架构风格-MDA(模型驱动架构)

本报告旨在对模型驱动架构(MDA)进行全面而深入的研究。报告首先阐述了MDA的基本概念、核心原则与理论框架,明确其在现代软件工程中的定位。随后,报告将重点剖析元模型(Meta-model)作为MDA基石的核心作用,并详细介绍了对象管理组织(OMG)的元对象设施(MOF)标准。在此基础上,报告深入探讨了统一建模语言(UML)和领域特定语言(DSL)在MDA实践中的角色、协同工作流及其在模型定义、转换与代码生成中的具体应用。

2025-09-04 20:37:26 696

原创 软件架构风格

本文系统介绍了五大类软件架构风格及其应用场景:1)数据流风格(批处理/管道-过滤器)适用于顺序处理场景;2)调用/返回风格(主程序/面向对象/分层)适合模块化系统;3)独立构件风格(事件/进程通信)实现松耦合;4)虚拟机风格(解释器/规则系统)提供灵活执行环境;5)以数据为中心风格(仓库/黑板)适合数据共享系统。实际应用中常混合多种风格,需综合考虑系统需求、业务特点和技术条件进行选择。

2025-09-02 23:12:50 1005

原创 HAProxy的Websocket负载平衡

为什么是 Websocket?HTTP 协议是无连接的,只有客户端可以从服务器请求信息。在任何情况下,服务器都可以联系客户端。HTTP 是纯半双工的。此外,服务器只能响应客户端请求一次。某些网站或 Web 应用程序需要服务器不时更新客户端。有几种方法可以做到这一点:客户端定期请求服务器检查是否有新信息可用客户端向服务器发送请求,服务器在有信息提供给客户端时立即响应(也称为长时间轮询)但是由于 HTTP 的限制,这些方法有很多缺点。因此设计了一个新协议:websockets,它允许通过单个 T

2021-12-28 14:24:04 1996

原创 haproxy配置详解

一、HAProxy简介1.HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。2.HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。3.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器

2021-12-28 11:55:09 7086

原创 Racher Haproxy WebSocket的配置方法

WebSocket请求和一般的Http请求不一样,它会长时间保持一个connection,Haproxy反向代理WebSocket请求需要用到timeout tunnel参数,否则这个链接可能就会提前关闭。例如:defaults timeout tunnel 1h timeout client-fin 30s参考资料:Websockets load-balancing with HAProxy Haproxy Doc - timeout tunnel InfoQ - Web

2021-12-28 11:35:57 982

原创 Java 操作 Redis 的 API

java对redis操作API

2021-12-17 16:40:45 323

原创 Java8 将list转为map

本文介绍了Java Stream中使用Collectors.toMap()的几种常见用法:1)将List转为ID-Name的Map;2)使用Function.identity()转为ID-实体的Map;3)处理重复key的冲突解决方案;4)指定具体Map实现类(如LinkedHashMap)进行收集。重点讲解了如何通过合并函数解决键冲突,以及如何选择不同的Map实现类来满足特定需求,使代码更简洁优雅。

2018-10-09 10:19:51 179

原创 Redis和Memcached的区别

Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效...

2018-04-23 14:34:16 205

原创 去除重复数据 使用联合唯一索引 关键字INGORE

摘要:联合唯一索引通过确保多列组合值唯一来避免重复数据。结合IGNORE可自动跳过重复项,REPLACE会替换冲突数据,而ON DUPLICATE KEY UPDATE则更新指定列。使用时需合理选择字段组合,大量数据去重建议先使用临时表处理。注意IGNORE会忽略所有错误,不限于唯一键冲突。

2018-04-23 13:37:32 1969

原创 Cannot change version of project facet Dynamic web

摘要 解决Cannot change version of project facet Dynamic web module to 3.0maven facet Dynamic web 目录[-]问题描述解决这个问题的步骤如下:1.把Servlet改成3.0,打开项目的web.xml2.修改项目的设置,在Navigator下打开项目.setting...

2015-11-03 15:09:12 135

原创 JS正则表达式

/判断输入内容是否为空    function IsNull(){        var str = document.getElementById('str').value.trim();        if(str.length==0){            alert('对不起,文本框不能为空或者为空格!');//请将“文本框”改成你需要验证的属性名称!        }    }  ...

2015-01-30 14:27:16 130

原创 Java日期处理工具类

本文介绍了一个基于Java8日期时间API的日期处理工具类,主要功能包括:日期加减(支持天/月/年)、日期比较、日期格式化、字符串转日期、日期类型转换(LocalDate/LocalDateTime与Date互转)以及计算日期差。该工具类使用java.time包实现,线程安全且易于调用,提供了默认和自定义格式两种处理方式,适用于常见的日期操作场景。代码示例展示了如何使用该工具类进行日期加减、比较、格式化和类型转换等操作。

2014-12-22 16:23:44 675

原创 正则表达式

本文介绍了Java和JavaScript中正则表达式的使用方法。Java通过java.util.regex包的Pattern和Matcher类实现正则匹配、提取和替换,示例包括邮箱验证、数字提取等。JavaScript使用RegExp对象或字面量,提供test()、match()、replace()等方法实现类似功能。文章还提供了常用正则表达式速查表,涵盖邮箱、手机号、URL、密码强度等场景的验证模式,以及日期、HTML标签、中文等通用匹配规则。两种语言的正则表达式语法基本一致,但实现方式略有不同。

2014-07-17 13:52:44 135

原创 mysql查询今天,昨天,近7天,近30天,本月,上一月数据方法

MySQL时间段数据查询方法包括:当天(CURDATE())、昨天(DATE_SUB)、近7/30天(BETWEEN)、本月/上月(YEAR/MONTH函数)等查询方式。优化建议在日期列创建索引,使用EXPLAIN分析查询,或用BETWEEN、UNIX_TIMESTAMP替代多条件判断提高效率。

2014-05-05 10:38:58 154

原创 mysql 查询今天,昨天,一周,一月,上月,上周,上年,今年,本季度,上季度的数据...

本文介绍了MySQL中查询不同时间范围数据的SQL语句,包括今天、昨天、本周、上周、本月、上月、今年、去年、本季度和上季度的数据查询方法。通过使用CURDATE()、DATE_SUB()、YEARWEEK()、YEAR()、MONTH()和QUARTER()等函数,结合INTERVAL关键字,可以灵活地获取指定时间范围内的数据。注意事项包括:替换实际表名和字段名、为大数据表建立日期索引,以及根据字段类型决定是否使用DATE()函数。这些查询方法适用于需要按时间范围筛选数据的场景。

2014-04-17 10:55:34 164

原创 .net 加密算法

public static string Encrypt(string source)        {            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();            byte[] bytes = Encoding.UTF8.GetBytes(source);            byte...

2014-04-15 13:38:43 181

原创 jquery获得select option的值 和对select option的操作

jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text(); 

2014-04-11 10:46:20 142

原创 JS正则表达式

在 JavaScript 中,可以通过正则表达式对象的。

2014-03-12 16:59:38 406

原创 linux下 yum 安装mysql和卸载

Mysql/postgreSQL 1、查看有没有安装过:          yum list installed mysql*          rpm -qa | grep mysql*2.查看有没有安装包:          yum list mysql* 3.安装mysql客户端:          yum install mysql ...

2014-01-17 04:58:42 160

原创 Spring Security的核心拦截器

1. HttpSessionContextIntegrationFilter位于过滤器顶端,第一个起作用的过滤器。用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就创...

2013-12-19 09:52:42 177

原创 Spring的定时调度--Quartz配置运行

本文介绍了Spring框架中Quartz的配置与运行方法。主要内容包括:1)通过Maven添加依赖;2)配置SchedulerFactoryBean;3)定义Job和Trigger的实现方式;4)持久化和集群配置要点;5)任务执行问题排查方法;6)高级特性如监听器和动态修改任务。文章提供了具体代码示例,说明了Spring Boot对Quartz的简化配置,并强调在集群环境下需注意时间同步和数据库配置。

2013-12-06 18:08:39 173

原创 spring 配置文件applicationContext.xml文件中的<context:annotation-config/>作用

在基于主机方式配置Spring的配置文件中,你可能会见到&lt;context:annotation-config/&gt;这样一条配置,他的作用是式地向 Spring 容器注册AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、PersistenceAnnotationBeanPostProce...

2013-04-27 16:44:41 285

原创 xp注册表优化

特效优化:Windows Registry Editor Version 5.00#禁止桌面属性-外观-效果-阴影项,平滑字体边缘,动画显示窗口#最佳性能模式[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]"VisualFXSetting"=dword:00000002[HKEY...

2013-01-21 09:38:24 330

原创 java.io.Serializable序列化

java.io.Serializable引发的问题——什么是序列化?在什么情况下将类序列化?  序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,impleme...

2013-01-07 13:14:45 103

原创 java 压缩、解压文件

/** * compress file * * @param in * @param out * @param compressionAlgorithm * @param calucateCompressedMd5 * @param listener * @return * @throws TemplateServiceExceptio...

2013-01-07 13:12:37 150

原创 ControlSet001、ControlSet002以及CurrentControlSet的区别

ControlSet001、ControlSet002以及CurrentControlSet的区别 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TermService]  下记录着“系统服务”

2012-11-07 11:05:58 403

原创 Postgresql 数据库维护常见问题

一.Postgresql 的小常识1)Postgresql 数据库在WINDOWS环境下是以一个进程一个连接的方式来处理连接的。2)Postgresql 数据库判断相应的数据库程序是否启动是通过数据库的数据目录中是否存在postgresql.pid文件作为条件,如果存在则认为该数据库程序已经启动,当然也因为这样个设计导致不少问题(可能在LINUX下面没有啥问题)。3)每次创建一...

2011-11-12 15:06:54 221

原创 JSP获取服务器信息

&lt;BR&gt;获取HTTP头文件中Host的值:   &lt;% String header3=request.getHeader("Host");      out.println(header3);   %&gt;&lt;BR&gt;获取HTTP头文件中accept-encoding的值:   &lt;% String header4=reques...

2011-11-09 17:32:08 259

原创 EJB面试题

面试常考的EJB知识 EJB 与 JAVA BEAN 的区别? 答: Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializabl...

2011-10-31 20:46:52 150

原创 hibernate第三次教程

hibernate第三节 1.为什么有关系映射? 1、是OO里面的关联概念和R里面的关联概念不匹配,才出现的关联。 2、操作一个对象时,相关联的对象也一起进行操作。 2.单向关联 1、当执行save(order)方法时会触发hibernate事件,找到CarOrder.hbm.xml映射文件 2、找到&lt;many-to-one name="salesman" class="org.lyyf.p...

2010-08-25 15:40:40 141

Hibernate第二次教程

一.hibernate常用接口1.configuration(org.hibernate.cfg.Configuration)配置hibernate,启动hibernate,创建SessionFactory对象2.SessionFactory(org.hibernate.SessionFactory) 初始化hibernate,创建session对象,通常使用单例模...

2010-08-24 18:11:44 106

原创 Hibernate资料

[color=green]1. hibernate是什么,为什么使用hibernate,java反射机制,如何使用hibernate[/color]持久化   持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。 持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。    持久...

2010-08-24 18:08:56 125

原创 Hibernate第一次教程

[align=center[color=darkred]][size=x-large]第一个Hibernate项目[/size][/color][/align][size=large][color=brown]1.启动MySQL服务[/color][/size] D:\DataBase\mysql-program\bin\mysqld-nt.exe[size=large][color=...

2010-08-24 18:05:56 153

tomcat安装脚本

tomcat安装脚本,install_tomcat.sh和uninstall_tomcat.sh一步安装文件,指的拥有

2013-12-02

MyBatis Generators生成代码器

生成代码的方式还包括ant或Maven脚本

2015-11-05

eclipse反编译工具JAD

JadClipse是Jad的Eclipse插件,它们都是非常好的反编译插件。

2013-11-05

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

TA关注的人

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