自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Think In JAVA—Max

Best Or Nothing

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

转载 基于nginx负载均衡下 Tomcat 集群的 Session 共享

一、前言  nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存、web server负载均衡等功能,由于其轻量级、高性能、高可靠等特点在互联网项目中有着非常普遍的应用,相关概念网上有丰富的介绍。分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,比如 tomcat cluster session 广播、

2016-06-26 15:39:10 1315

原创 Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移

一、Dubbo多注册中心1、 应用场景例如阿里有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。consumer.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc

2016-06-26 14:52:43 9590

原创 Dubbo&ZK分布式服务化改造(三)——Dubbo服务高级特性及服务划分原则

一、Dubbo集群容错模式1、Failover Cluster     失败自动切换,当出现失败,重试其它服务器。(缺省)     通常用于读操作,但重试会带来更长延迟。2、Failfast Cluster     快速失败,只发起一次调用,失败立即报错。     通常用于非幂等性的写操作,比如新增记录。3、Failback Cluster     失败自动恢复,后

2016-06-26 11:36:59 4214

转载 Spring 与 Kafka集成实战

本文以单机的环境演示如何将Kafka和Spring集成。单机的环境最容易搭建, 并且只需在自己的PC上运行即可, 不需要很多的硬件环境,便于学习。 况且,本文的目的不是搭建ZooKeeper的集群环境, 而是重点介绍Kafka和Spring的应用。具体的软件环境如下:OS: CentOS 6.4Zookepper: zookeeper-3.4.6Kafka: k

2016-06-25 20:41:36 9186 1

原创 Dubbo分布式服务治理(二)——Dubbo服务运行方式&&监控中心安装(Linux)

一、Dubbo服务运行方式1、使用servlet容器(tomcat、jetty)发布运行     Dubbo服务可将其发布到web容器中供,注册到ZK,传送消息通知调用;     这种方式不可避免的要额外设定tomcat运行端口,服务访问端口;同时还设计tomcat内存调优,一个tomcat跑几个服务,或者几个tomcat一起跑,等等管理方案,额外增加内存、管理开销。     另外

2016-06-21 21:01:16 2397

原创 Dubbo分布式服务治理(一)——Dubbo注册中心&&管理平台安装(Linux)

一、Dubbo介绍     Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。1、那么,Dubbo是什么?     Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。     其核心部分包含:(1)远程通讯 

2016-06-21 19:45:31 3279 2

原创 分布式消息中间件(七)——Kafka安装及配置详解(Linux)

一、Zookeeper集群准备Kafka服务有赖于Zookeeper来管理,故在安装kakfa前先安装zk集群环境。具体安装步骤,详见 Linux 系列(七)——Zookeeper集群搭建二、Kafka核心配置解析 1、上传压缩包,解压2、解压后,cd /lamp/kafka/config文件下,查看kafka所有相关配置-rw-r--r--. 1 root root 906

2016-06-19 16:39:04 2660 2

原创 Linux 系列(七)——Zookeeper集群搭建

一、Zookeeper环境准备     安装JDK,Zookeeper由java开发所以需要安装jdk。JDK安装步骤详见Linux系列(五)--JDK & Tomcat安装二、Zookeeper的安装步骤1、上传zk压缩包,解压[root@localhost~]# tar -zxvf zookeeper-3.4.6.tar.gz2、解压后,在/usr/local/

2016-06-19 15:32:27 1484

原创 分布式消息中间件(六)——Kafka核心组件详解

一、Kafka发布订阅消息系统基础     Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,使用 Scala语言编写,之后成为 Apache 顶级项目框架。Kafka 是一个分布式的,可划分的,多订阅者,冗余备份的持久性的服务。     在Kafka生态架构实战中已经介绍了Kafka生态系统,伴随大数据计算,kafka作为重要的数据缓冲者,将flume收集的数

2016-06-18 15:26:25 6444 1

原创 分布式消息中间件(五)——MQ基础详解

一、消息队列MQ基础1、MQ核心组成     Sender(Producer App)——Message Queue——Receiver(Consumer App)2、MQ vs SOA     消息队列的出现意于完成系统间的消息通信,协调系统调用间调用。这跟SOA类似。但不同于SOA面向服务的直接调用,消息队列的通信不是直接调用关系,系统间通信主要通过消息发送,接收方接收消息,进

2016-06-18 10:33:37 11321

原创 分布式消息中间件(四)——Flume+Kafka+Storm+Redis生态架构实战

