当你的才华不能撑起你的野心时,就是你该选择学习的时候了!

community framework design

服务:
  SSO单点登录+Auth2.0认证+签名/验签。
  授权服务,机构/会员授权。
  资源存储服务,图书/视频/音频/期刊/报纸。
  业务逻辑服务,获取分类/资源/机构资源/机构权益/机构资源统计/会员权益。
  日志服务,记录到本地文件。
服务性能:
  并发优化、大数据量查询优化
客户端平台:
  微信小程序/微网站/网站/安卓App/苹果App/桌面应用/HTML5桌面应用
技术:
  集群(最常见的三种集群类型:负载均衡集群,高可用性集群,高并发性集群。集群是个物理概念,是指同一个系统,部署在多台服务器上,将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。)
  分布式(分布式侧重将一个系统拆分成多个业务单元,例如一个门户网站里面可能有登录、视频、图片等,每一个都可以拆分出来独立部署,而且每一个都可以弄成集群,视频服务集群,图片服务集群,主系统可以对这些子系统进行调用,子系统之间可以有调用关系也可以没有,看实际业务情况。
  负载均衡(负载均衡是指将请求分摊到多个操作单元也就是分开部署的服务器上,nginx是常用的反向代理服务器,可以用来做负载均衡。)
  DNS
  微服务、CI/CD、Redis、消息队列MQ、.NetCore、工作流、规则引擎。
  IIS动态发布网站。获取微信消息。
  阿里云对象存储或者阿里云云盘存储。
  DDD(Domain-Driven Design 领域驱动设计)参考
  异步多线程、进程
  Linux下常用命令
  Mongodb、Redis
  Windows Azure
业务:
  阅读模式,幼儿,青少年,成人。
  每个听书后边都可以跟一首歌。
前端模块:
  首页
    搜索(图书、视频、音频、期刊、报纸、搜索结果展示),轮播,频道模块,猜你喜欢+查看全部,有声小说+查看全部,
  分类
    有声书,畅销书,儿童,相声评书,情感生活,人文,历史,国学书院,音乐,英语,教育培训,健康养生,广播剧,戏曲。
  收藏
    我的收藏、精品收藏、收听历史、观看历史、我的礼包。
  我的
    头像,昵称,签到,客服。定时关闭,夜间模式,意见反馈,切换账号。
后台模块:
  机构后台
    机构信息维护、机构资源维护、机构资源统计、机构会员使用习惯分析(图表)
  内容管理后台
    资源管理
      资源录入、审核、分类、预览
    机构管理
      机构信息录入、审核、授权(机构Banner、机构模块、机构资源、机构管理员设置)
    会员管理
      会员审核、授权(开卡、激活)
    组织机构和员工管理
      公司组织机构维护、员工维护
    后台功能和权限管理
      后台功能维护、授权
服务器选择:
  CentOS7.6
  Windows Server 2016
开发框架:
  mvc、vue、bootstrap、layui、瀑布流布局
开发平台/语言:
  vs.net c#、android、ios、nodejs
版本控制:
  TFS、SVN、Gitee
数据库设计:
  sqlserver、sqlserver express、mysql
开发方式:
  敏捷开发
可交付物:
   各服务Wiki、开发文档、Api文档、Demo、单元测试。
CI/CD:
  自动部署
技术点:
  react、angular、vue、es6(ECMAScript 6)、Vue.js最佳实践(五招让你成为Vue.js大师)powershell、shell、vsts(Visual Studio Team System即是Azure DevOps)、Azure DevOps
  数据库索引 参考、EF级联关系
  ORM、UML
  IIS(Internet Information Services 互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。反向代理可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。通过IIS安装反向代理,可以使得IIS和Apache等服务器运行在同一台机器上,IIS和Apache都可以通过80端口访问,使得网站的兼容性更强。IIS实现反向代理有两种方法,IIS6通过第三方工具ISAPI Rewrite来实现反向代理,IIS7以后的版本可以用过微软自己的URL Rewrite和Application Request Routing来实现反向代理。
  Nginx 参考
  
知识点:
  Golang(Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。没有泛型)
  Dart Flutter
  Elixir
  Julia
  Kotlin
  Lua
  Pharo
  Rust
  TypeScript
  WebAssembly
  Electron(跨平台桌面应用开发框架,建立在Chromium和Node.js之上的,二位分工明确,一个负责界面,一个负责背后的逻辑,electron的精华就是”使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用”。
  桌面应用程序,又称为 GUI 程序(Graphical User Interface),但是和 GUI 程序也有一些区别。需要熟练掌握前端的基础知识html,css,js,有一定的node基础。弊端:打包出来的APP太大,窗口不能使用个性化的背景图案。)
  WebRTC
  QT(是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone, 嵌入式系统 QNX、VxWorks 等等)
  MFC(MFC(Microsoft Foundation Classes)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境)
  Weex(框架能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。对于移动开发者来说,Weex主要解决了频繁发版和多端研发两大痛点,同时解决了前端语言性能差和显示效果受限的问题。开发者可通过Weex官网申请内测。开发者只需要在自己的APP中嵌入Weex的SDK,就可以通过撰写HTML/CSS/JavaScript来开发Native级别的Weex界面。Weex界面的生成码其实就是一段很小的JS,可以像发布网页一样轻松部署在服务端,然后在APP中请求执行。微信小程序会比他优秀一些,但跨端效果比较好,可以部署在微信/支付宝等小程序)
  RN(使用JavaScript和React编写原生移动应用,React Native使你只使用JavaScript也能编写原生移动应用。 它在设计原理上和React一致,通过声明式的组件机制来搭建丰富多彩的用户界面。React Native产出的并不是“网页应用”, 或者说“HTML5应用”,又或者“混合应用”。 最终产品是一个真正的移动应用,从使用感受上和用Objective-C或Java编写的应用相比几乎是无法区分的。 React Native所使用的基础UI组件和原生应用完全一致。 你要做的就是把这些基础组件使用JavaScript和React的方式组合起来。React Native完美兼容使用Objective-C、Java或是Swift编写的组件。 如果你需要针对应用的某一部分特别优化,中途换用原生代码编写也很容易。 想要应用的一部分用原生,一部分用React Native也完全没问题 —— Facebook的应用就是这么做的。中文网:https://reactnative.cn/)
  Facebook(Facebook中文译为脸书或者脸谱网,是美国的一个社交网络服务网站)
  Node-Webkit是一个基于Chromium和Node.js运行平台。它能让你把HTML5应用打包成本地桌面应用或游戏安装到Windows、Linux或Mac系统中。PhoneGap、Pokki、Chrome Package Apps或Mozilla XUL Runner都是开发HTML5本地桌面应用的框架。
  easy-window | HTML5桌面应用程序开发,不需要掌握java 、C++等语言,只需要html、css、js,参考。java swing 也可以做桌面应用开发。
  BPM(即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA、MBA等均将BPM包含在内。通常,BPM也指针对流程管理的信息化系统,其特点是注重流程驱动为核心,实现端到端全流程信息化管理。技术版本分Java BPM和.Net BPM。)
  RPA(机器人流程自动化 Robotic Process Automation)
  SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。
  IaaS: Infrastructure-as-a-Service(基础设施即服务)
  PaaS: Platform-as-a-Service(平台即服务)
  REngine()
  Nrules(NRules 是 .NET 的开源生产规则引擎,基于 Rete 匹配算法。 使用 C# 内部 DSL 编写规则。支持 .NET Core,使用简单而功能不失强大。NRules 也是一个推理引擎,与脚本引擎不同,它没有预定义的顺序来执行规则。相反,推理引擎根据给出的事实确定应该激活哪些规则,然后根据冲突解决算法执行它们。)

  NRules 由 Sergiy Nikolayev 开发维护,基于 MIT 开源:

 
DDD概述:
微服务架构发展阶段:
网易云轻舟微服务:

 

 

 IIS实现反向代理:
 
 Drools操作流程:

 

 

 

 

 

 工作流表设计:

 

 BPM企业架构之流程管理:

 

 BPM企业级流程应用:

 

 BPM架构图:

 

 

系统基本架构:

 企业及项目工作一体化:

 

 

 

大型网站架构图:

从左边开始,先是CDN服务器和反向代理服务器,都用于缓存一些用户需要请求的资源。两者的区别在于CDN部署在网络提供商的机房,用户可以就近获取;反向代理则部署在网站中心机房。使用CDN和反向代理的目的都是尽快返回数据给用户。这样可以加快返回用户资源的速度,也减轻了后端服务器的负载压力。
往下走,是一台负载均衡调度服务器,用于将用户的请求发送到服务器集群上。这里面A,B应用服务器可以是Tomcat服务器集群,只不过它上面只部署了Action,也就是我们平时写的controller层的代码。在这里面去调用被分别部署在不同服务器上的业务层代码(大型网站会进行业务拆分,将不同的应用独立部署)。如果某些业务请求量较大,业务处理时间较长,可以根据实际情况来将其加入消息队列,以达到快速返回的目的。最后,由分布式的业务服务器去调用分布式的数据库系统实现数据的存储。右边,文件这些东西可以部署在分布式的文件服务器上。右上,使用分布式缓存服务器将平时最常访问的20%数据(二八定律:80%的业务访问集中在20%的数据上)缓存起来。最下面两个,由于网站业务相当复杂,采用一些非关系数据库如nosql和非数据库查询技术如搜索引擎进行进行数据的存储和检索。
以上,就是一个大型网站的大体架构。
————————————————
原文链接:https://blog.csdn.net/zoroduyu/article/details/79187169

 

posted @ 2020-01-06 16:48  hofmann  阅读(265)  评论(0编辑  收藏  举报