自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 drools规则引擎了解

什么是规则引擎        规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。优点:l声明式编程l逻辑和数据分离l速度和可扩展性知识集中化缺点:l复杂性提高l需要学习新的规则脚本语法l引入新组件的风险 规则...

2018-07-22 16:29:33 8208 1

转载 JNI内存管理

一、Java内存  Java程序所涉及的内存可以从逻辑上划分为两部分:Heap Memory和Native Memory。1)Heap Memory: 供Java应用程序使用的,所有java对象的内存都是从这里分配的,它不是物理上连续的,但是逻辑上是连续的。可通过java命令行参数“-Xms, -Xmx”大设置Heap初始值和最大值。java -Xmx1024m -Xms1024m//-Xmx1...

2018-04-13 09:13:25 3577

转载 Java内存溢出(OOM)异常完全指南

这也许是目前最为完整的Java OOM异常的解决指南。1、java.lang.OutOfMemoryError:Java heap spaceJava应用程序在启动时会指定所需要的内存大小,它被分割成两个不同的区域:Heap space(堆空间)和Permgen(永久代):JVM内存模型示意图这两个区域的大小可以在JVM(Java虚拟机)启动时通过参数-Xmx和-X

2017-10-16 11:36:37 630

转载 Swagger简介

前言Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。本文简单介绍了在项目中集成swagger的方法和一些常见问题。如果想深入分析项目源码,了解更多内容,见参考资料。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧

2017-08-23 21:01:22 315

转载 PostgreSQL+PostGIS的使用

一、 PostgreSQL与PostGIS的关系PostgreSQL 是世界上技术最先进的开源数据库,其前身是1977年一个源于Berkeley名为Ingres的非关系型数据库,其项目领导人为Michael Stonebraker教授。1982年该教授商业化了Ingres;1985年,Michael Stonebraker教授回到Berkeley,开始对新的数据库设计进行研究,并于次年在美

2017-08-08 21:15:20 20781

转载 如何用十条命令在一分钟内检查Linux服务器性能

“如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。概述通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。uptimedmesg | tailvmstat 1

2017-07-21 13:06:14 234

转载 Redis上踩过的一些坑-美团

上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团网在redis上踩得一些坑,讲的都是干货和坑。    分为5个部分:   一、周期性出现connect timeout   二、redis bgrewriteaof问题   三、redis内存占用飙升   四、redis内存使用优化    五、redi

2017-07-20 20:40:24 1868

原创 Postgresql设置search_path

会话级别设置: SET search_path TO “$user”, public, jrfw;数据库级设置(跨会话): ALTER database sggis SET search_path TO “$USER”, public, jrfw;查询语句表不指定schema,pg中通过search_path来控制。

2017-07-19 13:06:40 2245

转载 PostgreSQL错误解决:ERROR: current transaction is aborted, commands ignored until end of transaction bloc

在平时的数据库操作编程中我们会时不时会遇到ERROR: current transaction is aborted, commands ignored until end of transaction blockp这样的错误。该怎么解决呢?一般我们都是直接上网查找。如果英文好一点的人的话的从错误信息就能知道大概是那个地方出错了。不过如果经验不是很丰富的话,还是上网查找比较方便。最基本错误信息

2017-07-07 15:58:37 7043

转载 Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图

Maven 组件界面介绍如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有:第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项目。一般单我们在 pom.xml 添加了依赖包或是插件的时候,发现标注 4 的依赖区中没有看到最新写的依赖的话,可以尝试点击此按钮进行项目的重新载入。第

2017-06-27 20:22:12 10580 1

转载 系统存储(19)——图片服务器:需求和技术选型

1、概述图片服务系统是各种针对C端系统常见的子系统,它的特点是存储规模大请求频度高,且单张图片的读请求远远高于写请求。后续几篇文章我们将从图片服务系统的需求分析开始,一起来讨论如何进行这类系统的技术选型、概要设计和详细设计,以及在这个过程中需要关注的技术难点。虽然由于写作计划的变化,图片服务系统中所涉及的分布式文件系统原理、非关系型数据库原理都还没有讲到,但这些知识点也并不是组成整

