NewStar 信息分发系统设计
NewStar 信息分发系统设计
我们在全世界发布网站本质就是向全世界分发我们的信息给客户/潜在客户,然后希望促成生意。
我想要怎么做
先说一个比喻,这个就是我的指导思想:如果我们的村子需要水,我们怎样为村子提供水?一种是每天派人去挑水,另一种时修建一个给水系统。其实两种方式都有优劣,无所谓好坏,但我希望像后者那样去做事,因为你挑水,一天和10年没有区别,但建立系统则有质的改变。我们去一个一个写单个网站,就是在每天挑水;去搭建一个信息分发系统则就是在建立给水系统。
系统流程图
解释和初步的模板展示
CDN:消息分发网络,用户访问我们的网站往往不是访问的源码站,因为用户在全世界各地,而网站只部署在一个地方,那就会出现访问异常地慢甚至导致请求超时无法访问。而是在全世界各地建立边缘服务器,然后将数据缓存在边缘服务器,这样用户就能就近访问,速度就会非常地快,比如随便什么时候什么地方输入baidu.com速度都很快,那就是百度在全国全世界都部署了大量服务器。这个可以不需要自己部署,可以去熟悉公共CDN,使用Akamai、阿里CDN等商业CDN就能搞定,价格也不贵( https://www.akamai.com/cn/zh/ )。
web server:每一个网站都是我们部署地一台网页服务器,用户向我们地网页服务器发起请求,我们把数据回复给它,然后浏览器解析呈现。部署服务器,我们可以使用docker 容器来批量部署,就是根据不同地区不同内容分类部署多个服务器,并且每一个站点都部署多个这样任何一个出现宕机网络问题等不可用时,都能保证用户能正常访问我们地网站。docker容器部署非常方便,成本也很低。
网页模板:前端展示的网页,使用模板来完成,找开源模板来用熟悉然后自己修改并格式化来方便我们填充数据。从本质上讲,用户在网页上看到的东西就是两个:样式+数据。样式就是各种展现样式方便用户获取数据,数据才是用户要获取的。写网页模板的思路就是将样式与数据分离,样式写好,模板拿来复用,里面的数据才是决定我们展示的内容。
找开源模板的原因就是:可以获取文档和源码,这样能很方便改,去找别人的网站呈现出来的反过来改往往效果差很远特别是需要与Java后台代码对接
4.Admin后台:后台是我们系统的直接展示点,因为从管理员来说使用的就是admin系统,其他的模块都可以不用关系,只需要让运维去负责维护就行了。如果要修改网站的信息,比如更新商品的数据,就在admin系统上修改数据库里的数据,然后数据推送到CDN缓存,前端页面数据刷新就完成了修改,也就是当网页模板定义好后,就再也不需要去修改网页,直接修改后台数据就修改网页了。比如,我自己练习的商城项目后台( http://120.27.227.49:8080 )就是如此:
同时Admin也负责对数据整理分析,这些都是可以使用模板完成,比如:( https://adminlte.io/themes/AdminLTE/index2.html )对,我的项目就是直接使用的这个开源模板
5.Application Server:服务监控,如此多的服务和主机如果出现问题,怎么处理,同时管理这么多的主机也不可能,一台一台去管理。同时如果我们要加入新的网站怎么办。办法就是整个系统使用Java EE框架 Spring Cloud 微服务方式开发,这样能非常好的实现服务的治理和扩展。当我们需要增加网站时就只需要在数据库里添加数据,然后使用模板生成容器数据部署到新的docker容器了并注册到Spring Cloud中。这一切都不需要再去写网页。
NewStar 信息分发系统设计的更多相关文章
- ViewGroup事件分发机制解析
最近在看View的事件分发机制,感觉比复杂的地方就是ViewGrop的dispatchTouchEvent函数,便对照着源码研究了一下.故名思意这个函数起到的作用就是分发事件,在具体分析之前还要说明几 ...
- rabbitMq及安装、fanout交换机-分发(发布/订阅)
<dependency> <groupId>com.rabbitmq</groupId> <artifactId& ...
- 建议47:使用logging记录日志信息
# -*- coding:utf-8 -*- ''' Python中自带的logging 模块提供了日志功能,它将logger 的level 分为5 个级别 DEBUG 详细的信息,在追踪问题的时候使 ...
- Android事件分发机制二:viewGroup与view对事件的处理
前言 很高兴遇见你~ 在上一篇文章 Android事件分发机制一:事件是如何到达activity的? 中,我们讨论了触摸信息从屏幕产生到发送给具体 的view处理的整体流程,这里先来简单回顾一下: 触 ...
- Android事件分发机制五:面试官你坐啊
前言 很高兴遇见你~ 事件分发系列文章已经到最后一篇了,先来回顾一下前面四篇,也当个目录: Android事件分发机制一:事件是如何到达activity的? : 从window机制出发分析了事件分发的 ...
- 问你觉得iOS7为什么要扁平化,扁平化和之前的比有什么优势
问你觉得iOS7为什么要扁平化,扁平化和之前的比有什么优势 苹果首席设计师谈为何会在iOS上选择扁平风格http://ndnews.oeeee.com/html/201306/11/71078.htm ...
- Zookeeper 的学习与运用
引子 云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群.服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点? ...
- rabbitMQ第三篇:采用不同的交换机规则
在上一篇我们都是采用发送信息到队列然后队列把信息在发送到消费者,其实实际情况并非如此,rabbitMQ其实真正的思想是生产者不发送任何信息到队列,甚至不知道信息将发送到哪个队列.相反生产者只能发送信息 ...
- ICE系列之2——ICE的服务与好处
ice服务: IcePack 我们在第 12 页提到过, IcePack 是 Ice 的定位服务,用于在使用间接绑定时把符号性的 (symbolic)适配器名解析为协议-地址对. 除了 ...
随机推荐
- myeclipse保存时弹出Building workspace
最近做项目,每次保存修改的东西.myeclipse都会building workspace(重新编译)一下.并且那 building的速度真不够慢的啊. 严重影响编程速度. 在网上也发现遇到此问题的很 ...
- Go中使用动态库C/C++库
转自:http://studygolang.com/articles/1441 最近需要做一些在go中使用动态C++库的工作,经常碰到找不到动态库路径这种情况,所以就花点时间,专门做一下实验来了解Go ...
- 【转】Jquery折叠效果
转自:http://www.cnblogs.com/clc2008/archive/2011/10/25/2223254.html <!DOCTYPE html PUBLIC "-// ...
- python操作sql server2008 pyodbc
使用Python通过PyODBC连接数据的注意事项 今天使者用PyODBC连接数据库,试了很久才出来,现把一些心得体会和大家分享! 一.PyODBC的下载地址: http://code.google. ...
- JavaScript 异常 Exceptions
JavaScript提供了一套异常处理机制. 异常是干扰程序的正常流程的不寻常(但并非完全是出乎意料的)的事故. 当发现这样的事故时,你的程序应该抛出一个异常. throw语句中断函数的执行. 它应该 ...
- Android常见内存泄露,学会这六招优化APP性能
很多开发者都知道,在面试的时候会经常被问到内存泄露和内存溢出的问题. 1.内存溢出(Out Of Memory,简称 OOM),通俗理解就是内存不够,即内存占用超出内存的空间大小. 2.内存泄漏(Me ...
- request.form()和request()的区别
Request.Form:获取以POST方式提交的数据(接收Form提交来的数据):Request.QueryString:获取地址栏参数(以GET方式提交的数据)Request:包含以上两种方式(优 ...
- The instance of entity type 'xxxx' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked.
一.问题描述 问题:The instance of entity type 'xxxx' cannot be tracked because another instance with the sam ...
- [转]centos7.2 下 nginx 开机启动
1.在系统服务目录里创建nginx.service文件 vi /lib/systemd/system/nginx.service 内容如下 [Unit] Description=nginx After ...
- elasticsearch shard 和 replica
(1)index包含多个shard(2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力(3)增减节点时,shard会自动在nodes中负载均衡(4) ...