又到了一年最后一次上班了,写下这篇日志作为本年总结。

首先总体介绍一下项目背景,今年公司开发了一款app,本人一个人负责app的接口服务、微信开放平台搭建以及系统后台,上线半年,如今活跃用户数3W+。本文重点记录目前项目的架构。

大概架构图如下,初次作图,可能不太准确,下面详细说明。

一、DB层

  DB很简单,直接一台sql server2008,服务以及系统后台都直接连接DB,目前是一台单独的数据库服务器。

二、服务层

  由于是.net出身,所以采用.net web api为android和ios提供服务,里面自己写了限流、加密、gzip压缩、https等。

  加入了公用缓存机制,为服务与系统后台提供缓存服务。缓存不光减轻了DB压力,还便于以后使用负载均衡。(memercached,redis都是可行的)

  独立的文件服务器,考虑到以后文件肯定很多,所以把文件服务器独立出来,服务、系统后台、移动端都可访问。(可以使用fastdfs)

  搜索引擎,目前这个只在计划中,还未实现,目前搜索还是会查库,考虑到将来这块会成为一个瓶颈,所以计划加入搜索引擎(sphinx,lucene.net都可以)

  目前服务和后台都在同一台服务器上。

三、移动端和web端

  移动端目前有android和ios,使用json与服务传输数据,不常变更数据缓存在本地。

  web端有微信公众平台和系统后台。微信端与移动端一样,也使用jsong与服务传输数据。

写完了,其实没什么干货,只是看贬低.net的太多,发出来证明用.net作为移动互联的后台是没有问题的,再进一步扩展也是很方便的。

基于webapi的移动互联架构的更多相关文章

  1. 建筑材料系统 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发

    框架介绍: 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性 ...

  2. 分享我们项目中基于EF事务机制的架构

    写在前面: 1. 本文中单元测试用到的数据库,在执行测试之前,会被清空,即使用空数据库. 2. 本文中的单元测试都是正确通过的. 要理解EF的事务机制,首先要理解这2个类:TransactionSco ...

  3. 基于netty的微服务架构

    基于netty的微服务架构 微服务一篇好文章 http://san-yun.iteye.com/blog/1693759 教程 http://udn.yyuap.com/doc/essential-n ...

  4. 基于 WebAPI 的 API 实现

    本文基于 WebAPI OData (微软发起的一个格式标准,其中一个比较有意思的是可以直接在 Excel 中填入 API 就可以展示了) Swashbuckle.OData(把 API 生成一个测试 ...

  5. 新项目架构从零开始(三)------基于简单ESB的服务架构

    这几个月一直在修改架构,所以迟迟没有更新博客. 新的架构是一个基于简单esb的服务架构,主要构成是esb服务注册,wcf服务,MVC项目构成. 首先,我门来看一看解决方案, 1.Common 在Com ...

  6. 分享我们项目中基于EF事务机制的架构 【转载】

    http://www.cnblogs.com/leotsai/p/how-to-use-entity-framework-transaction-scope.html 写在前面: 1. 本文中单元测试 ...

  7. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  8. 配置percona mysql server 5.7基于gtid主主复制架构

    配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...

  9. 前端调用后端的方法(基于restful接口的mvc架构)

    1.前端调用后台: 建议用你熟悉的一门服务端程序,例如ASP,PHP,JSP,C#这些都可以,然后把需要的数据从数据库中获得,回传给客户端浏览器(其实一般就是写到HTML中,或者生成XML文件)然后在 ...

随机推荐

  1. java日志学习笔记

    一.日志家族 Log4j一开始就很强大,在jdk自带日志系统之前,apache就曾经尝试把log4j划为java的一部分,不知为何没能成功,sun还是用了自己很弱的日志系统.为了兼容各个日志系统,ap ...

  2. js中的原型prototype

    var arr1 = new Array(12,34,98,43,38,79,56,1); arr1.sum=function (){ var result = 0; for(var i=0; i&l ...

  3. 国内git项目托管平台

    以前一直使用github托管项目,最近换了阿里云的vps,连接github出奇的慢,找了一下国内的代码托管平台. 有几个都不错,我刚好有csdn的账号,就试了一下csdn的托管平台,创建一个项目,发现 ...

  4. Android ListView上拉获取下一页

    关于ListView上拉刷新的需求很多,实现方式也多种多样. 一般是简单的通过一个page变量来控制当前请求的页数,然后上拉的时候就发送请求. 实现出来后,经过测试哥的折腾,发现有诸多细节没有处理好, ...

  5. Python环境配置安装

    2016年12月20日14:15:23 -------------- 参考菜鸟教程: Python 环境搭建 | 菜鸟教程  http://www.runoob.com/python/python-i ...

  6. pandas read table

    http://pandas.pydata.org/pandas-docs/stable/10min.html import pandas as pd res = pd.read_table(" ...

  7. qrcode 生成验证码带文字

    /** * 生成二维码 * * @param int $id * @param string $file * @param boolean $is_download */public function ...

  8. c# .Net并行和多线程编程之Task学习记录!

    任务Task和线程Thread的区别: 1.任务是架构在线程之上的,也就是说任务最终还是要抛给线程去执行. 2.任务跟线程不是一对一的关系,比如开10个任务并不是说会开10个线程,这一点任务有点类似线 ...

  9. excellent cushioning and also vitality go back with this boot

    The particular manufactured fine mesh higher almost addresses the complete boot. Here is the sort of ...

  10. 总结libevent安装方法

    1.先用:ls -al /usr/lib | grep libevent  查看是否已安装,如果已安装且版本低于1.3,则先通过:rpm -e libevent -nodeps 进行卸载. 2.下载l ...