当前位置: 首页 > news >正文

南浔哪有做网站的怎么做好网络推广销售

南浔哪有做网站的,怎么做好网络推广销售,appcms程序怎么做网站,网站代码关键词标题文章目录 一、社区系统架构组件概览1. 系统拆分2. CDN、Nginx静态缓存、JVM本地缓存3. Redis缓存4. MQ5. 分库分表6. 读写分离7. ElasticSearch 二、商城系统-亿级商品如何存储三、对账系统-分布式事务一致性四、统计系统-海量计数六、系统设计 - 微软1、需求收集2、顶层设计3、… 文章目录 一、社区系统架构组件概览1. 系统拆分2. CDN、Nginx静态缓存、JVM本地缓存3. Redis缓存4. MQ5. 分库分表6. 读写分离7. ElasticSearch 二、商城系统-亿级商品如何存储三、对账系统-分布式事务一致性四、统计系统-海量计数六、系统设计 - 微软1、需求收集2、顶层设计3、系统核心指标4、数据存储 七、如何设计一个微博 一、社区系统架构组件概览 一个非常简易的系统架构大致如下 接下来就以上图为例剖析每个组件的作用。 1. 系统拆分 通过DDD领域模型对服务进行拆分将一个系统拆分为多个子系统做成微服务。微服务设计时要尽可能做到少扇出多扇入根据服务器的承载进行客户端负载均衡通过对核心服务的上游服务进行限流和降级改造。 一个服务的代码不要太多1万行左右两三万撑死了吧。 大部分的系统是要进行多轮拆分的第一次拆分可能就是将以前的多个模块该拆分开来了比如说将电商系统拆分成订单系统、商品系统、采购系统、仓储系统、用户系统等等吧。 但是后面可能每个系统又变得越来越复杂了比如说采购系统里面又分成了供应商管理系统、采购单管理系统订单系统又拆分成了购物车系统、价格系统、订单管理系统。 2. CDN、Nginx静态缓存、JVM本地缓存 利用Java的模板thymeleaf可以将页面和数据动态渲染好然后通过Nginx直接返回。动态数据可以从redis中获取。其中redis里的数据由一个缓存服务来进行消费指定的变更服务。 商品数据每条数据是10kb。100条数据是1mb10万条数据是1g。常驻内存的是 200万条商品数据占用内存是20g仅仅不到总内存的50%。目前高峰期每秒就是 3500qps左右的请求量。 3. Redis缓存 Redis cluster10台机器5主5从5个节点对外提供读写服务每个节点的读写高峰QPS可能可以达到每秒5万5台机器最多是25万读写请求每秒。 注一般一台Redis实例最大能承受的QPS在16万左右。 32G内存 8核CPU 1T磁盘但是分配给Redis进程的是10g内存一般线上生产环境Redis的内存尽量不要超过10g超过10g可能会有问题。 因为每个主实例都挂了一个从实例所以是高可用的任何一个主实例宕机都会自动故障迁移Redis从实例会自动变成主实例继续提供读写服务。 4. MQ 可以通过消息队列对微服务系统进行解耦异步调用的更适合微服务的扩展。 同时可以应对秒杀活动中的高并发写请求比如kafka在毫秒延迟基础上可以实现10w级吞吐量。 同时可以使用消息队列保证分布式系统最终一致性。 5. 分库分表 分库分表可能到了最后数据库层面还是免不了抗高并发的要求好吧那么就 将一个数据库拆分为多个库多个库来扛更高的并发然后将一个表拆分为多个 表每个表的数据量保持少一点提高sql跑的性能。在通讯录、订单和商城商品模块超过千万级别都应及时考虑分表分库。一般单表保存的数据尽量不要超过4千万,否则查询性能可能受损数据过大时及时考虑分表处理实际在需求初期就应该调研量级考虑分表方案。 6. 读写分离 读写分离这个就是说大部分时候数据库可能也是读多写少没必要所有请求都 集中在一个库上吧可以搞个主从架构主库写入从库读取搞一个读写分离。读流量太多的时候还可以加更多的从库。比如统计监控类的微服务通过读写分离只需访问从库就可以完成统计例如使用ES完成统计诉求读从库即可。 7. ElasticSearch Elasticsearch简称es。es是分布式的分布式天然就可以支撑高并发因为动不动就可以扩容加机器来扛更高的并发。那么一些比较简单的查询、统计类的操作比如运营平台上的各地市的汇聚统计还有一些全文搜索类的操作比如通讯录和订单的查询都很适合用es存储。 二、商城系统-亿级商品如何存储 基于Hash取模、一致性Hash实现分库分表。 高并发读可以通过多级缓存应对。 大促销热key读的问题通过 redis集群本地缓存限流key加随机值分布在多个实例中。 高并发写的问题通过基于Hash取模、一致性Hash实现分库分表均匀落盘。 业务分配不均导致的热key读写问题可以根据业务场景进行range分片将热点范围下的子key打散。 具体实现 预先设定主键的生成规则根据规则进行数据的分片路由但这种方式会侵入商品各条线主数据的业务规则更好的方式是基于分片元数据服务器即每次访问分片前先询问分片元服务器再路由到实际分片不过会带来复杂性比如如何保证元数据服务器的一致性和可用性。 三、对账系统-分布式事务一致性 尽量避免分布式事务单进程用数据库事务跨进程用消息队列。 主流实现分布式系统事务一致性的方案 最终一致性也就是基于MQ的可靠消息投递的机制 基于重试加确认的的最大努力通知方案。 理论上也可以使用2PC两阶段提交、3PC三阶段提交、TCC短事务、SAGA长事务方案但是这些方案工业上落地代价很大不适合互联网的业界场景。针对金融支付等需要强一致性的场景可以通过前两种方案实现。 本地数据库事务原理undo log原子性 redo log持久性 数据库锁原子性隔离性 MVCC隔离性 分布式事务原理全局事务协调器原子性 全局锁隔离性 DB本地事务原子性、持久性 MQ方式实现一致性应该保证以下两点 要求下游MQ消费方一定能成功消费消息。否则转人工介入处理。千万记得实现幂等性。 四、统计系统-海量计数 中小规模的计数服务万级 中小规模量级最常见的计数方案是采用缓存DB的存储方案。当计数变更时先变更计数DB计数加 1然后再变更计数缓存修改计数存储的Memcached或Redis。这种方案比较通用且成熟但在高并发访问场景支持不够友好。 在互联网社交系统中有些业务的计数变更特别频繁比如微博feed的阅读数计数的变更次数和访问次数相当每秒十万到百万级以上的更新量如果用DB存储会给DB带来巨大的压力DB就会成为整个计数服务的瓶颈所在。即便采用聚合延迟更新DB的方案由于总量特别大同时请求均衡分散在大量不同的业务端巨大的写压力仍然是DB的不可承受之重。 大型互联网场景百万级 百万及以上量级建议直接把计数全部存储在Redis中通过 hash 分拆的方式可以大幅提升计数服务在Redis集群的写性能通过主从复制在master后挂载多个从库利用读写分离可以大幅提升计数服务在Redis集群的读性能。而且Redis有持久化机制不会丢数据。 但也不是万无一失的要以下方面要考虑。 一方面Redis作为通用型存储来存储计数内存存储效率低。以存储一个key为long(8字节型id、value为4字节的计数为例Redis至少需要65个字节左右以为要记录很多其他元信息不同版本略有差异。但这个计数理论只需要占用12个字节即可。内存有效负荷只有12/6518.5%。如果再考虑一个long型id需要存4个不同类型的4字节计数内存有效负荷只有(816)/(65*4) 9.2%。 另一方面Redis所有数据均存在内存单存储历史千亿级记录单份数据拷贝需要10T以上要考虑核心业务上1主3从需要40T以上的内存再考虑多IDC部署轻松占用上百T内存。就按单机100G内存来算计数服务就要占用上千台大内存服务器。存储成本太高。 微博、微信、抖音亿级 亿级别数据应该考虑通过以下方式存储 定制数据结构共享key 紧凑存储提升计数有效负荷率超过阈值后数据保存到SSD硬盘内存里存索引冷key从SSD硬盘中读取后放入到LRU队列中自定义主从复制的方式海量冷数据异步多线程并发复制 六、系统设计 - 微软 1、需求收集 确认使用的对象 ToC高并发ToB高可用 系统的服务场景 即时通信低延迟游戏高性能购物秒杀-一致性 用户量级 万级双机百万集群亿级弹性分布式、容器化编排架构百万读3主6从每个节点的读写高峰QPS可能可以达到每秒5万可以实现15万30万读性能亿级读: 通过CDN、静态缓存、JVM缓存等多级缓存来提高读并发百万写: 通过消息队列削峰填谷通过hash分拆水平扩展分布式缓存亿级写: redis可以定制数据结构、SSD内存LRU、冷数据异步多线程复制持久化: Mysql承受量约为 1K的QPS读写分离提升读并发分库分表提升写并发 2、顶层设计 核心功能包括什么 写功能发送微博 读功能热点资讯 交互点赞、关注 3、系统核心指标 系统性能和延迟 边缘计算 | 动静分离 | 缓存 | 多线程 | 可扩展性和吞吐量 负载均衡 | 水平扩展 | 垂直扩展 | 异步 | 批处理 | 读写分离 可用性和一致性 主从复制 | 哨兵模式 | 集群 | 分布式事务 4、数据存储 键值存储 : Redis ( 热点资讯 ) 文档存储 : MongoDB ( 微博文档分类) 分词倒排Elasticsearch搜索 列型存储Hbase、BigTable大数据 图形存储Neo4j 社交及推荐 多媒体FastDfs图文视频微博 七、如何设计一个微博 实现哪些功能 筛选出核心功能Post a TweetTimelineNews FeedFollow/Unfollow a userRegister/Login 承担多大QPS QPS 100那么用我的笔记本作Web服务器就好了QPS 1K一台好点的Web服务器也能应付需要考虑单点故障QPS 1m则需要建设一个1000台Web服务器的集群考虑动态扩容、负载分担、故障转移一台SQL Database Mysql承受量约为1K的QPS一台NoSQL Database (Redis) 约承受量是20k的QPS一台NoSQL Database (Memcache) 约承受量是200k的QPS 微服务战略拆分 针对不同服务选择不同存储 设计数据表的结构 基本差不多就形成了一个解决方案但是并不是完美的仍然需要小步快跑的不断的针对消息队列、缓存、分布式事务、分表分库、大数据、监控、可伸缩方面进行优化。
http://www.dnsts.com.cn/news/74938.html

相关文章:

  • 西安专业房产网站建设李沧做网站
  • 网站建设与维护方式大专ui设计师工资一般多少
  • 广州哪里有做网站推广企业管理系统的构成状况
  • 深圳网站设计服务找哪家邯郸服务
  • pc端网站建设联系方式私募基金公司网站建设
  • 重庆建站公司哪个好丹东黄页网
  • 甘肃省建设类证书查询网站株洲建设局网站
  • 建站公司 网络服务松原建设局网站
  • 福建住房与城乡建设部网站宝安-网站建设信科网络
  • 互联网站点全网营销新胜天下
  • 重庆企业建站模板帮小公司代账一个月费用
  • 网站数据库设计模板北京广告设计制作公司
  • 网站被黑了多久恢复wordpress js调用新闻
  • 郑州大学网页设计与网站建设wordpress tag列表页面
  • 企业自助建站网如何夸奖一个网站做的好
  • 网站建设it柳州最强的网站建设
  • 莆田网站 建设建站之星如何建网站
  • 校园网站建设报告浏览器网页版打开网页
  • 桌面软件开发跟网站开发那个免费手机网站模板下载
  • 做网站要用到什么软件做网站需要交接什么
  • 适合网站开发的框架建筑方案设计收费标准
  • 北京地区网站制作公司上海大规模网站建设平台
  • 有什么网站可以在线做试题淘宝作图在哪个网站上做图
  • 做动画片的网站西安网站建设服务商
  • 网站收录提交创网易账号
  • 河南省建设监理协会网站人才十深圳竞价网站
  • 小说网站做编辑wordpress保存远程图片
  • 官方网站建设 省心磐石网络简约网站模版
  • 网站在线优化检测临安市建设局门户网站
  • Dw做网站怎么加logo绿色食品销售网站建设