2017-05-06 11:09:43 4164 1

转载 Java CAS 和ABA问题

独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS 操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V

2017-04-28 23:08:19 256

转载 分布式锁1 Java常用技术方案

正文:      第一步,自身的业务场景:      在我日常做的项目中,目前涉及了以下这些业务场景:      场景一: 比如分配任务场景。在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而且任务的分配规则设计成了通过审核人员每次主动的请求拉取,然后服务端从任务池中随机的选取任务进行分配。这个场景看到这里你会觉得比较单一,但是实际的

2017-04-28 22:32:38 279

转载 Zookeeper 实现 master 选举

使用场景        有一个向外提供的服务,服务必须7*24小时提供服务,不能有单点故障。所以采用集群的方式,采用master、slave的结构。一台主机多台备机。主机向外提供服务,备机负责监听主机的状态,一旦主机宕机,备机要迅速接代主机继续向外提供服务。从备机选择一台作为主机,就是master选举。原理解析         右边三台主机会尝试创建master

2017-04-26 22:36:37 408

转载 Maven依赖Scope标签用法

在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided。如下:                    javax.servlet.jsp            jsp-api            2.1            provided                    scope的其他参

2017-04-20 23:09:48 256

转载 MongoDB 存储引擎:WiredTiger和In-Memory

存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有:WiredTiger,MMAPv1和In-Memory。从MongoDB 3.2 版本开始,WiredTiger成为Mong

2017-04-08 18:18:31 393

原创 责任链模式和状态模式的区别

责任链模式:当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHander对象负责处理它。接收者和发送者都没有对方的明确信息,且链中的对象自己并不知道链的结构,在运行时自动确定。结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用或指针,而不需要保持它所有的候选接受者。这也就大大降低了耦合度了。也就是说,我们可以随时地增加或修改处理一个请求的结构。增强了给对象指派职责的灵

2017-03-18 23:36:07 2143

转载 Netty系列之Netty百万级推送服务设计要点

1. 背景1.1. 话题来源最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类:Netty是否可以做推送服务器?如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端?使用Netty开发推送服务遇到的各种技术问题。由于咨询者众多,

2017-03-18 23:24:49 541

原创 解决 java 使用ssl过程中出现"PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcep

今天公司邮箱服务器,更改必须TLS安全认证,原来java mail 邮件发送出现异常:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcep该异常是客户端对服务器的证书认证的时候出错了,解决方案把服务器证书加到信任证书库里面把该证书导入java中的cacerts证书库里

2017-03-17 15:26:41 51335 8

转载 JVM源码分析之javaagent原理完全解读

概述本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲到JVMTIAgent(C实现的),因为javaagent的运行还是依赖于一个特殊的JVMTIAgent。对于javaagent,或许大家都听过,甚至使用过,常见的用法大致如下:java -javaagent:m

2017-03-16 12:36:11 410

转载 服务端架构中的“网关服务器”

这么一个场景:一个要承载高并发、具有高性能的后台服务,往往会有多个不同的应用服务。问题来了,你会怎样设计架构呢?如下图所示,为了共用一个稳定高效的网络处理功能,把所有服务写在一个进程里。接下来悲剧一幕幕就要上演了,如果各个模块是多人协作开发,网络库的作者得想办法设计个插件机制供各个应用挂载,开发时无论是人员或者代码都耦合非常严重,大大影响协作、开发效率,后期要增减一个应

2017-03-01 21:11:17 1427

转载 IM系统架构设计之浅见

背景:除去大名鼎鼎的QQ这款即时聊天工具,还有许多细分行业的IM,比如淘宝阿里旺旺、网易泡泡、YY语音......。恰巧公司产品也要开发一款基于我 们自己行业的类IM系统,很有幸我担当了这个产品的架构师,核心代码编写、实现者。下面把我近年来从技术上我对IM系统(即时消息的传输,不包括语音,视频,文件的传输)的理解和设计分享出来,浅薄之见,望大家别见笑,欢迎给出批评意见。一.网络传输协议的选

