小型互联网公司的一般架构
来源:互联网 发布:mac u盘装win7 提示 编辑:程序博客网 时间:2024/04/29 11:50
好记忆不如烂笔头,再简单的知识,都可能被遗忘,所以能记录下点东西,就记录下来、、、
来说说一般小型的互联网公司的一般架构,欢迎拍砖指正。
1.一般互联网公司的特征:
Client : 用户多,流量大,请求多等,主要来源是PC机,Android 设备或者IOS设备等
Server : 要求反映迅速,处理业务复杂,性能要求高,大多会放在tomcat上,jboss等免费容器里。
DB : 主要 mysql,postgresql,mongodb 等主要以免费的数据库为主。
Cache : 流行的redis.
2.Session 共享
大家都知道 HTTP 请求是一种无状态的请求,每次请求都会在Server端生成一个sessionId,可是这个sessionId每次又都是不一样的,
尤其是在集群,分布式部署的时候,更是比较麻烦,无法做到一次登录,多次访问。所以为了解决一次登录,多次访问的问题,就需要做 session 共享。
而redis做为可替换 memchached而存在的新一代分布式缓存,自然是处理sessionId的理想选择.
3.集群部署
首先先说说什么是集群:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。
集群通俗的说就是:就是tomcat下的程序都是一样的,比方说给你了五台机器,每台机器上都有一个tomcat8,
每个tomcat下都有6个项目,6个项目一起运行实现了一套业务流程。
用一个机器,一个tomcat可以完成这套业务流程,但是却给了五台,这就是 集群。
集群的好处是:即便有四台服务器都挂掉了,但这套业务就可以正常运行,不会影响使用,只是性能会比较低。
4.分布式部署
容器间的分布式部署(伪分布式).
拿上面的例子来说,容器之间的分布式部署可以看做是在同一台机器上,有六个tomcat,通过nginx反向代理服务,正常情况下是这六个tomcat都运行正常,这套业务也就能正常使用。
但是要是其中有一台tomcat因为某种原因挂掉了之后,这套服务就挂掉了,此时只需要:ps aux|grep tomcat 命令看看哪个tomcat挂掉了,重启就ok了。彼此之间的管理和关联
不像是集群中那样紧密,但是要是这台机器挂掉,那就彻底的挂掉了。
机器间的分布式部署(正式).
就像容器之间的分布式部署一样,需要六台机器,每台机器放一个tomcat去实现一个业务模块,整个六台机器都正常运行的时候,这套业务才能正常运行,否则这套业务就会挂掉,这样
的好处是:即使某一台机器挂掉了,只要让这台机器能正常运行的话,就可以让这套业务跑起来,同伪分布式不同的是:坏掉一台机器,只是这套系统中的某个或某些功能不能使用。
5.负载均衡
负载均衡就是将负载(工作任务、访问请求等)进行平衡、分摊到多个操作单元(服务器、组件等)上进行执行,是解决高性能,单点故障(高可用,如果你是单机版网络,一旦服务器挂掉了,那么用户就无法请求了,但对于集群来说,一台服务器挂掉了,负载均衡器会把用户的请求发送给其他的服务器进行处理),扩展性(这里主要是指水平伸缩)的终极解决方案。
负载均衡设备为Nginx(Free),F5(很贵,但是很稳定) 等.
0 0
- 小型互联网公司的一般架构
- 互联网平台的一般架构
- 【架构】小型创业公司的架构布局思考
- 一线互联网公司的架构实践
- 一般互联网公司通用的c++代码规范
- 互联网公司架构
- 互联网电商大数据一般架构
- 一般公司小型ASP+ACCESS网站开发流程
- 关于小型公司的管理
- 著名互联网公司架构设计
- Atitit 互联网 技术公司的组织架构 事业部 分公司
- 北京互联网技术大会, 有很多知名互联网公司的技术架构分享
- 致互联网人:一篇文章让你了解互联网公司的职位架构以及职能要求
- 互联网公司的人海战术
- 互联网公司的运营
- 杭州的互联网公司
- 互联网公司的简历
- 互联网产品的一般商业模式
- jenkins+sonar+maven+svn+tomcat集成
- Android缓存机制学习笔记
- linux 安装 nodejs
- 浅谈个人大数据
- Android测试
- 小型互联网公司的一般架构
- C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)目标是:从src数组的起始位置开始向后偏移star
- JavaScript 的闭包原理与详解
- morphia与spring的整合
- iOS开发:后台运行以及保持程序在后台长时间运行
- FreeMarker笔记
- linux命令打印字符串md5哈希后的值
- webpack shimming modules 引入第三方插件
- C#41课主要内容