前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >架构师之路-创业互联网公司如何搭建自己的技术架构

架构师之路-创业互联网公司如何搭建自己的技术架构

原创
作者头像
李鹏
发布于 2017-09-30 01:31:20
发布于 2017-09-30 01:31:20
2K0
举报
文章被收录于专栏:李鹏的专栏李鹏的专栏

适用范围

本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活

本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍,技术架构的介绍课程后面有地址,可以点进去查看。

技术指标

说一下一些技术指标的计算过程可以作为其他同学的参考

QPS, 如果是5万日活,使用集中在每天的4小时,每个用户大概产生100的请求,那么平均下来,我们系统大概应该支撑的请求为:50000 100 / (4 60 * 60) = 350 qps/s

业务数据 业务量,我们自己是新闻业务,可能会有其他的业务,比如游戏,商城等等,基本每天新增的业务数据都会在同一个量级, 每日10000, 另外跟用户相关的信息也是比较大的一块,比如用户的订阅等行为,一共5万的用户,保存相关信息可能大概需要100条的数据。

缓存大小 主要业务数据和用户相关的热点数据限时保存在缓存中, 大概需要5个G左右。

日志大小 用户日志和请求日志。 大概每天3个G左右

技术架构

整体架构因为是小公司,我们基于阿里云来搭建,对图中的内容和技术选型进行一下说明:

负载均衡

可选方案: SLB, Nginx.

SLB要收钱,但是比较便宜,有保证,不会挂。 但是可配置的很少,不能根据域名做ip映射

Nginx, 没啥缺点,需要一定的知识。

建议: SLB + Nginx, SLB绑定域名作为统一的入口,然后每个服务器上再搭建Nginx.

CDN

用于缓存静态文件等等。 七牛和阿里的都还可以。

七牛要做的久一点, 各种图片处理的接口要完善一些

阿里的CDN要稍微好一点点, 但是没有不安全的访问方式,访问稍微没有那么灵活。 图片处理功能弱一点。

分布式调用框架

目前可选的有ZK + dubbo. ZK + Motan, ZK + dubbox, edas。

dubbo, 阿里的服务治理框架,已经不维护了,切换反应有点慢

dubboX, 当当基于dubbo搞的,还在维护可以一用,推荐。

Motan, 微博的服务治理矿建, 刚开源,需要学习一下, 推荐。

Edas, 阿里云服务,要收钱,侵入型很强,不推荐

MQ

可选的有: ActiveMQ, rocketMQ, robbitMQ,Kafka

各有好处, 但是考虑到运维的难度,推荐rocketMQ。

Redis

用来做缓存, 自建成本有点高,需要Codis, 分片,集群,主从等等,很麻烦。 建议直接用阿里的

数据库

主要基于读写分离和主从复制考虑,目前可以自建和选用阿里的DRDS。

DRDS 要花钱,成本较高,没有必要

自建, 不用中间件,直接1写2只读, 然后配置读写分离的数据源,内网SLB进行读集群。解决之。

搜索

建议ELK, 可以自动同步数据库,除了搜索引擎的功能外,还可以做日志搜索,监控系统。

一些典型的业务场景说明

把业务底层做成SOA模块,通过分布式调用框架对外提供服务。

后期进行SOA到微服务的改造都会涉及。

单独做一个小的系统来运行定时任务

热点数据放缓存,然后通过MQ来更新缓存

日志等数据有必要可以考虑上个Mongo