一、Kafka项目应用架构分析1、Kafka生态架构      数据收集的速度,跟处理的速度不一定一致,故使用Kafka中间件作为数据收集和数据处理的一个Access入口,接收flume收集的数据,并通过kafkaSpout提交给Storm进行处理。2、kafka 消息生产者3、kafka 消息消费者 二、Kafka Producer 1、配置FlumeCl

2016-06-15 11:47:45 6890

转载 apache kafka消息服务

消息队列分类:  点对点:消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。这里要注意:消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。发布/订阅消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订

2016-06-14 17:05:25 1202 1

原创 分布式消息中间件(三)——Kafka生产者消费者模型

一、Kafka回顾1、AMQP协议     消息队列中消息交互规范,多数分布式消息中间件基于该协议进行消息传输2、Broker     对于kafka,将生产者发送的消息,动态的添加到磁盘,一个Broker等同于一个kafka应用实例,用于存放消息队列3、主题:分区:消息     一个分区(Patition)等同于一个消息队列,存放n条消息;一个主题(Topic)包括多个分

2016-06-14 17:00:41 6970

原创 分布式消息中间件(二)——ActiveMQ发布-订阅消息模式

1、消息生产者-消息发布-Topic/** * 消息生产者-消息发布者 * @author Administrator * */public class JMSProducer { private static final String USERNAME=ActiveMQConnection.DEFAULT_USER; // 默认的连接用户名 private static fin

2016-06-14 15:49:00 6094

原创 分布式消息中间件(一)——ActiveMQ点对点消息模式

一、下载运行1、官网下载     Windows版:apache-activemq-5.13.3-bin.zip     Linux版:apache-activemq-5.13.3-bin.tar.gz2、Windows下根据操作系统位数,运行activemq.bat文件,启动ActiveMQ服务。    注意:需要先配置java环境变量,否则启动一闪而过。3、访问http

2016-06-14 15:37:57 4124

原创 MySQL数据库优化(八)——MySQL负载均衡 & 读写分离

在庞大的数据量应用系统中,除了使用复制策略实现数据库高可用之外,还可结合业务功能,将数据也以模块划分,存入不同的db服务器中。      在高并发负载均衡(一)——企业架构分析和DNS中提高对应网站高并发的主要集中在两处,web服务的高并发和数据库高并发;应对web服务的高并发在前面系列博文中有所介绍,使用各种负载方式均发访问量到不同的服务器不失为良好的策略。数据库高并发同样可通过负载均衡得以

2016-06-12 11:26:19 11640

原创 MySQL数据库优化(七)——MySQL主从复制

   mysql内置提供的复制功能是mysql大规模、高可用性能的基础,应用人员可通过水平扩展,配置n个备库来实现数据同步,是数据库高性能、备份、数据仓库容灾的工作前提。一、mysql复制能解决什么问题?1、数据分布     在不同的地理位置来分配数据备份,产生各地数据中心2、负载均衡     通过mysql复制可将读操作分布到多台服务器,实现对读高并发的应用优化。如何实现mysql负载均...

2016-06-12 09:51:44 1754

转载 MySQL数据库优化(六)——MySQL分表和表分区

为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。什么是分表?分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实

2016-06-11 21:43:39 1285

原创 MySQL数据库优化(五)——MySQL查询优化

一、mysql查询类型(默认查询出所有数据列)1、内连接      默认多表关联查询方式,查询出两个表中所有字段;可省略inner join 关键字2、外连接 查询出某一张表中的所有数据(1)左连接      查询出第一张表的所有字段(2)右连接 查询出第二张表的所有字段,表一匹配数据为空的返回null3、子连接--内连接  查询出bookID=book类型

2016-06-11 21:30:13 3268

原创 MySQL数据库优化(四)——MySQL索引优化

一、索引基础索引类型:     1、普通索引: 创建到任何数据类型中             2、唯一性索引:限制索引值必须唯一     3、全文索引:只能创建到char、varchar、text类型字段上,主要用于提高文本查询速度。MyISAM引擎支持。     4、单列索引:给表中单个字段创建索引     5、多列索引:给多个字段创建索引     6、空间索引:使用spatial...

2016-06-08 17:10:43 1484

原创 MySQL数据库优化(三)——MySQL悲观锁&&乐观锁(并发控制)

一、读锁(共享锁)、写锁(排它锁)二、锁粒度:表锁(table lock)、行级锁(row lock)三、乐观锁和悲观锁悲观锁    排它锁,当事务在操作数据时把这部分数据进行锁定,直到操作完毕后再解锁,其他事务操作才可操作该部分数据。这将防止其他进程读取或修改表中的数据。    实现:一般使用 select ...for update 对所选择的数据进行加锁处理,例如

2016-06-08 09:55:12 28971

原创 MySQL数据库优化(二)——MySQL事务

一、ACID Atomicity    原子性 :一个事务被视为一个不可分割的最小工作单元,整个事务要么全执行,要么全部失败回滚。Consistency    一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。例如,即使取钱操作失败,因为事务没有提交,所以事务所做的修改也不会保存到数据库中,数据还是事务执行前的状态。如果事务执行成功,那数据就是执行后的状态,保持不变。

2016-06-07 21:01:48 1739

原创 MySQL数据库优化(一)——MySQL引擎

一、MySQL引擎种类(一)、InnoDB1、InnoDB简介     InnoDB是my默认引擎,支持事务,in的数据存储在表空间(tablespace)中,通过间隙锁(next-key locking)防止幻读。2、InnoDB特点   (1)In内部做了很多优化,in基于聚簇索引建立表,对主键查询有很高的性能。   (2)读取数据时,能够在内存中创建hash索引加速插

2016-06-07 15:04:49 1303 1

原创 JVM调优系列(五)——JVM调优利器

JConsole一、概览信息二、堆信息     由堆信息可以看出GC的频率、堆的三个代内存占用状态。三、VM虚拟机配置信息 Java VisualVM一、概览信息二、线程信息监控三、抽样器     抽样期主要作用是对当前JVM状态进行抽样分析,针对CPU和内存,当前时刻生成对象占用内存情况、实例个数

2016-06-05 19:25:12 932 1

原创 JVM调优系列(四)——集成环境下配置JVM参数

一、纯JAVA环境下的JVM配置    对于单独的.class,可以用 java -Xms64m -Xmx256m Advice 对Advice.class文件在运行时的jvm内存进行设置。二、Eclipse集成环境下的JVM配置    Eclipse集成环境下可通过几种方式配置JVM1、修改eclipse.ini文件2、eclipse加载JDK时添加JVM参数

2016-06-04 15:55:17 3567 2

原创 JVM调优系列(三)——GC垃圾回收机制

一、垃圾回收的作用    java的一大特点就是自动垃圾回收处理机制,无需开发人员过度关注系统内存资源的释放,减轻开发者的工作量,同时也避免了由于内存无法释放而导致程序内存溢出宕掉的危机。选择一个合理的垃圾回收策略至关重要。    垃圾回收(GC)主要关注3个问题1、那些对象需要回收?2、什么时候回收?3、如何回收?二、垃圾回收算法1、引用计数法(Reference C

2016-06-04 11:30:40 1247 2

原创 JVM调优系列(二)——JVM内存分配解析

一、设置堆内存1、-Xmx     指定最大堆内存=新生代+老年代;在最大堆内存范围内,将会一直为对象分配空间,直到超过这个值内存溢出。public static void main(String[] args) { Vector v=new Vector(); System.out.println("Max memory="+Runtime.getRuntime().maxM

2016-06-03 21:10:59 1075 1

原创 JVM调优系列(一)——JVM模型架构图解析

JVM模型架构图一、程序计数器    Program Count Register,每一个线程都有一个独立的程序计数器,用于记录下一条要运行的指令,各线程间PC Register 互不影响。  程序计数器是线程的私有内存空间,每条线程都会拥有一个独立的程序计数器二、java 虚拟机栈    JVM language Stacks,也是线程的私有内存空间,和java线程在

2016-06-03 18:02:42 2630 1

原创 Keepalived+Nginx实现负载均衡高可用

一、负载均衡高可用     Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重。     为了避免负载均衡服务器的宕机故障,需要建立一个备份机。主备机上都运行高可用(High Availability)监控程序,通过传送心跳信息来监控对方的运行状况。当备份机不能在一定的时间内收到对方的正常心跳

2016-06-01 16:06:12 2519

原创 配置Nginx实现负载均衡

在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案就是使用nginx实现负载均衡。 一、负载均衡的作用1、转发功能按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力

2016-06-01 10:45:57 40440 4

git 客户端工具

git 客户端工具

2017-08-10

空空如也

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

TA关注的人

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