- 浏览: 514072 次
- 性别:
- 来自: 杭州
博客专栏
-
集群高可用架构
浏览量:193975
最新评论
-
lgh1992314:
使用 volatile 的原因是可以保证线程在本地不会存有 i ...
java单例模式的正确写法 -
aguai0:
厉害了
推荐几个自己写的Java后端相关的范例项目 -
liwenjie:
找不到数据库初始化脚本
推荐几个自己写的Java后端相关的范例项目 -
bo_hai:
juvconan 写道./redis-trib命令建立集群时, ...
Redis Cluster集群主从方案(附Jedis Cluster教程) -
苟且偷生:
楼主 Sentinel集群的时候 master shutd ...
Redis Sentinel主从高可用方案(附Jedis Sentinel教程)
文章列表
集群高可用架构整理(不断更新中)
在大型系统或是对稳定性要求较高的项目中,集群高可用架构是必不可少的,这里整理一些平时用到过的集群/高可用技术,不断更新中。。。
二种最基本的集群模型:
M-S 型集群: M-S 型的集群一般用于高可用架构,主节点挂掉时从节点顶上,一般不具有分流(负载均衡)的作用。
M-M 型集群: M-M 型的集群一般用于分流(负载均衡),部分 M-M 型集群会包含 M-S 型的主从功能(像 Redis Cluster),分流的同时达到高可用的作用。
传送门如下:
Redis Sentinel主从高可用方案(附Jedis Sentinel教程)
...
推荐几个自己写的范例项目
这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处是简单易懂,在架构一个新的项目的时候可以直接当成脚手架来用 ...
HRPC
HRPC is a light-weight high performance RPC framework base on Netty and Zookeeper.
github地址:https://github.com/wosyingjun/HRPC
Features
Serialize by protostuff
High performance, load balance and failover
Service registration and subscription base on zookeeper
Support asynchronous or ...
Dubbo是一个来自阿里巴巴的开源分布式服务框架,当当根据自身的需求,为Dubbo实现了一些新的功能,包括REST风格远程调用、Kryo/FST序列化等等。并将其命名为Dubbox(即Dubbo Extensions)
Demo地址:https://github.com/wosyingjun/DubboxDemo 类似范例: http://wosyingjun.iteye.com/blog/2312553
Dubbo架构
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
M
Leek——韭菜的自我救赎
Leek是一款基于分布式的简易版智能实时选股系统,计算能力超强,代码量极少。
相关项目:项目地址:Leek——简易版实时智能选股平台
目前实现了3种简单的策略(欢迎大家pull request更多策略): 策略1:大单卖,选出股票的卖5档总手数大于买5档口总手数100倍时的股票;策略2:大单买,选出股票的买5档总手数大于卖5档口总手数100倍时的股票;策略3:放巨量,选出在10秒内成交量超过1000万时的股票;
基于(Flume+KafKa+JStorm+Esper+MySQL)
分布式架构、可自由调节计算能力。
Flume 实时日志数据提取 ...
JStorm2.1.1集群的安装和使用
Storm是一个免费开源、分布式、高容错的实时计算系统,而JStorm是阿里巴巴开源的基于Storm采用Java重写的一套分布式实时流计算框架,在性能和支持的集群规模上做了较大优化。
官方地址:https://github.com/alibaba/jstorm相关文章:Storm深入理解相关项目:Leek——简易版实时智能选股平台
JStorm集群的安装:
1、Zookeeper集群的安装
见:ZooKeeper高可用集群的安装及配置
2、JStorm的安装(安装前需先安装JDK和Python)
下载JStorm
w ...
Storm深入理解
Storm是一个免费开源、分布式、高容错的实时计算系统。
相关示例项目:Leek——简易版实时智能选股平台
一、Storm集群架构
Nimbus :Storm集群的Master节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件(Spout/Bolt)的Task。
Supervisor :Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker进程的启动和终止。通过Storm的配置文件中的supervisor.slots.ports配置项,可以指定在 ...
KafKa集群的部署与测试
kafka是一款分布式消息发布和订阅的系统,相比ActiveMQ具有高性能和高吞吐率。
官方网站: http://kafka.apache.org/documentation.html#quickstart
相关项目:相关示例项目:Leek——简易版实时智能选股平台
一、kafka原理图
二、kafka的安装(安装kafka前需要先安装JDK环境)
1、下载kafka
[http://kafka.apache.org/downloads.html](http://kafka.apache.org/downloads.html)
ta ...
Flume的部署与测试
Flume是一个分布式、高可靠、高可用的日志收集系统。能够有效的收集、聚合、移动大量的日志。把各种类型的数据源采集汇总到各种类型的目的地,flume有一个口号:“我们不生产数据,我们是数据的搬运 ...
ActiveMQ高可用集群方案
在高并发、对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案。从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper + LevelDB 的 Master-Slave 实现方式。
相关文章:范例项目: http://wosyingjun.iteye.com/blog/2312553 ActiveMQ的简单实用:http://wosyingjun.iteye.com/blog/2314681
一. ActiveMQ的高可用原理
使用Zo ...
ActiveMQ的简单使用
ActiveMQ是一种开源的,实现了JMS规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。
相关文章:范例项目: http://wosyingjun.iteye.com/blog/2312553 ActiveMQ集群高可用方案:http://wosyingjun.iteye.com/blog/2314683
ActiveMQ组成:
ActiveMQ接发送消息流程图:
一. ActiveMQ的安装和配置
1、官网下载Linux版的ActiveMQ(最新版本为5.13.4)
h ...
基于keepalived的nginx高可用方案
Keepalived 是一种高性能的服务器高可用或热备解决方案,可以用来防止服务器单点故 障的发生,通过配Nginx可以实现web前端服务的高可用。
注:貌似阿里云的ECS服务器没法用keepalived(无法获取到VIP),遇到这种情况的建议还是用阿里云的SLB吧,简单省心。
相关文章:范例项目: http://wosyingjun.iteye.com/blog/2312553 手把手教你认识并搭建Nginx:http://wosyingjun.iteye.com/blog/2252941Nginx的基本配置与优化:http ...
ZooKeeper高可用集群的安装及配置
Zookeeper作为很多服务的注册协调中心(dubbo,jstom等),因此高可用集群方案也是必不可少的,Zookeeper集群时要注意将ZK集群的节点数量要为奇数(2n+1:如 3、5、7 个节点)较为合适。
范例项目: http://wosyingjun.iteye.com/blog/2312553
1、下载并上传zookeeper-3.4.6.tar.gz到各个服务器的/usr/local/目录
$ cd /usr/local/
$ wget http://apache.fayea.com/zookeeper/zook ...
Druid号称是Java语言中最好的数据库连接池。
1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL执行日志,Druid提供了不同的LogFilter,能够支持
线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting(睡眠或等待一定的事件)、waiting(等待被唤醒)、消亡(dead)。由于突然中 ...