2017-03-01 21:09:04 266

原创 YMS的syslog配置

1、配置终端到日志服务器的rsyslogd149服务器:1、开启514端口/sbin/iptables -I INPUT -p udp --dport 514 -j ACCEPT/etc/rc.d/init.d/iptables save修改配置,开启UDP 514监听:vi /etc/rsyslogd.conf# provides UDP syslog recep

2017-03-01 21:07:33 475

原创 syslog 发送速度限制

rsyslog 5.7.1 版本之后默认有日志发送速度限制,如果在某一时间点发送大量日志,则超过限制的日志则会被全部丢弃。所谓速度限制(Rate Limit)就是指,在某个固定的时间段内,syslog最多允许打印的log信息数量(多出的log信息将被丢弃)。它由配置文件/etc/rsyslog.conf中以下两个配置项决定:$SystemLogRateLimitInterval [Numb

2017-03-01 20:59:57 3388 1

转载 Netty编解码框架分析

1. 背景1.1. 编解码技术通常我们也习惯将编码(Encode)称为序列化(serialization),它将对象序列化为字节数组,用于网络传输、数据持久化或者其它用途。反之,解码(Decode)/反序列化(deserialization)把从网络、磁盘等读取的字节数组还原成原始对象(通常是原始对象的拷贝),以方便后续的业务逻辑操作。进行远程跨进程服务调用时(例如RPC调用),需

2017-02-28 22:20:01 274

转载 如何用十条命令在一分钟内检查Linux服务器性能

如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。概述通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。uptimedmesg | tailvmstat 1mpstat -P ALL 1pi

2017-02-28 22:18:44 203

转载 Java中getResourceAsStream的用法

Java中getResourceAsStream的用法首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资

2017-02-28 22:14:30 243

转载 java nio:浅谈io模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Pr

2017-02-28 21:55:31 375

转载 启动Java应用的Shell脚本

启动Java应用的Shell脚本 对于Java应用程序(非web应用),在部署后,常常需要一个启动脚本来加载一些第三方的jar包,并启动应用。 对于java应用程序,我一般喜欢将程序的目录结构写成如下的方式: myapp     |----lib     |----bin             |----packages    

2017-02-28 21:52:41 603

原创 有道笔记到CSDN博客

接下来几天陆陆续续会把有道笔记记录下来的东西移到博客来,一起分享。

2017-02-28 13:21:19 615

转载 BlockingQueue详解

本文转载自:http://wsmajunfeng.iteye.com/blog/1629354前言:     在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以

2017-02-28 12:55:24 421

转载 java位运算总结

首先要明白一个概念,Java位运算是针对于整型数据类型的二进制进行的移位操作。主要包括位与、位或、位非,有符号左移、有符号右移,无符号右移等等。需要注意一点的是,不存在无符号左移      数据类型                           所占位数      byte                                       8       boolean

2017-02-28 12:54:21 374

转载 运行jar程序时添加vm参数

设置vm堆大小以及,配置远程监控参数设置远程端口为8999,不需要用户名密码验证,初始化堆内存为64M、最大堆内存为128M、新生代为20M,Survivor区与Eden区内存为2:8java -Djava.rmi.server.hostname=主机ip -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxre

2017-02-28 12:52:54 5044

转载 CAP理论

CAP理论在互联网界有着广泛的知名度,知识稍微宽泛一点的工程师都会把其作为衡量系统设计的准则。大家都非常清楚地理解了CAP:任何分布式系统在可用性、一致性、分区容错性方面,不能兼得,最多只能得其二,因此,任何分布式系统的设计只是在三者中的不同取舍而已。事实上,让人吃惊的是,CAP在国外的响力完全不如所想,相反还伴随着诸多的争论。下面我们系统地阐述一下CAP的来龙去脉。1.CAP的历史

2016-12-06 12:59:52 451

空空如也

空空如也

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

TA关注的人

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