架构师之路:http://www.roncoo.com/course/view/ae1dbb70496349d3a8899b6c68f7d10b

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
创业互联网公司如何搭建自己的技术架构
本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活。本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍。
用户1516716
2019/12/30
7640
创业互联网公司如何搭建自己的技术架构
cnblogs.com/huojg-21442/articles/8194348.html
用户5224393
2020/02/20
1.4K1
创业互联网公司如何搭建自己的技术架构
参考:创业公司搭建自己的技术架构
cnblogs.com/huojg-21442/articles/8194348.html
良月柒
2020/02/21
8870
技术架构的选择决定公司的格局范围
本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活。本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍。
技术zhai
2019/02/15
8890
架构师必备词汇和知识点
01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机制(上
Java高级架构
2018/04/19
1.8K0
架构师必备词汇和知识点
从零开始搭建创业公司后台技术栈
有点眼晕,以上只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大后台的概念,放在服务器上的东西都属于后台的东西,比如使用的框架,语言,数据库,服务,操作系统等等,整个后台技术栈我的理解包括4个层面的内容:
搜云库技术团队
2019/11/11
8380
从零开始搭建创业公司后台技术栈
一个牛逼的创业公司后台技术栈搭建方案
在大多数创业公司,因为没有大公司那些完善的基础设施,需要从开源界的一个个系统和组件做选型,最终形成整个的后台技术栈。
Java帮帮
2019/05/20
1.7K0
一个牛逼的创业公司后台技术栈搭建方案
创业公司 互联网架构方案 整体技术栈 基础设施 数据库 服务治理 消息中间件 日志系统 ELK 自动化部署
【图1】 计算机语言 有点眼晕,以上只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大后台的概念,放在服务器上的东西都属于后台的东西,比如使用的框架,语言,数据库,服务,操作系统等等,整个后台技术栈我的理解包括4个层面的内容: 语言: 用了哪些开发语言,如:c++/java/go/php/python/ruby等等; 组件:用了哪些组件,如:MQ组件,数据库组件等等; 流程:怎样的流程和规范,如:开发流程,项目流程,发布流程,监控告警流程,代码规范等等; 系统:系统化建设,上面的流程需要有系统来保证,如:规范发布流程的发布系统,代码管理系统等等; 结合以上的的4个层面的内容,整个后台技术栈的结构如图2所示:
爱明依
2019/03/12
9490
微服务 | 资深架构师解读如何使用微服务架构
备注:本文7000多字,可先收藏在阅读,精心总结,切勿盗权,认真读后,定会受益匪浅
码神联盟
2018/12/26
1.4K0
从 0 到 1,Java Web 网站架构搭建的技术演进
Linuxer
2017/11/01
3.1K0
从 0 到 1,Java Web 网站架构搭建的技术演进
技术那么多,说出你常用的那些【持续更新】
欢迎留言,说出你常用的技术 技术选型 ---- 网关:Nginx、Kong、Zuul 缓存:Redis、MemCached、OsCache、EhCache 搜索:ElasticSearch、Solr 熔断:Hystrix ---- 负载均衡:DNS、F5、LVS、Nginx、OpenResty、HAproxy 注册中心:Eureka、Zookeeper、Redis、Etcd、Consul 认证鉴权:JWT 消费队列:RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka ---- 日志收
Java帮帮
2018/12/12
5260
工具系列 | 从零开始搭建创业公司技术架构
创业公司由于时间、人员、资金等各方面的限制,系统需要的各个组件优先选择第三方服务,而不是自己搭建。一个创业开发项目都需要服务器操作系统、开发语言、web服务器、开发框架、数据库、缓存、静态文件存储、日志系统、业务监控、持续集成、代码管理、发布部署系统、文档管理等。现在按这些方面展开来讲。
Tinywan
2020/12/02
1.5K0
微服务架构技术有哪些_微服务架构组件
技术实现取决于需求,也就是微服务架构需要的考虑的基本技术问题。一个基本的微服务架构需要实现基本的五大核心功能:服务注册和发现、服务间通信、服务容错、数据管理和API网关,基本实现需求如下:
全栈程序员站长
2022/11/01
1.3K0
漫画:什么是架构师?
于是,小灰去向大黄请教 这是有关未来的故事: 从前,有一个赶路的人路过一片工地,看到三个年轻人在工地上搬砖。 于是,他问其中一个人: 于是,他又问了第二个人: 于是,他又问了第三个人: 十年之后~ 曾经说自己在建造城市的年轻人,成为了市长。 曾经说自己在搬砖的年轻人,成为了砖厂老板。 曾经说自己在搭建教堂的年轻人,最没出息,成为了架构师。 什么是架构师? 架构师英文architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当
企鹅号小编
2018/01/26
1.1K0
细数Java技术架构这些年的发展史
Java一度被称为是应用最广泛的编程语言。尤其在Java web方面,Java作为后台服务器开发语言,尤其是它跨平台一次编译随处运行的特性,更是受到不少企业和工程师们的爱戴。作为应用开发的主要语言,Java也需要借助其他很多优秀的框架,来实现系统或程序的完整性。针对不同的业务场景,选择合适的框架,是每一个架构师和工程师在开发一项软件之前,必须首先要考虑的事情。随着时代的进步和科技的发展,Java技术框架也在日新月异的进化。
程序大视界
2020/07/21
1.7K0
细数Java技术架构这些年的发展史
带你认识互联网架构的演变过程
1.分层开发:解决单体架构容错性差的问题,同时提高了代码的维护性。 2.MVC架构(Web应用程序的设计模式) 3.服务器的部署分离。 特点: 1.MVC分层开发:解决容错性问题。 2.数据库和项目部署分离。 问题: 1.高并发:随着用户访问量的持续增加,单台服务器无法满足用户访问需求。 解决方案: 1.集群
攻城狮Chova
2022/01/22
2970
SDCC 2015架构专场札记:一线互联网公司的架构实践
【编者按】11月21日,为期三天的SDCC2015中国软件开发者大会成功闭幕,主办方总计邀请了95余位演讲嘉宾,为参会者奉献了10个主题演讲,9大技术专场论坛(80余场技术演讲),另外还有5场特色活动。另外,据官方统计参会人数高达1067名(不含工作人员)。 其中20日的架构专场,现场听讲人数一度爆满,而没有机会亲临现场的童鞋们,我们特邀请了业内专家、与会者分享他们的听课感受及他们眼中的架构专场。以下是来自搜狗商业平台架构师么刚参加架构专场的听课札记,以飨读者。 以下为么刚的参会笔记: 航天信息股份有限公司
CSDN技术头条
2018/02/11
1.1K0
SDCC 2015架构专场札记:一线互联网公司的架构实践
架构师之路--谈业务的合理架构
  奶奶从路边捡来一只小鸡。它总是喳喳的叫,但是周末我坐在那里的时候,它就会蹲在我脚上,很安详的样子。然后小鲜肉就过来说:麻麻,我好想吓唬它。小鸡被吓的到处乱串。我说了挺多话没法让小鲜肉停下来。我就叹了口气在那里看着。一个5岁的孩子本来就不具备换位思考的能力。还有一个问题,我其实根本不知道小鸡是怎样想的。只是觉得它趴在我脚上的时候很安心很安静。晚上下班我会把手伸到笼子里陪它待一会儿,因为我想它是很想自己的妈妈的。   本文首发于静儿1986的博客,原文地址是http://www.cnblogs.com/xi
静儿
2018/07/02
3300
ACP互联网架构认证笔记-EDAS企业级分布式应用服务
EDAS支持语言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安装等编译工具。EDAS初级版仅支持应用的部署管理,不支持HSF功能。EDAS基础版不支持RPC框架。 EDAS提供高性能的RPC框架,能构建高可用的分布式系统,考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节。EDAS能单独部署到公司内网(轻量配置中心)。 EDAS HSF服务框架保证用户每次分布式调用的稳定与安全。在服务注册、服务订阅以及服务调用等环节都进行严格的服务鉴权。 HSF设置超时时间 : 通过HSF标签methodSpecials和clientTimeout进行配置,优先级由高到低是 : 客户端methodSpecials>客户端clientTimeout>服务端methodSpecials>服务端clientTimeout EDAS控制台域名 : https://edas.console.aliyun.com EDAS控制台提供日志浏览功能,可查看服务器上所部署的应用运行日志。收敛日志用于将单个应用中类似格式的日志合并和排序。收敛日志配置后需要等待大概5分钟才能生效。 EDAS安装轻量配置中心 : 启动配置中心将会占用此台机器的8080和9600端口,需要在hosts中添加 {轻量配置中心公网 ip} jmenv.tbsite.net。如果此台机器是多网卡的,可启动脚本startup.bat或startup.sh中添加启动参数: -Daddress.server.ip={指定的 IP 地址};通过 -Dhsf.server.ip参数指定要注册服务的IP。 EDAS 服务限流的限流规则(限流规则仅适用于服务提供者)能够从QPS和线程两个维度进行配置。可进行HSF限流和HTTP限流。 EDAS 提供了从响应时间维度对降级规则(降级规则仅仅适合服务消费者)的配置。 EDAS 鹰眼监控系统能够分析分布式系统的每一次系统调用、消息发送和数据库访问。主要包括应用拓扑(可查看调用拓扑和流量QPS),调用链查询(可查看慢业务和出错业务),调用链详情(基于TraceId查询)。 EDAS 提供报警功能,但目前只有短信与邮件通知的方式,报警联系人只能是主账号或者子账号。 EDAS 的应用主要分为两种类型:中间件服务化应用(JAR/WAR包类型的普通应用和Docker应用)和 Kubernetes 应用。Kubernetes应用只支持VPC网络。 EDAS 的应用部署类型有两种 : ECS独占实例(在一台独立的ECS机器上,仅允许部署单独一个应用),Docker实例(单个应用在同一ECS上只能部署一个实例),所以一台ECS可以部署多个实例。 EDAS 能够针对应用的服务调用情况,对服务的QPS、响应时间(RT)和出错率进行全方面的监控。 EDAS 能够针对应用的运行状态,对机器的CPU、内存、负载(Load)、网络和磁盘等基础指标进行详细的监控。EDAS还提供容器监控功能(应用诊断)。基础监控(可提供以应用为维度的数据)面向的是机器,容器监控面向是应用所在的容器。基础监控存在时延,容器监控基本是实时的。 EDAS 提供弹性伸缩功能来根据集群内服务器的CPU、RT和Load三个指标实现自动的扩容或者缩容。 EDAS 对应用的生命周期管理,包括创建、部署、启动/停止和删除(应用删除不可恢复)。可设置JVM参数,Tomcat参数,可对应用的实例分组(可按分组部署应用,添加实例到分组),可配置负载均衡。可配置健康检测URL。 EDAS 包含两种集群:Swarm(部署普通应用和Docker应用)和Kubernetes集群(部署Kubernetes应用)。 EDAS 的配置推送分为全局配置推送和应用内部的配置推送。全局配置推送能操作该用户的所有配置信息,应用内的配置推送只能操作该应用所属的配置信息。一个配置信息由三元组(group、DataId、Content)组成。 EDAS 提供主子账号体系,付费账号都是主账号(拥有EDAS所有资源,所有权限),但不是所有的主账号都是付费账号。1个付费账号最多能绑定5个主账号。RAM子账号由主账号在RAM系统中创建,子账号名要在主账号内唯一。RAM账号有两种授权方式 : RAM授权,EDAS授权(两种方式互斥,有了RAM授权,那么就不能在EDAS中授权),主账号可以对绑定的子账号(用户)进行权限分配、资源分配等。应用的授权只能是主账号对子账号进行授权。 EDAS 的资源主要是指云服务器ECS(Elastic Compute Service)、负载均衡SLB(Server Load Balancer)、专有网络VPC(Virtual Private Cloud)这三类。 VPC环境调用链和监控数据需要有访问请求流量才会产生,如果无客户访问网站,
freesan44
2018/11/07
2.9K0
互联网后端技术栈大全,建议收藏!
点击关注公众号,Java干货及时送达 来源:https://github.com/superhj1987/pragmatic-java-engineer/blob/master/book/chapter1-servertech/server-basic.md 使用Java后端技术的目的就是构建业务应用,为用户提供在线或者离线服务。因此,一个业务应用需要哪些技术、依赖哪些基础设施就决定了需要掌握的后端技术有哪些。 纵观整个互联网技术体系再结合公司的目前状况,笔者认为必不可少或者非常关键的后端基础技术/设施如
Java技术栈
2022/03/20
1.9K0
推荐阅读
相关推荐
创业互联网公司如何搭建自己的技术架构
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档