文档章节

对单机架构升级集群架构的工作记录

j
 java_龙
发布于 2017/06/22 17:23
字数 575
阅读 102
收藏 3
点赞 0
评论 0

概述

        还有公司敢用单机模式架构,狠狠的擦了一把汗。。在此萌生了改造单机架构模式,自行网上搜索出一套适合公司的高可用架构,才大致了解完毕。领导就召集大家说了现有单机模式的弊端。。   领导是火眼金睛吗?   好吧,该我低调的卖弄了。。

现有架构

就问你们看到可不可怕(因为DB已经做了集群,此处就没画出来)。。。  任何一个节点挂掉,整个生产线就挂了,下面一一道来为什么那么说:

1.         Nginx单点架构,一旦当前nginx挂掉,将致使外部用户无法使用访问应用

2.         Tomcat:service-mix采用的1:1 访问,容易导致tomcat可以正常访问但下游服务挂掉,应用仍然请求到当前tomcat,但是无法提供服务

3.         Redis单点使用,某一台挂掉,就会导致相应功能失效

 

架构优化

整体解析:

  • keepalived和nginx放在同一台机器中,用于完成vip漂移
  • nginx采用的主备,备机使用的虚线连接,当主机挂掉了,备机对应的虚线才会生效

架构设计自下而上方案解析:

1.         将现有session共享和业务两个Redis实例合二为一,redis采用主从集群模式。

2.         Servicemix采用集群方案,tomcat请求nginx,nginx对servicemix进行请求分发。

3.         Tomcat请求keepalived VIP,路由到nginx,完成对servicemix的请求

4.        Nginx采用主备方案,用户请求到keepalived VIP,由keepalived选择决定访问哪台nginx

优化计划

    整个优化计划是根据影响程度从小到大进行优化,所以分为三步走(每一步在实施完成后,均会发博文记录的):

  1. Redis合并以及主从集群搭建
  2. nginx主备环境搭建
  3. servicemix负载均衡搭建

今天就先到此了....  继续撸码了!!!  欢迎大神指正批评!!!  欢迎大神指正批评!!!  欢迎大神指正批评!!!

 

© 著作权归作者所有

共有 人打赏支持
j
粉丝 53
博文 37
码字总数 119646
作品 0
成都
程序员
数据库高可用实战案例:架构优化

原文出处:DoubleK 说到高可用,看官们会想到很多方案,也许是自亲身经历过系统从单机变成高可用的痛苦过程,也许有的看官只是在自己的虚机上搭建过测试的玩具。今天本篇用我自己的真实经历给大...

Double_K ⋅ 2016/08/31 ⋅ 0

ZooKeeper使用(1)- 简介

首先说下为什么要写ZooKeeper专题吧,从我工作到现在有三年左右的时间了,虽然从一工作就接触到了ZooKeeper,但是都还仅限于简单的配置使用,对于ZooKeeper服务还不甚了解,后来加上要做配置...

andamajing ⋅ 2017/05/25 ⋅ 0

架构师升级步骤和平时的工作内容!

之前有网友说想看架构师升级的文章,所以写了本文。先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能按架构师的标准发工资。 对于...

冷_6986 ⋅ 06/12 ⋅ 0

百度Java架构师分享分布式锁的技术选型及思考

本文来自作者 一行 在 GitChat 分享的{分布式锁的技术选型及思考} 锁和分布式锁 在计算机中,锁的作用是解决在并发状态下的共享资源互斥问题,保证在同一时间只有一个进程/线程可以掌握资源的...

美的让人心动 ⋅ 04/13 ⋅ 0

应用服务器集群的Session管理

应用服务器的高可用架构设计主要基于服务无状态这一特性,但实际上,业务总是有状态的,在交易类的电子网站,需要有购物车记录用户的购买信息,用户每次购买请求都是向购物车中增加商品;在社...

技术小阿哥 ⋅ 2017/11/27 ⋅ 0

系统架构升级之道,关注关键服务依赖

【数据库】 一个典型的互联网应用,前端服务器可以利用负载均衡服务,组成一个集群,但是只有一个mysql主库,这时候,mysql服务就是系统中依赖的关键服务。 关键服务的性能和波动将成为整个系...

一凡Sir ⋅ 06/06 ⋅ 0

RAC集群架构

RAC集群是由多个物理计算机组成(每个叫做一个节点),这些节点通过网线连接(心跳线),每个节点上运行一个实例,这些实例通过一个特殊的软件(clusterware 集群件)的协助共同操作一个数据库...

OscerSong ⋅ 2013/01/08 ⋅ 0

图片服务器的url hash架构

什么是urlhash架构 url hash架构对url进行一次hash算法,然后通过hash结果找到对应的服务器。因为针对单一个url的hash结果是一样的,所以理论上这个url会被永久分配到固定的一台服务器上。另...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

游戏云间之五:游戏架构

说起架构,分为两块,一个是软件层次的代码架构,另外一个是硬件层次的系统架构。软件层次的,模块划分、代码重构及业务层的架构为主。系统层次的,以网络、部署、服务器集群为主。软件层次的...

六脉神剑 ⋅ 2014/03/28 ⋅ 0

原创:软件架构那点事儿(一)

关于标题,我也开始附庸文雅了。哈哈!话说软件架构是本人这些年的一些积累,在此做一点分享,希望对即将做架构或者是正在架构的 ITer 一些参考,也许见解浅薄,还望大家多多包涵,如有异议,...

边缘行者 ⋅ 2012/02/26 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 42分钟前 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 49分钟前 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部