- 博客(335)
- 资源 (10)
- 收藏
- 关注
原创 高性能分布式架构实践(一)
先把普通企业级基本性能优化的小方法复习下JVM 参数调优1. 使用64位JDK 1.6+ & Tomcat 6+。2. jvm内存优化编辑tomcat/bin/目录下catalina.bat(linux为catalina.sh,配置类似,请自行百度),在文件开头加上以下代码(注意先搜索一下,不要重复设置)3. set JAVA_OPTS=-Xms512m -Xmx4...
2018-03-26 19:42:38 1016 1
转载 基于 spring-session 解决分布式 session 共享问题
摘要:本文主要研究 基于 spring-seesion 解决分布式 session 的共享问题。首先讲述 session 共享问题的产生背景以及常见的解决方案;然后讲解本文主要研究的 spring-session 的概念和功能;接着演示了 spring-session 的两种管理 sessionid 的实现方案,属于实战内容,需重点掌握;再接着对后台保存数据到 redis 上的数据结构进行了分析;...
2017-12-26 16:49:04 1315
转载 微服务架构上云最佳实践(转自阿里中间件)
中间件技术峰会分享 | 微服务架构上云最佳实践发表于 2017-08-07 | 作者 李颜良 | 分类于 分布式服务 | 摘要:7月27日,云栖社区、阿里中间件举办了首届阿里巴巴中间件技术峰会,揭秘阿里10年分布式技术干货。在首届阿里巴巴中间件技术峰会上,具有10年研发经验的阿里巴巴中间件技术专家李颜良结合EDAS团队上云两年多以来积累的经验为大家分享了如何进行微服务...
2017-12-26 16:48:41 2241
原创 Redis3.2.11主从集群模式
本文一切安装、测试、开发均以上一稳定版本3.2.11为准,不建议采用Windows版本,因为Redis官方没有任何声明支持Windows版本,市面上的Windows版本为微软XX开源小组维护。单机安装安装安装环境:CentOS 6.5 x86_64版本,理论上CentOS6.x/RHEL 6.x的安装方式一样。但极可能不适用于CentOS 7.x/RHEL 7.x版本。执行命令如下tar -zxv...
2016-10-18 10:02:08 1804 4
转载 记录—RabbitMQ、ActiveMQ、ZeroMQ、Kafka之间的比较汇总
自:http://blog.jobbole.com/103630/MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。第一部分:RabbitMQ,ActiveMq,ZeroMq比较1、 TPS比较 一ZeroMq 最好,RabbitMq 次之, ActiveM...
2016-08-23 07:42:26 1583 1
转载 SpringBoot+RabbitMQ
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apache,当然了今天的主角还是讲RabbitMQ。消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产...
2016-08-08 20:43:35 3672 1
转载 Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能(转自阿里中间件)
Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能发表于 2016-04-01 | 作者 以夕 | 分类于 消息中间件 | 引言分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。那么,消息中间件性...
2016-04-13 21:44:24 1967 3
原创 haproxy+tomcat部署配置
安装1、下载haproxy1.6.3 for windows_64.zip,haproxy官网不提供windows版本,大多是用cygwin工具编译源码生成2、解压即可配置global # 全局参数的设置log 127.0.0.1 local0 info# log语法:log <address_1>[max_level_1] # 全局的日志配置,使用log关键字,指定使用127...
2016-03-15 08:25:51 2329 3
原创 承接上文《利用Keepalived 搭建Nginx双机主备模式》的部署步骤
本文主要记录利用Keepalived 搭建Nginx双机主备模式的部署过程。部署准备nginx-1.12.2keepalived-1.2.24CentOS 6.8部署架构 Nginx做为反向代理服务器,负责后端的WEB应用服务的代理,即终端用户的Http请求,将由Nginx的负载均衡策略,转发到不同的Web服务器(Tomcat)上处理。 当然,在一些互联网应用中,Nginx也可...
2016-03-12 16:58:10 1812 2
原创 //基于redisTemplate工具类RedisHelper
package com.tgb.util.redis;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;import org.springframework.data.redis.core.RedisTemplate;import org.spri...
2016-03-04 20:28:16 2625 2
原创 最基本的数据库设计规范
为使数据库命名及编码风格标准化,以便于阅读、理解和继承,所以建议遵循下面这些规范,适用所有软件业务系统,并适用于所有常用数据库(Oracle、DB2、SQL Server)。对象命名数据库对象包括表、视图、存储过程、函数、约束(数据库设计中应避免建立外键约束)。对象命名采用26个大写英文字母和0至9十个自然数、下划线_组成,且只能以字母开头,不能出现其他字符。对象命名由“前缀_模块名_业务实体名”...
2016-03-03 23:38:18 1755 2
原创 CAS集群修改点
TGT、ST数据共享多台CAS服务器共享TGT、ST数据,由于TGT、ST数据没有存储到SESSION中,所以需要单独处理TGT、ST数据的共享。可采用的方式有多种,例如:redis、memcached等NOSQL数据库,登录量小的可以选择关系型数据库等。Redis:1、继承AbstractDistributedTicketRegistry类,重写ticket的增删改查方法import java....
2016-02-27 21:52:21 1894 1
原创 利用Keepalived 搭建Nginx双机主备模式
先上示意图 Nginx做为反向代理服务器,负责后端的WEB应用服务的代理,即终端用户的Http请求,将由Nginx的负载均衡策略,转发到不同的Web服务器(Tomcat)上处理。 当然,在一些互联网应用中,Nginx也可以作为http服务器,专门负责静态资源的处理(html,css,js等),这样的部署架构虽然性能有所提升,但相对我们实际项目的部署能力、运维能力来说,增...
2016-02-23 22:12:34 2030 2
原创 一般项目常用性能调优方法(三)
静态文件优化静态文件优化主要是指对文件大小的优化。文件大小往往被很多开发人员忽略,但对于带宽有限(公网项目)或者硬件设备(主要是交换机)老旧的环境,文件大小往往是性能的最大瓶颈。试想一个index.action,所有文件通过浏览器另存之后大小为3M,则100并发,就需要3*100 = 300M的瞬时流量,需要300 * 8 = 2.4Gbps的带宽才能在1秒内下载完毕(粗算,不科学)。1. ...
2016-02-23 22:11:17 1740 2
原创 一般项目常用性能调优方法(二)
功能优化从功能设计上,避免一次性加载大量数据。遇到一次性加载大量数据的,通过以下问题寻找功能优化方式:1. 设置默认查询条件,仅加载部分数据。如对于监测数据的查询分析,可默认仅查询当天或当月的数据;2. 将数据展示使用类似TAB的元素分开,根据用户操作,采用AJAX分步加载数据3. 实时性要求不高的数据,不要实时查询,可缓存或者放到Session中代码调优SQL...
2015-12-09 21:02:58 2299 4
原创 一般项目常用性能调优方法(一)
JVM 参数调优1. 使用64位JDK 1.6+ & Tomcat 6+。2. jvm内存优化编辑tomcat/bin/目录下catalina.bat(linux为catalina.sh,配置类似,请自行百度),在文件开头加上以下代码(注意先搜索一下,不要重复设置)3. set JAVA_OPTS=-Xms512m -Xmx4096m -XX:PermSize=12...
2015-12-02 20:28:20 2585 1
转载 LTS(light-task-scheduler)
LTS用户文档LTS(light-task-scheduler)主要用于解决分布式任务调度问题,支持实时任务,定时任务和Cron任务。有较好的伸缩性,扩展性,健壮稳定性而被多家公司使用,同时也希望开源爱好者一起贡献。项目地址github地址: https://github.com/ltsopensource/light-task-scheduleroschina地址: http://git.osc...
2015-11-24 19:36:32 4036 1
原创 还之前欠下的债https(nginx+tomcat)配置
目的nginx和tomcat配置支持https访问。由引言可知,要支持https,需要安装证书。配置https1、生成证书For Nginx以 openssl生成证书为例。1、安装openssl下载地址:http://slproweb.com/products/Win32OpenSSL.html 直接安装Win64OpenSSL-1_1_0g.exe即可2、 配置环境变量OPENSSL_CONF值...
2015-11-01 12:13:17 2204 1
转载 记录-Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
出自: http://www.cnblogs.com/dolphin0520/p/3920397.html在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier...
2015-06-30 23:16:23 1506 2
原创 简单解释下什么是用户权限系统钟的三员管理和分级授权
什么是三员管理一个人拥有的权限太大,会给系统造成很大的安全隐患,比如超级管理员能查看所有功能和数据。解决办法:将超级管理的员的权限拆分,分给不同的角色,同一个账号只能能属于这些角色中的一个,从而使获得额外权限的过程至少需要两个角色配合操作才能完成。典型的角色包括:用户管理员:管理部门、创建、修改用户账号角色管理员:创建、修改角色,配置角色权限 ,将用户加入或移出指定角色审计管理员:可以管理和查看安...
2015-06-30 23:15:55 10343 1
翻译 Activiti几类表说明
The database names of Activiti all start with ACT_. The second part is a two-character identification of the use case of the table. This use case will also roughly match the service API.ACT_RE_*: RE s...
2015-06-30 23:15:30 1110 1
原创 Tomcat Session共享
有多种实现方案,在这里介绍2种。方案1:使用 web容器本身功能,Tomcat组播优点:配置简点,不依赖第三方存储。缺点:广播延迟,需要Tomcat7及以上版本,需要广播端口方案2:使用缓存实现,Redis或memcached 优点:实时性高,常用方式 缺点:需要维护第三方服务,必须保证高可用。其他方案: 可以设置nginx或haproxy等负载方式为ip绑定,假装实现Tomcat之间的Sessi...
2015-06-30 23:15:08 1275 1
原创 nginx+tomcat的Https配置
HTTPS和HTTP的区别超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传...
2015-05-31 22:09:38 1140 4
原创 使用Spring-Cache的两条限制
Spring-Cache的注解实现原理是Spring AOP,而Spring AOP的默认模式是代理(mode="proxy"),所以注定了以下两条限制:基于注解的缓存仅适用于public方法基于注解的缓存仅适用于Bean的外部调用,即某bean的methord1 调用自身的methord2时,缓存不会生效如果要解决上述限制,考虑Spring AOP配置为AspectJ的方式(mode="aspe...
2015-05-31 22:08:50 1157 1
原创 《标记》-Spring的一些偏方
一、Environment和Profile的概念Spring在容器中引入Environment和Profile的概念。每个应用程序上下文都有一个都可以访Environment对象。ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicati
2015-05-31 22:08:30 1208 3
原创 httpclient连接池的使用
httpclient是java开发中非常常见的一种访问网络资源的方式了,本位主要说明多线程环境下HttpClient连接池的使用。虽说http协议时无连接的,但毕竟是基于tcp的,底层还是需要和服务器建立连接的。对于需要从同一个站点抓取大量网页的程序,应该使用连接池,否则每次抓取都和Web站点建立连接、发送请求、获得响应、释放连接,一方面效率不高,另一方面稍不小心就会疏忽了某些资源的释放、导致
2015-05-31 22:07:46 2210 2
转载 记一次PermGen持续增长的解决过程
前言这个问题的起因,是一次PermGen持续增长的报警,而问题的解决,是PermGen、类加载、Spring、JDK等知识的融合。本次问题,从发生到最终解决,经历了很长的时间,这个过程中,有工程方法,有JVM优化,有源码追踪,有思想碰撞,最终解决问题后,发现是Spring 4.1.1.RELEASE的BUG,从4.2.4之后,这个BUG就修复了,这次问题的解决,
2015-04-30 23:46:37 4142 2
原创 《标记》-编码一次,解码两次?
一、场景:1、我在客户端要通过get方式调用服务器端的url,将中文参数做utf-8编码,需要在js中两次的进行编码,服务器端才能用decode方法一次获取。例如:客户端var a=encodeURIComponent(encodeURIComponent(xing)); 服务器端只需要一次decode xing=URLDecoder.decode(xing, "UTF-8"
2015-04-30 23:46:20 1617 3
原创 《标记》-在自定义的Spring拦截器中通过request获取到该请求对应于Controller中的目标method方法对象
为什么要读取method方法对象?当然拿到Method对象我们可以做很多事,例如权限认证的时候,判断用户是否有访问该方法的权限。spring-webmvc-3.1.0.RELEASE及以上版本最终配置--------------------------------------------begin
2015-04-30 23:46:08 2751 1
原创 统一认证系统实现要点-资源认证
权限系统有一个普遍的需求,即:用户登录系统后,在浏览器地址栏直接输入未经授权的URL,应该拒绝其访问。目前有很多线程的权限框架对这部分进行了封装,如shiro,但是如果不想引入新框架,保持系统的轻量,该如何做呢?对于普通Spring MVC项目来说,每个@RequestMapping标注的方法应该就对应了一个操作行为。如何配置用户权限信息让用户在到达每个操作行为
2015-04-30 23:44:51 1349 2
内存中动态编译执行java代码
2014-10-25
EJB+Annotation实现AOP的DEMO
2014-03-27
ssh2+pager-taglib实现自动分页
2013-05-21
SSH1框架搭建实例
2013-04-25
ASP.NET AJAX核心控件示例
2012-01-10
Repeater\DataList\GridView实现分页,数据编辑与删除
2011-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人