- 博客(230)
- 资源 (40)
- 收藏
- 关注
原创 系统复杂设计实现
系统复杂设计实现1 什么是系统和系统架构1.1 系统1.2 系统架构2 如何进行系统思维2.1 确定系统的形式和功能2.2 确定系统中各个实体以及他们的形式和功能2.2.1 初步分类:不同种类的系统确定实体难易度不同2.2.2 整体论:从功能出发思考系统内外涉及的重要实体2.2.3 聚焦:针对问题,状况,难题,系统利益相关者,涌现物分析重要实...
2020-04-14 13:56:14
948
转载 UML的9种图例解析
转自:http://blog.youkuaiyun.com/fatherican/article/details/44966891UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现类与类图1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。2) 在系统中,每个类具有一定的职责,职责指的是类所
2017-11-23 16:20:54
5825
2
转载 日志搜集系统从ELK到EFK
为什么做日志系统首先,什么是日志? 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据。通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,
2017-10-25 18:51:10
37285
2
原创 java 线程池
一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,Rejecte
2017-10-17 19:21:15
680
原创 大数据之数据采集
本篇主要介绍目前网站数据采集的主流方式,之后篇章会介绍客户端数据采集目前主流的实现方式。目前有很多数据采集云平台,如Google anylytics,百度统计,腾讯统计等等,还有一些平台也非常不错: 一.友盟+,支持移动端和web端数据采集,个性化场景数据定制采集方案。官网给的一些demo可以参考来设计大数据的分析展现,例如:友盟的:https://web.umeng.
2017-10-16 20:38:45
28721
原创 RSA前端加密后端解密
通过强大的开源工具类,我们可以实现前端公钥加密,后端私钥解密,非对称加密方式相对比较安全。通过强大的开源工具类,我们可以实现前端公钥加密,后端私钥解密,非对称加密方式相对比较安全。1. 准备工作下载jar包 https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16 加密解密工具类,引用到该包网上下载三个js文件 2.开始具体工作前端页面加密,rsaPublicKey是后端写的一个action
2016-12-16 16:01:47
9598
2
转载 Web-listener与filter
1、Listener的定义与作用 监听器Listener就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。 Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作等。2、Listener的分类与使用 主要有以下三类: 1、ServletContext监听 Serv
2016-09-22 10:24:27
1004
转载 Socket套接字
源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。非常非常简单的举例说明下:Socket=Ip address+ TCP/UDP + port。应用层通过传输层进行数据通信时
2016-09-19 11:10:54
1088
原创 Disruptor介绍
Disruptor1. Disruptor是什么1.1 技术背景 LMAX是在英国注册并受到FCA监管(监管号码为509778)的外汇黄金交易所, LMAX架构是LMAX内部研发并应用到交易系统的一种技术。它之所以引起人们的关注,是因为它是一个非常高性能系统,这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,官方号称它能够在一个线程里每秒处理6百万订单. 一个仅
2016-09-19 09:31:42
3406
转载 java中各种Queue
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起
2016-09-13 08:18:25
7888
转载 Drools一个很好的例子
转自http://www.360doc.com/content/15/0701/15/5054188_481943680.shtml一、问题描述 假设雇员 Employ 有: 学历信息 eduInfo , 简历信息 resume , 考核信息 annualExam 和奖惩信息 awardPunish ;要确定
2016-09-08 16:39:03
11207
1
转载 OSGI基本原理
定义OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统。这个框架实现了一个优雅、完整和动态地组价模型。应用程序(称为bundle)无序重新引导可以被远程安装、启动、升级和卸载。OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些
2016-09-08 08:38:51
5974
转载 java的(PO,VO,TO,BO,DAO,POJO)解释
PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。 VO(value object) 值对象
2016-09-07 10:53:39
504
转载 Java单例模式之双重检锁-优
单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些
2016-09-07 10:45:35
1160
转载 javaBean对象与Map对象互转
import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;imp
2016-09-07 08:38:57
1083
转载 spring之ModelAttribute
1.@ModelAttribute注释void返回值的方法[java] view plain copy print?@Controller public class HelloModelController { @ModelAttribute public void popula
2016-09-07 08:35:28
463
转载 Java 之EnumSet与EnumMap
Java 之EnumSet与EnumMapEnumSet是Java枚举类型的泛型容器,Java既然有了SortedSet、TreeSet、HashSet等容器,为何还要多一个EnumSet呢?答案肯定是EnumSet有一定的特性,举个例子,EnumSet的速度很快。其他特性就不一一列举了,毕竟本文的内容不是介绍EnumSet的特性。 首先以事实说话,存在这样一个EnumSet,它有50个
2016-09-05 10:54:46
2526
转载 apt-get,apt-update
转自http://blog.youkuaiyun.com/span76/article/details/41313591用 apt-get 也很久了,没多想它的实现,最近遇到 gstreamer 装不上的问题,才多看看了它apt-get 就是从网上下载包,并安装到本地手工下载 dpkg 包,而后 ”dpkg -i 包名“ 也可以但找包,检查dependency 太辛
2016-09-02 16:12:37
1082
原创 使用ScureCRT连接本地虚拟机中的Ubuntu系统
如果是公司网络,需要代理上网,先设置代理:两种设置linux apt-get http代理的方法1:修改/etc/apt/apt.conf配置文件,添加行:Acquire::http::Proxy “http://用户名:密码@Ip:port”;2:通过echo命令设置变量http_proxy的值为: “http://用户名:密码@Ip:port” 详细步骤配置CRT连接虚
2016-09-02 15:45:46
906
转载 Java 内部类与静态类
内部类1:内部类拥有普通类的所有特性,也拥有类成员变量的特性2:内部类可以访问其外部类的成员变量,属性,方法,其它内部类静态类1:只有内部类才能声明为static,也可以说是静态内部类2:只有静态内部类才能拥有静态成员,普通内部类只能定义普通成员3:静态类跟静态方法一样,只能访问其外部类的静态成员4:如果在外部类的静态方法中访问内部类,这时候
2016-09-02 14:41:57
571
转载 请求转发与重定向
在servlet中可能会牵扯到传值或者跳转的问题,可以能是servlet之间互相跳转,也可能是两个web应用程序之间互相跳转。这就出现了请求转发和重定向。请求转发的特点:1.请求转发需要RequsetDispatcher,最后通过forward方法传递request和response2.request数据从第一个servlet 到第二个servlet不会丢失,因为是同一
2016-09-01 16:14:04
1434
转载 spring mvc 使用jsr-303 @Valid实现bean的字段验证
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,官方参考实现是Hibernate Validator。 此实现与Hibernate ORM 没有任何关系。JSR 303 用于对Java Bean 中的字段的值进行验证。 Spring MVC 3.x之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。 JSR 303
2016-09-01 15:20:55
1181
转载 规则引擎二:Drools规则引擎
Drools是一个开源的规则引擎,经过多年的发展,也提供如下商业BRMS具备的功能组件:基于Eclipse的集成开发环境, 独立集中的规则存储库 基于WEB的规则维护环境 提供decision table 和 ruleflow等规则制品为规则的运行书写提供更多的灵活性本文将使用Drools来实现典型的风险评分,并将相关功能与IBM ODM/JRules做一个简单比较。客户风险评分具体需
2016-09-01 10:02:37
4255
转载 规则引擎一:IBM规则引擎 ODM入门
转自http://www.cnblogs.com/soul-tap/p/4956052.htmlIBM规则引擎(ODM)入门系列一(1):如何编写规则项目最近,因项目需要,研究使用IBM的规则引擎,但是网上相关资料甚少,只能查看IBM官网的相关文档,但大多是英文,所以学习过程相当痛苦,好在有IBM的技术支持人员帮助,在此,决定将自己对ODM的学习过程做成一个入门系列,巩固一
2016-09-01 09:57:46
8806
2
转载 初识Flume
一、flume简介Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种storage。Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。上图的Flume的Architecture,在Flume中,最重要的抽象是data flow(数据流),data
2016-09-01 08:50:47
505
转载 Coroutine in Java - Quasar Fiber实现-优
转自 https://segmentfault.com/a/1190000006079389?from=groupmessage&isappinstalled=0说到协程(Coroutine),很多人会想到go,lua,erlang等语言,其实JVM上也有蛮多的实现,如PicoThread,Kilim,Quasar等,本文主要介绍其中一种Coroutine实现 -- Quasar Fibe
2016-08-31 15:27:49
5845
转载 Fibers and coroutines概念
iber(直译:纤维,这里light-weight-thread比较合适…) Coroutines(协同程序)1. Whatare fibers and why should you care?非常好的一篇文章,介绍fiberhttp://zeroturnaround.com/rebellabs/what-are-fibers-and-why-you-s
2016-08-31 15:15:54
1009
转载 理解并设计rest/restful风格接口
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概
2016-08-31 09:26:00
61259
6
转载 Redis 与 Lua 脚本
Lua 简介Lua 以可嵌入,轻量,高效,提升静态语言的灵活性,有了 Lua,方便对程序进行改动或拓展,减少编译的次数,在游戏开发中特别常见。举一个在 C 语言中调用 Lua 脚本的例子://这是 Lua 所需的三个头文件//当然,你需要链接到正确的 libextern "C"{ #include "lua.h" #include "lauxlib.h"
2016-08-29 16:23:28
4841
转载 利用redis缓存热门数据,分页的一种思路
普通分页一般分页做缓存都是直接查找出来,按页放到缓存里,但是这种缓存方式有很多缺点。如缓存不能及时更新,一旦数据有变化,所有的之前的分页缓存都失效了。比如像微博这样的场景,微博下面现在有一个顶次数的排序。这个用传统的分页方式很难应对。一种思路最近想到了另一种思路。数据以ID为key缓存到Redis里;把数据ID和排序打分存到Redis的skip
2016-08-29 16:14:26
2775
转载 利用redis + lua解决抢红包高并发的问题
转自 http://blog.youkuaiyun.com/hengyunabc/article/details/19433779/抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果
2016-08-29 16:06:41
1211
1
转载 分片(Sharding)的全局ID生成
转自http://blog.youkuaiyun.com/hengyunabc/article/details/19025973前言数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求:不能有单点故障。以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。可以控制Shar
2016-08-29 15:59:31
1265
原创 Spring+MyBatis多数据源配置实现(AbstractRoutingDataSource)
在spring 中,一个很好用但是容易被忽略的,就是AbstractRoutingDataSource,它的一个作用就是可以根据用户发起的不同请求去转换不同的数据源,比如根据用户的不同地区语言选择不同的数据库,下面举例说明: 单数据源时的Spring配置文件xml version="1.0" encoding="UTF-8"?>beans xmlns="http://w
2016-08-26 14:50:18
3025
转载 线程池之Future
线程池任务执行结果这一节来探讨下线程池中任务执行的结果以及如何阻塞线程、取消任务等等。1 package info.imxylz.study.concurrency.future;2 3 public class SleepForResultDemo implements Runnable {4 5 static boolean result = f
2016-08-26 10:17:04
2299
转载 双端队列Deque
Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(LinkedList是从jdk1.2 开始就存在数据结构)。 Deque在Queue的基础上增加了更多的操作方法。
2016-08-25 15:40:33
696
原创 AbstractQueuedSynchronizer/AQS 使用拓展分析-优
java.util.concurrent.locks.AbstractQueuedSynchronizer是J.U.C里最核心,也是最复杂的一个基础的类,简称AQS。AbstractQueuedSynchronizer是CountDownLatch/FutureTask/ReentrantLock/RenntrantReadWriteLock/Semaphore的基础,因此AbstractQueu
2016-08-25 15:27:10
1348
转载 组合模式
组合模式定义:组合模式允许你将对象组合成树形结构来表现“整体/局部”层次结构,组合能让客户以一致的方式处理个别对象以及对象组合。当涉及到如:菜单,子菜单之类的问题时,会自然而然的想到使用树形结构类之间的关系确如上图所示,但是这种设计复用性和扩展性都很低:1,所有的菜单都有各自的add、remove以及getChild实现,复用性很低2,类型转换问题,菜单
2016-08-25 10:40:45
417
转载 java信号量Semaphore介绍
Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 Semaph
2016-08-25 10:02:45
319
转载 JAVA线程间通信-优
线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。 例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。本文将讲解以下几个JAVA线程间通信的主题:1、通过共享对象通信2、忙等待3、wait(),notify()和notifyAll()4、丢失的信号5、假唤醒6、多线程等待相同信号7、不要对常量字符串或
2016-08-25 09:24:38
333
转载 Java并发包中的同步队列SynchronousQueue在不用JDK版本中实现方式
介绍Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take,反过来也一样。不像ArrayBlockingQueue或LinkedListBlockingQueue,SynchronousQueue内部并没有数据缓存空间,你不能调用peek()方法来看队列中是否有数据元素,因为
2016-08-25 08:50:17
830
生产者和消费者问题以及哲学家就餐问题,JAVA实现的程序.rar
2008-05-27
spring学习资料大全
2008-05-16
HibernateInAction.pdf
2008-05-16
毕业设计论文及相关 本科毕业论文(设计)指导手册
2008-05-04
本科毕业论文(设计)指导手册
2008-05-04
mybatis配置数据库自动生成代码
2015-03-24
openxml4j-bin-beta.jar openxml4j-bin-beta.jar openxml4j-bin-beta.jar
2010-07-02
Extjs api Extjs api 点击手册,使用方便
2009-11-19
Extjs和后台数据库交互的程序,增删改查
2009-11-18
想对比xfire,cxf和axis2,并看看他们各自的主要内容么,请下载
2009-04-16
jad.提供2中工具,一种介绍封装在eclipse里的反编译class用的,一种是直接exe,把class房里面就可反编译
2009-04-16
JQuery基础实例教程,基础教学,本人亲自体验,特实用!实用。高手就别下了!!
2009-02-05
7zip安装软件,可把文件在windows系统下打包成tar,7z,zip格式
2009-02-04
火车时刻查询,价格查询,非常全,exe软件,操作简单方便,极品时刻表
2009-02-04
excel二级连动,gif保证能学会
2009-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人