Redian新闻
>
请教大牛们这个系统怎么设计
avatar
请教大牛们这个系统怎么设计# Programming - 葵花宝典
s*k
1
系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
并且发相应地notify到email或者其他定制途径
现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
办法?
2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?
3. sensor数据用XML还是JSON好?比较倾向于JSON,同时就考虑后台的数据库用SQL还
是NoSQL?我这样的应用适合用哪种?如果数据格式用JSON,单手后台用SQL,转换起来
麻烦不?尤其考虑各种dirty数据情况。
菜鸟一枚,请大家指教,谢谢
avatar
z*e
2
vert.x
cassandra
elastic search
数据用什么都行
你不用搞那么复杂,直接丢给c*
然后在elastic search里面index
然后直接查找就好了,json不用改
直接存成json,注意建index,你需要自己判断哪个是index
然后抽出来,单独放一个column
avatar
z*e
3
python不是web based script
所以用python搞json会有些蛋疼
需要你弄第三方类库
avatar
z*e
4
http和rest是最简单的
但是效率一般,但是你这个monitor
应该没有多实时要求吧?
有pvp那种要求吗?
python本身也贼78慢
你真在乎效率,就不要用python
avatar
w*g
5
python效率差是实,但是python搞json再容易没有。
另外,python效率差是说没法做大规模并发处理。
比如你每秒要支持几万个以上的请求,那python肯定就不行了。
如果预期每秒也就几十个请求,我觉得python没啥问题。
上python的好处很明显,就是数据分析的支持非常全面。
据我的观察,可能金融统计生物信息方面一些非常专业的算法python
不如R,通用的机器学习啥的python比R是要强很多的。

【在 z****e 的大作中提到】
: python不是web based script
: 所以用python搞json会有些蛋疼
: 需要你弄第三方类库

avatar
s*i
6
I would do this:
local server: Node only
cloud: Node only
Only thing passing around local and cloud servers is data. Nothing else.
1. static web content can be hosted anywhere you like. There should be
absolutely NO server side rendering. Angular is the way to go for your web
app and possibly mobile app (Ionic)
2. {IP whitelist + secret token} for local-cloud communication
3. JWT for app and web (consuming same rest api and no difference)
Possible notification solutions:
email: mailchimp
text: twilio
push: oneSignal, etc etc...
It is a secure and loosely coupled design.

sensor
web
[发表自未名空间手机版 - m.mitbbs.com]

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
d*r
7
你没啥大并发,低延迟这种高级需求,就用 all-in-one 那种 solution 就行了.
上 Django, 它现在默认用 postgresql, 能直接存取 JSON.
你后台都是些 access DB 的要求,很容易的.
1. 用 REST 确实最简单.
2. 后端用 Django; 前端用最简单的 Bootstrap, JQuery 这种就行, AngularJS,
React 这些前端框架,现在还在打架,不要去当小白鼠.

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
d*i
8
Flask也不错,比Django要轻量一些,也很好用,和Postgres结合也很好

【在 d*******r 的大作中提到】
: 你没啥大并发,低延迟这种高级需求,就用 all-in-one 那种 solution 就行了.
: 上 Django, 它现在默认用 postgresql, 能直接存取 JSON.
: 你后台都是些 access DB 的要求,很容易的.
: 1. 用 REST 确实最简单.
: 2. 后端用 Django; 前端用最简单的 Bootstrap, JQuery 这种就行, AngularJS,
: React 这些前端框架,现在还在打架,不要去当小白鼠.
:
: sensor
: web

avatar
d*i
9
Python弄个几百万用户的网站没有问题,真要碰到瓶颈加机器或者关键地方上C, C++就
可以了。

【在 w***g 的大作中提到】
: python效率差是实,但是python搞json再容易没有。
: 另外,python效率差是说没法做大规模并发处理。
: 比如你每秒要支持几万个以上的请求,那python肯定就不行了。
: 如果预期每秒也就几十个请求,我觉得python没啥问题。
: 上python的好处很明显,就是数据分析的支持非常全面。
: 据我的观察,可能金融统计生物信息方面一些非常专业的算法python
: 不如R,通用的机器学习啥的python比R是要强很多的。

avatar
d*i
10
Node也很不错,但是对于楼主不熟悉JavaScript的菜鸟来说,学习曲线稍微陡了点。

【在 s*i 的大作中提到】
: I would do this:
: local server: Node only
: cloud: Node only
: Only thing passing around local and cloud servers is data. Nothing else.
: 1. static web content can be hosted anywhere you like. There should be
: absolutely NO server side rendering. Angular is the way to go for your web
: app and possibly mobile app (Ionic)
: 2. {IP whitelist + secret token} for local-cloud communication
: 3. JWT for app and web (consuming same rest api and no difference)
: Possible notification solutions:

avatar
c*e
11
jquery 没有two-way binding,比angularjs低一个档次。

【在 d*******r 的大作中提到】
: 你没啥大并发,低延迟这种高级需求,就用 all-in-one 那种 solution 就行了.
: 上 Django, 它现在默认用 postgresql, 能直接存取 JSON.
: 你后台都是些 access DB 的要求,很容易的.
: 1. 用 REST 确实最简单.
: 2. 后端用 Django; 前端用最简单的 Bootstrap, JQuery 这种就行, AngularJS,
: React 这些前端框架,现在还在打架,不要去当小白鼠.
:
: sensor
: web

avatar
s*i
12
You may not like this:
1. Django is dying
2. Using jQuery directly, becomes unpopular (for too legit many reasons!)
3. Angular is THE ONE so far.
On the server side, it is still whatever you like because all you need are
rest services. But in long run, it seems only 3 things matter (to your next
job):
1. Java. Too big to fail.
2. .NET obviously;
3. NodeJs

[发表自未名空间手机版 - m.mitbbs.com]

【在 d*******r 的大作中提到】
: 你没啥大并发,低延迟这种高级需求,就用 all-in-one 那种 solution 就行了.
: 上 Django, 它现在默认用 postgresql, 能直接存取 JSON.
: 你后台都是些 access DB 的要求,很容易的.
: 1. 用 REST 确实最简单.
: 2. 后端用 Django; 前端用最简单的 Bootstrap, JQuery 这种就行, AngularJS,
: React 这些前端框架,现在还在打架,不要去当小白鼠.
:
: sensor
: web

avatar
g*g
13
Good comment, though I think react is competing with angular and .Net has
the writing in the wall.

next

【在 s*i 的大作中提到】
: You may not like this:
: 1. Django is dying
: 2. Using jQuery directly, becomes unpopular (for too legit many reasons!)
: 3. Angular is THE ONE so far.
: On the server side, it is still whatever you like because all you need are
: rest services. But in long run, it seems only 3 things matter (to your next
: job):
: 1. Java. Too big to fail.
: 2. .NET obviously;
: 3. NodeJs

avatar
c*e
14
不一定要用rest,
可以直接post到一个url
比如
post
http://www.yoursite1.com/addnew.php
http://www.yoursite2.com/getupate.php
http://www.yoursite3.com/delete.php
这样,能分散服务器的负荷,response也不一定要http response code,是个json data
也行。
addnew.php只干add new data的事;
getupate.php只干update data的事;
delete.php只干delete data的事。

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
k*t
15
你这个是做什么的?和我的系统很像。

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
d*i
16
这个说得过了点,PHP现在都还兴旺发达着呢,更别说Python了,Node很好很强大不错
,这几个加上Java都是Linux下做web的几种不错的选择。

next

【在 s*i 的大作中提到】
: You may not like this:
: 1. Django is dying
: 2. Using jQuery directly, becomes unpopular (for too legit many reasons!)
: 3. Angular is THE ONE so far.
: On the server side, it is still whatever you like because all you need are
: rest services. But in long run, it seems only 3 things matter (to your next
: job):
: 1. Java. Too big to fail.
: 2. .NET obviously;
: 3. NodeJs

avatar
c*e
17
这个能不能写个tcp server来2-way communicate? 比restful简单?
反正server的ip是固定的,其它的ip不准使用这个tcp server.

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
m*i
18
你的sensor是电池powered还是电源。这两种会很不同

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
d*r
19
你说这些技术,除了 Java, 我都在用.
如果去刷题,准备面试大公司,有一定的指导作用,
lz需求写在那里,是要快快出东西, 不是要问天下大势,
上Angular这种不得麻烦死...?
请教下 Django is dying 是什么情况?
用 Python 做 web, 还有比这个更好的? Flask? Tornado? 不够简单省心.
除非你说 Python web is dying, Node.js 全面胜利.

next

【在 s*i 的大作中提到】
: You may not like this:
: 1. Django is dying
: 2. Using jQuery directly, becomes unpopular (for too legit many reasons!)
: 3. Angular is THE ONE so far.
: On the server side, it is still whatever you like because all you need are
: rest services. But in long run, it seems only 3 things matter (to your next
: job):
: 1. Java. Too big to fail.
: 2. .NET obviously;
: 3. NodeJs

avatar
s*k
20
普通情况下每秒1K的请求吧,但是数据量小,不是web那种rich experience的。哪个现
成的轮子比较好?

【在 w***g 的大作中提到】
: python效率差是实,但是python搞json再容易没有。
: 另外,python效率差是说没法做大规模并发处理。
: 比如你每秒要支持几万个以上的请求,那python肯定就不行了。
: 如果预期每秒也就几十个请求,我觉得python没啥问题。
: 上python的好处很明显,就是数据分析的支持非常全面。
: 据我的观察,可能金融统计生物信息方面一些非常专业的算法python
: 不如R,通用的机器学习啥的python比R是要强很多的。

avatar
s*k
21
多谢,但是对node不熟悉,python有点经验,有python类似的现成组合吗

【在 s*i 的大作中提到】
: I would do this:
: local server: Node only
: cloud: Node only
: Only thing passing around local and cloud servers is data. Nothing else.
: 1. static web content can be hosted anywhere you like. There should be
: absolutely NO server side rendering. Angular is the way to go for your web
: app and possibly mobile app (Ionic)
: 2. {IP whitelist + secret token} for local-cloud communication
: 3. JWT for app and web (consuming same rest api and no difference)
: Possible notification solutions:

avatar
w*m
22
如果不是real time的话,最简单的是搭个FTP。每个sensor定时发XML上传。每个小时
运行cronjob,把XML导入数据库。
一定要用HTTP的话。就用tornado吧,以免长连接下某个sensor上传数据抱死。
avatar
s*k
23
这两个哪个ORM支持好?原来听说Djongo不支持sqlalchemy?另外Flask轻量在哪里?我
这个需求应该完全可以满足吧

【在 d****i 的大作中提到】
: Flask也不错,比Django要轻量一些,也很好用,和Postgres结合也很好
avatar
s*k
24
多谢,一般多大并发算高?我自己觉得并发一般,比如一个site 1Ksensor,大概每秒
100个请求,那么就算100个site每秒1W也是很低的吧

【在 d*******r 的大作中提到】
: 你没啥大并发,低延迟这种高级需求,就用 all-in-one 那种 solution 就行了.
: 上 Django, 它现在默认用 postgresql, 能直接存取 JSON.
: 你后台都是些 access DB 的要求,很容易的.
: 1. 用 REST 确实最简单.
: 2. 后端用 Django; 前端用最简单的 Bootstrap, JQuery 这种就行, AngularJS,
: React 这些前端框架,现在还在打架,不要去当小白鼠.
:
: sensor
: web

avatar
s*k
25
Django is dying,那现在python主流后端框架是哪个?Flask?

next

【在 s*i 的大作中提到】
: You may not like this:
: 1. Django is dying
: 2. Using jQuery directly, becomes unpopular (for too legit many reasons!)
: 3. Angular is THE ONE so far.
: On the server side, it is still whatever you like because all you need are
: rest services. But in long run, it seems only 3 things matter (to your next
: job):
: 1. Java. Too big to fail.
: 2. .NET obviously;
: 3. NodeJs

avatar
s*k
26
sensor network的信息系统

【在 k******t 的大作中提到】
: 你这个是做什么的?和我的系统很像。
:
: sensor
: web

avatar
s*k
27
sensor有两种数据类型,定时的状态信息和突发事件INT信息,所以不能只是每次做
Cron,还得及时处理各种突发信心,而且突发信息才是最关键的,定时信息做系统监控用

【在 w********m 的大作中提到】
: 如果不是real time的话,最简单的是搭个FTP。每个sensor定时发XML上传。每个小时
: 运行cronjob,把XML导入数据库。
: 一定要用HTTP的话。就用tornado吧,以免长连接下某个sensor上传数据抱死。

avatar
d*i
28
Flask可以用SQLAlchemy没有问题:
http://flask.pocoo.org/docs/0.10/patterns/sqlalchemy/
我以前是连SQLAlchemy都不用,直接裸用Psycopg2上原生SQL,就像在PHP和Java里面直
接写原生SQL那样爽,哈哈。

【在 s********k 的大作中提到】
: 这两个哪个ORM支持好?原来听说Djongo不支持sqlalchemy?另外Flask轻量在哪里?我
: 这个需求应该完全可以满足吧

avatar
s*k
30
都有,大部分是电池,sensor的网络已经基本搞定。

【在 m***i 的大作中提到】
: 你的sensor是电池powered还是电源。这两种会很不同
:
: sensor
: web

avatar
T*i
31
我卖一个系统给你们用好了。
你这个需求,每个site一台raspberry pi级别的服务器足够了。
你要的这些功能我的系统都能提供。

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
w*m
32
用python的现成轮子的话,最好每个sensor上装StatsD. server上面装Graphite。传输
用UDP。
数据库,UI都有。
avatar
s*k
33
你的系统用什么搭建的?

【在 T********i 的大作中提到】
: 我卖一个系统给你们用好了。
: 你这个需求,每个site一台raspberry pi级别的服务器足够了。
: 你要的这些功能我的系统都能提供。
:
: sensor
: web

avatar
d*e
34
晕, sensor得考虑节能把。
定时开起来,发个包回来就行了。

【在 w********m 的大作中提到】
: 用python的现成轮子的话,最好每个sensor上装StatsD. server上面装Graphite。传输
: 用UDP。
: 数据库,UI都有。

avatar
s*k
35
sensor就是一个单片机系统,只能做最简单的事情,local server可以做一些复杂的,
比如把组网的topo结构存储下来。

【在 w********m 的大作中提到】
: 用python的现成轮子的话,最好每个sensor上装StatsD. server上面装Graphite。传输
: 用UDP。
: 数据库,UI都有。

avatar
m*i
36
电池powered一般用pubsub模式,定期唤醒然后check command quque.不然太耗电,换
电池累死人。
一般sensor和local server用rf通信。

【在 s********k 的大作中提到】
: 都有,大部分是电池,sensor的网络已经基本搞定。
avatar
s*k
37
我们确实用的差不多模式,这块基本搞定了

【在 m***i 的大作中提到】
: 电池powered一般用pubsub模式,定期唤醒然后check command quque.不然太耗电,换
: 电池累死人。
: 一般sensor和local server用rf通信。

avatar
c*1
38
http://www.tornadoweb.org/en/stable/
python tornado is similar to nodejs.

【在 s********k 的大作中提到】
: 多谢,但是对node不熟悉,python有点经验,有python类似的现成组合吗
avatar
m*i
39
这种模式下,和local server是messaging的方式,不适合用rest. 可以考虑xmpp

【在 s********k 的大作中提到】
: 我们确实用的差不多模式,这块基本搞定了
avatar
N*m
40
sensor用mqtt吧;后端随便怎么搞
你如果python熟,flask吧,很容易

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
w*m
41
local server上装statsD。有现成的轮子就用呗。
avatar
s*k
42
和local server肯定不是REST,是自己定制的协议,我主要是说local server和host之
间的通信架构

【在 m***i 的大作中提到】
: 这种模式下,和local server是messaging的方式,不适合用rest. 可以考虑xmpp
avatar
d*r
43
量大起来了,再优化 Django 没有问题,
Django 是出个好几个大型 server 例子的,比如 instagram.
现在 Django 默认是用 Python 3, 自带 asyncio 的, 做并发也不差.
你不喜欢 asyncio 的话,也可用 gevent 这种异步 lib.
另外,Django 自带的 ORM 也改进了很多,不需要再额外折腾 SQLAlchemy 了.

【在 s********k 的大作中提到】
: 多谢,一般多大并发算高?我自己觉得并发一般,比如一个site 1Ksensor,大概每秒
: 100个请求,那么就算100个site每秒1W也是很低的吧

avatar
s*k
44
承蒙指点,update一个系统架构的图,想说明一点是sensor和localserver之间通信我
们已经搞定,主要想请教localserver和host之间的架构

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
s*k
45
Host用Django? 那local server呢?有没有办法用更轻量的?

【在 d*******r 的大作中提到】
: 量大起来了,再优化 Django 没有问题,
: Django 是出个好几个大型 server 例子的,比如 instagram.
: 现在 Django 默认是用 Python 3, 自带 asyncio 的, 做并发也不差.
: 你不喜欢 asyncio 的话,也可用 gevent 这种异步 lib.
: 另外,Django 自带的 ORM 也改进了很多,不需要再额外折腾 SQLAlchemy 了.

avatar
s*k
46
我去看一下,谢谢

【在 w********m 的大作中提到】
: local server上装statsD。有现成的轮子就用呗。
avatar
g*g
47
好奇用户为什么需要跟所有系统通信,难道不是 hosted app就够了。

【在 s********k 的大作中提到】
: 承蒙指点,update一个系统架构的图,想说明一点是sensor和localserver之间通信我
: 们已经搞定,主要想请教localserver和host之间的架构
:
: sensor
: web

avatar
s*k
48
好虫你说得对,其实只跟host就够,但是可能会因为一些监管的原因,要求本地的
admin(图里面user)在local server和host断网的情况下还是能够做简单操作甚至发
紧急信息。当然这个只是初步的架构,请指点

【在 g*****g 的大作中提到】
: 好奇用户为什么需要跟所有系统通信,难道不是 hosted app就够了。
avatar
d*r
49
你local host大概是什么配置,up-to-date 的底端电脑? 多少 memory?
建议第一版,先都跑一样的东西,然后再优化.
你 local 也要 user interaction 的话,那也要能 render/process 一般网页了?

【在 s********k 的大作中提到】
: Host用Django? 那local server呢?有没有办法用更轻量的?
avatar
s*k
50
Local server我觉得低端的电脑足够,当然需要点UPS电源,还有paging这样的额外设
施。4G memory我觉得足够,local server主要做几件事情
1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
,然后接受host端的请求对本地sensor做操作
2. 处理紧急的notify 给pager或者其他短信形式
3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
每个node是否成功部署加入网络等等
4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
5. 跑一些简单地cron job然后定时上传到host一些信息

【在 d*******r 的大作中提到】
: 你local host大概是什么配置,up-to-date 的底端电脑? 多少 memory?
: 建议第一版,先都跑一样的东西,然后再优化.
: 你 local 也要 user interaction 的话,那也要能 render/process 一般网页了?

avatar
N*m
51
这个任务在router上加个module就行了吧

【在 s********k 的大作中提到】
: Local server我觉得低端的电脑足够,当然需要点UPS电源,还有paging这样的额外设
: 施。4G memory我觉得足够,local server主要做几件事情
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等
: 4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
: 5. 跑一些简单地cron job然后定时上传到host一些信息

avatar
k*t
52
能否讲一下你们这个的部署场景?比较好奇。医院/学校?

【在 s********k 的大作中提到】
: Local server我觉得低端的电脑足够,当然需要点UPS电源,还有paging这样的额外设
: 施。4G memory我觉得足够,local server主要做几件事情
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等
: 4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
: 5. 跑一些简单地cron job然后定时上传到host一些信息

avatar
T*i
53
你设计里面那个local server,我的系统是C/C++。
但是你不需要懂C/C++,你只需要懂一门简单的script就能编程了。
写一个简单的REST不到10行。

【在 s********k 的大作中提到】
: 你的系统用什么搭建的?
avatar
d*i
54
你sensor和local server之间用的什么协议?如果考虑local server和hosted server
之间用rest的话,那么local server可以用Lighttpd,也支持Python, PHP, Perl, Lua。
http://www.lighttpd.net/

【在 s********k 的大作中提到】
: Local server我觉得低端的电脑足够,当然需要点UPS电源,还有paging这样的额外设
: 施。4G memory我觉得足够,local server主要做几件事情
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等
: 4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
: 5. 跑一些简单地cron job然后定时上传到host一些信息

avatar
s*k
55
local server上有一个USB dongle负责和sensor network通信,不需要任何http这样的
协议,

server
Lua。

【在 d****i 的大作中提到】
: 你sensor和local server之间用的什么协议?如果考虑local server和hosted server
: 之间用rest的话,那么local server可以用Lighttpd,也支持Python, PHP, Perl, Lua。
: http://www.lighttpd.net/

avatar
s*k
56
问题是router上加什么module啊,开发起来不比自己直接拿个PC来做简单把

【在 N*****m 的大作中提到】
: 这个任务在router上加个module就行了吧
avatar
d*i
57
这个我知道,sensor和local server当然不能用http这样的巨无霸大家伙,但是你
sensor和local server之间的通信总要有个协议吧,我指的就是这个。

【在 s********k 的大作中提到】
: local server上有一个USB dongle负责和sensor network通信,不需要任何http这样的
: 协议,
:
: server
: Lua。

avatar
s*k
58
snesor network 基础架构是wireless mesh network,我们自己定制的协议,到了
dongle之后直接把数据传到local server上一个lib,也是自己写的,并不需要TCP。
UDP这样的协议,数据传输层我们自己定制sensor到dongle得,因为极端需要考虑功耗

【在 d****i 的大作中提到】
: 这个我知道,sensor和local server当然不能用http这样的巨无霸大家伙,但是你
: sensor和local server之间的通信总要有个协议吧,我指的就是这个。

avatar
d*i
59
对的,这个是正解,应该用自己定制的协议为最优最省电。TCP, UDP这样的过于overly
bloated了,对于sensor来说。

【在 s********k 的大作中提到】
: snesor network 基础架构是wireless mesh network,我们自己定制的协议,到了
: dongle之后直接把数据传到local server上一个lib,也是自己写的,并不需要TCP。
: UDP这样的协议,数据传输层我们自己定制sensor到dongle得,因为极端需要考虑功耗

avatar
g*g
60
Technically there's nothing stopping you from not having local server at all
. And sensors talk to the hosted service directly. It will make the entire
architecture much simpler. The more moving pieces, the more fragile is your
system. Maintenance would be painful for the local servers.
You can use access control to handle multiple
tenants, that you'll need to do anyway. Can't comment on regulation as I
know that can change everything.

【在 s********k 的大作中提到】
: 好虫你说得对,其实只跟host就够,但是可能会因为一些监管的原因,要求本地的
: admin(图里面user)在local server和host断网的情况下还是能够做简单操作甚至发
: 紧急信息。当然这个只是初步的架构,请指点

avatar
s*k
61
抛开监管不说,这个系统没有local server,那么那个USB dongle就会扮演整个local
server的角色,但是很难啊,所有这些数据从sensor上来之后host要和sensor直接通信
是不行的(加一句,sensor没有IP地址,也不可能有整个TCP IP协议栈)。其实我也不
喜欢有个local的server,但是觉得这个现在一下比较难拿掉

all
your

【在 g*****g 的大作中提到】
: Technically there's nothing stopping you from not having local server at all
: . And sensors talk to the hosted service directly. It will make the entire
: architecture much simpler. The more moving pieces, the more fragile is your
: system. Maintenance would be painful for the local servers.
: You can use access control to handle multiple
: tenants, that you'll need to do anyway. Can't comment on regulation as I
: know that can change everything.

avatar
m*i
62
The local server is needed as a bridge between the sensor and the cloud.
Unless
you have wifi in all area and your sensor integrates with HTTPS enabled
microcontrollers (such as cc3200)
Just try to make your local server a dummy rf to https proxy to the cloud.
All business logic should be implemented on the cloud

local

【在 s********k 的大作中提到】
: 抛开监管不说,这个系统没有local server,那么那个USB dongle就会扮演整个local
: server的角色,但是很难啊,所有这些数据从sensor上来之后host要和sensor直接通信
: 是不行的(加一句,sensor没有IP地址,也不可能有整个TCP IP协议栈)。其实我也不
: 喜欢有个local的server,但是觉得这个现在一下比较难拿掉
:
: all
: your

avatar
d*i
63
这不是一个好主意,楼主说了,in case网断了的话,local server还能够允许admin实
施一些不需要远端服务器的功能,如果你把所有东西都放到host的话,网一断就死菜了。

【在 m***i 的大作中提到】
: The local server is needed as a bridge between the sensor and the cloud.
: Unless
: you have wifi in all area and your sensor integrates with HTTPS enabled
: microcontrollers (such as cc3200)
: Just try to make your local server a dummy rf to https proxy to the cloud.
: All business logic should be implemented on the cloud
:
: local

avatar
m*i
64
In that case, you can run some code that you run on cloud on the local
server and enable mdns.

了。

【在 d****i 的大作中提到】
: 这不是一个好主意,楼主说了,in case网断了的话,local server还能够允许admin实
: 施一些不需要远端服务器的功能,如果你把所有东西都放到host的话,网一断就死菜了。

avatar
a9
65
你们还是别纠缠楼主的sensor怎么传数据了

通信
也不

【在 m***i 的大作中提到】
: The local server is needed as a bridge between the sensor and the cloud.
: Unless
: you have wifi in all area and your sensor integrates with HTTPS enabled
: microcontrollers (such as cc3200)
: Just try to make your local server a dummy rf to https proxy to the cloud.
: All business logic should be implemented on the cloud
:
: local

avatar
a9
66
楼主这个系统分成几个部分
一个是sensor和本地数据接收端的通讯,这块没什么好讨论的,楼主这个方式应该是个
很好的方式。
二是本地数据怎么传到网上,看楼上楼主说比较习惯python,可以直接用tornado做个
rest接收存到本地数据库,这些数据格式化都比较好,可以使用关系型的数据库,完全
不需要考虑mongo等
三是数据处理模块,这块就看楼上需求了
四是app从服务器取数据这块,这块一样可以用tornado做一个rest接口
五是web管理界面,这块可以使用一个framework简化一下开发。
四和五相信数据量不会大,用户数也不多,可以尽量简单的做,基本用python硬写一个
都行。
每秒处理10个左右的数据的话,数据库会有一些压力应该没有太大问题。

cloud.

【在 a9 的大作中提到】
: 你们还是别纠缠楼主的sensor怎么传数据了
:
: 通信
: 也不

avatar
d*r
67
我觉得都用一套成熟的 语言+framework+lib最简单.
local host 4G 内存, 那也该配备几百G硬盘了吧,什么都能搞了.
我 assume 你们 sensor 到 local host 之间的是你们自己的东西,我们不用支招.
local host, cloud host 全上 Python Django, 也用 Python fabric/ansible/salt
这种工具做必要的 DevOps 工作. 能走 RESTful 能解决的通通走 HTTP, could host
需要修改控制 local hosts 的配置,再做 DevOps 工作. 我说这个应该是最简单容易
的 solution, 一个人用 Python, 几下就搞好了.
以后要优化要骚包,你再慢慢一块块替换. 比如你要把 local host 弄到什么智能
router 上,你再看 OpenWRT. 你觉得 local host 程序不够快不够 fancy,你在考虑
上 C/C++/Go 都行.

【在 s********k 的大作中提到】
: Local server我觉得低端的电脑足够,当然需要点UPS电源,还有paging这样的额外设
: 施。4G memory我觉得足够,local server主要做几件事情
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等
: 4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
: 5. 跑一些简单地cron job然后定时上传到host一些信息

avatar
d*r
68
实在不喜欢 Django, 也可以用 Tornado, 甚至 Flask.
local host, cloud host 用一样的框架减少维护学习成本.
不过根据我的经验,开发体验 Django > Tornado > Flask(个人不喜欢)

【在 d*******r 的大作中提到】
: 我觉得都用一套成熟的 语言+framework+lib最简单.
: local host 4G 内存, 那也该配备几百G硬盘了吧,什么都能搞了.
: 我 assume 你们 sensor 到 local host 之间的是你们自己的东西,我们不用支招.
: local host, cloud host 全上 Python Django, 也用 Python fabric/ansible/salt
: 这种工具做必要的 DevOps 工作. 能走 RESTful 能解决的通通走 HTTP, could host
: 需要修改控制 local hosts 的配置,再做 DevOps 工作. 我说这个应该是最简单容易
: 的 solution, 一个人用 Python, 几下就搞好了.
: 以后要优化要骚包,你再慢慢一块块替换. 比如你要把 local host 弄到什么智能
: router 上,你再看 OpenWRT. 你觉得 local host 程序不够快不够 fancy,你在考虑
: 上 C/C++/Go 都行.

avatar
z*e
69

再容易也没有?groovy就比python强,在对付json上
ruby等web script搞json是非常直接的,绝对在python之上
你根本没有用过ruby之类的处理json过吧?
也就是跟r去比,其实本质就是一个wrapper
做wrapper容易而已,那些libs烂死,都是学术界自己乱写的

【在 w***g 的大作中提到】
: python效率差是实,但是python搞json再容易没有。
: 另外,python效率差是说没法做大规模并发处理。
: 比如你每秒要支持几万个以上的请求,那python肯定就不行了。
: 如果预期每秒也就几十个请求,我觉得python没啥问题。
: 上python的好处很明显,就是数据分析的支持非常全面。
: 据我的观察,可能金融统计生物信息方面一些非常专业的算法python
: 不如R,通用的机器学习啥的python比R是要强很多的。

avatar
s*k
70
Local server肯定是越简单越好,如果完全不需要支持Web或者APP的HTTP链接的话,有
什么好的库就做data import之类。当然local server还有一个重要作用是bridge,因
为sensor不能TCPIP,所以host怎样access sensor 需要local server做地址转换。
还有一个纠结的是比方说本地网络的系统监控就由本地的admin user做了,假设它需要
通过web来监控整个site的sensor情况,这个web server是放在local server还是全部
丢在host?貌似全部在Host更好

【在 m***i 的大作中提到】
: The local server is needed as a bridge between the sensor and the cloud.
: Unless
: you have wifi in all area and your sensor integrates with HTTPS enabled
: microcontrollers (such as cc3200)
: Just try to make your local server a dummy rf to https proxy to the cloud.
: All business logic should be implemented on the cloud
:
: local

avatar
s*k
71
谢谢,你意思是本地local server也做一个数据库?
4,5 Web和APP的service放在local还是host好

【在 a9 的大作中提到】
: 楼主这个系统分成几个部分
: 一个是sensor和本地数据接收端的通讯,这块没什么好讨论的,楼主这个方式应该是个
: 很好的方式。
: 二是本地数据怎么传到网上,看楼上楼主说比较习惯python,可以直接用tornado做个
: rest接收存到本地数据库,这些数据格式化都比较好,可以使用关系型的数据库,完全
: 不需要考虑mongo等
: 三是数据处理模块,这块就看楼上需求了
: 四是app从服务器取数据这块,这块一样可以用tornado做一个rest接口
: 五是web管理界面,这块可以使用一个framework简化一下开发。
: 四和五相信数据量不会大,用户数也不多,可以尽量简单的做,基本用python硬写一个

avatar
s*k
72
多谢,现在看来Host用姜戈比较合适,但是local server如果我不做任何web或者APP的
service 呢?姜戈是不是有点重?
local server我的设想
1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
,然后接受host端的请求对本地sensor做操作,这个关键在于sensor没有TCP IP,所以
local server得做lib把sensor的数据通过TCPIP协议栈和Host互通(貌似做REST最好)
,然后还有就是把host端对某个sensor的消息转成local 非IP地址
2. 处理紧急的notify 给pager或者其他短信形式
3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
每个node是否成功部署加入网络等等(说实话这块可能也以Host做,还没想好)
4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
5. 跑一些简单地cron job然后定时上传到host一些信息
Py下面纯粹做REST服务,没有HTTP得有没有这样的库?

【在 d*******r 的大作中提到】
: 我觉得都用一套成熟的 语言+framework+lib最简单.
: local host 4G 内存, 那也该配备几百G硬盘了吧,什么都能搞了.
: 我 assume 你们 sensor 到 local host 之间的是你们自己的东西,我们不用支招.
: local host, cloud host 全上 Python Django, 也用 Python fabric/ansible/salt
: 这种工具做必要的 DevOps 工作. 能走 RESTful 能解决的通通走 HTTP, could host
: 需要修改控制 local hosts 的配置,再做 DevOps 工作. 我说这个应该是最简单容易
: 的 solution, 一个人用 Python, 几下就搞好了.
: 以后要优化要骚包,你再慢慢一块块替换. 比如你要把 local host 弄到什么智能
: router 上,你再看 OpenWRT. 你觉得 local host 程序不够快不够 fancy,你在考虑
: 上 C/C++/Go 都行.

avatar
d*r
73
"Py下面纯粹做REST服务,没有HTTP得有没有这样的库?"
REST 就是走 HTTP 的呀

【在 s********k 的大作中提到】
: 多谢,现在看来Host用姜戈比较合适,但是local server如果我不做任何web或者APP的
: service 呢?姜戈是不是有点重?
: local server我的设想
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作,这个关键在于sensor没有TCP IP,所以
: local server得做lib把sensor的数据通过TCPIP协议栈和Host互通(貌似做REST最好)
: ,然后还有就是把host端对某个sensor的消息转成local 非IP地址
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等(说实话这块可能也以Host做,还没想好)

avatar
d*e
74
多谢,一般多大并发算高?我自己觉得并发一般,比如一个site 1Ksensor,大概每秒
100个请求,那么就算100个site每秒1W也是很低的吧
1万个request django肯定当掉。
就是tornado也就6000.还是在非常简单的ping/pong的情况下。
这个应用是非常常见的cqrs.
特别是考虑还有突发spike
比较好的做法,来自sensor的event 丢rabbitmq或者kafka,或者任何一个queue.,
redis也行。
查询走web.这样什么flask都没问题。
rabbitmq大概1万5 per second per node.你的情况应该一台机器可以顶住。

【在 s********k 的大作中提到】
: 多谢,现在看来Host用姜戈比较合适,但是local server如果我不做任何web或者APP的
: service 呢?姜戈是不是有点重?
: local server我的设想
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作,这个关键在于sensor没有TCP IP,所以
: local server得做lib把sensor的数据通过TCPIP协议栈和Host互通(貌似做REST最好)
: ,然后还有就是把host端对某个sensor的消息转成local 非IP地址
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等(说实话这块可能也以Host做,还没想好)

avatar
d*e
75
多谢,一般多大并发算高?我自己觉得并发一般,比如一个site 1Ksensor,大概每秒
100个请求,那么就算100个site每秒1W也是很低的吧
1万个request django肯定当掉。
就是tornado也就6000.还是在非常简单的ping/pong的情况下。
这个应用是非常常见的cqrs.
特别是考虑还有突发spike
比较好的做法,来自sensor的event 丢rabbitmq或者kafka,或者任何一个queue.,
redis也行。
查询走web.这样什么flask都没问题。
rabbitmq大概1万5 per second per node.你的情况应该一台机器可以顶住。

【在 s********k 的大作中提到】
: 多谢,现在看来Host用姜戈比较合适,但是local server如果我不做任何web或者APP的
: service 呢?姜戈是不是有点重?
: local server我的设想
: 1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
: ,然后接受host端的请求对本地sensor做操作,这个关键在于sensor没有TCP IP,所以
: local server得做lib把sensor的数据通过TCPIP协议栈和Host互通(貌似做REST最好)
: ,然后还有就是把host端对某个sensor的消息转成local 非IP地址
: 2. 处理紧急的notify 给pager或者其他短信形式
: 3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
: 每个node是否成功部署加入网络等等(说实话这块可能也以Host做,还没想好)

avatar
z*e
76

mq应该淘汰掉
因为msg的可读性太差
应该用json
直接互相用网状结构连接,便于测试

【在 d******e 的大作中提到】
: 多谢,一般多大并发算高?我自己觉得并发一般,比如一个site 1Ksensor,大概每秒
: 100个请求,那么就算100个site每秒1W也是很低的吧
: 1万个request django肯定当掉。
: 就是tornado也就6000.还是在非常简单的ping/pong的情况下。
: 这个应用是非常常见的cqrs.
: 特别是考虑还有突发spike
: 比较好的做法,来自sensor的event 丢rabbitmq或者kafka,或者任何一个queue.,
: redis也行。
: 查询走web.这样什么flask都没问题。
: rabbitmq大概1万5 per second per node.你的情况应该一台机器可以顶住。

avatar
d*e
77
晕,python的json
一个json.loads(s)就搞定的。
基本上和js一样方便。

【在 z****e 的大作中提到】
:
: mq应该淘汰掉
: 因为msg的可读性太差
: 应该用json
: 直接互相用网状结构连接,便于测试

avatar
z*e
78

loads(s)
这种方式方便?
java也是这样的

【在 d******e 的大作中提到】
: 晕,python的json
: 一个json.loads(s)就搞定的。
: 基本上和js一样方便。

avatar
s*k
79
说错了,就是不做web,APP服务,纯粹只做REST的服务?不知道我理解是不是有偏差

【在 d*******r 的大作中提到】
: "Py下面纯粹做REST服务,没有HTTP得有没有这样的库?"
: REST 就是走 HTTP 的呀

avatar
s*k
80
我是按照平均10s一个sensor请求算得,不过这个1W的request应该是在Host端处理,不
是local server,这个也处理不过来?
local的话就是每秒最多100请求,应该一台机器完全没问题吧

【在 d******e 的大作中提到】
: 多谢,一般多大并发算高?我自己觉得并发一般,比如一个site 1Ksensor,大概每秒
: 100个请求,那么就算100个site每秒1W也是很低的吧
: 1万个request django肯定当掉。
: 就是tornado也就6000.还是在非常简单的ping/pong的情况下。
: 这个应用是非常常见的cqrs.
: 特别是考虑还有突发spike
: 比较好的做法,来自sensor的event 丢rabbitmq或者kafka,或者任何一个queue.,
: redis也行。
: 查询走web.这样什么flask都没问题。
: rabbitmq大概1万5 per second per node.你的情况应该一台机器可以顶住。

avatar
l*n
81
完全同意,1k的sensor数据量很小,没有什么问题

【在 d*******r 的大作中提到】
: 你没啥大并发,低延迟这种高级需求,就用 all-in-one 那种 solution 就行了.
: 上 Django, 它现在默认用 postgresql, 能直接存取 JSON.
: 你后台都是些 access DB 的要求,很容易的.
: 1. 用 REST 确实最简单.
: 2. 后端用 Django; 前端用最简单的 Bootstrap, JQuery 这种就行, AngularJS,
: React 这些前端框架,现在还在打架,不要去当小白鼠.
:
: sensor
: web

avatar
d*e
82
local你只 cache转发这个上django肯定是足够了。

【在 s********k 的大作中提到】
: 我是按照平均10s一个sensor请求算得,不过这个1W的request应该是在Host端处理,不
: 是local server,这个也处理不过来?
: local的话就是每秒最多100请求,应该一台机器完全没问题吧

avatar
s*k
83
Local server就是想上一个比Django更轻量的

【在 d******e 的大作中提到】
: local你只 cache转发这个上django肯定是足够了。
avatar
d*e
84
flask这个懒人最爱。

【在 s********k 的大作中提到】
: Local server就是想上一个比Django更轻量的
avatar
m*i
85
local server to cloud should be pubsub (persistent https connection) or xmpp
connection because the local server needs to respond to realtime command
from cloud.

【在 m***i 的大作中提到】
: The local server is needed as a bridge between the sensor and the cloud.
: Unless
: you have wifi in all area and your sensor integrates with HTTPS enabled
: microcontrollers (such as cc3200)
: Just try to make your local server a dummy rf to https proxy to the cloud.
: All business logic should be implemented on the cloud
:
: local

avatar
a*e
86
哇塞,很久没见过这么认真讨论问题的人了。一定要回复你一下。
很多年前搞过一个类似的系统,只不过local server是单片机,sensor是最简单的chip。
看了下需求,很清晰明了,各个layer decouple的很好,基本上一句话了,想怎么玩怎
么玩。从sensor到local server的通信这个版上的人大部分不懂,你自己搞好就行。从
local server到host的通信,这个比较主观了,个人建议json/rest 就足以了。必要的
时候可以自己在UDP上写个小protocol用。
到host端,尼玛真是想怎么玩怎么玩,神马db,webserver随便吧。这个板上的大神们
已经各显神通了,我这方面经验不足,不太了解。
关键的local server端,这个其实也是很subjective,我有些based on practice的经
验,统一回复:
--------------分割线---------------------
看了大家建议受益匪浅:现在关键好像集中在local server上,local server我主要想
这几个需求
1. 有一个lib 把sensor network的数据组织然后import到host,包括网路的topo结构
,然后接受host端的请求对本地sensor做操作
--- 随便玩,如果想用db可以用最简单的那种。
2. 处理紧急的notify 给pager或者其他短信形式。
--- 随便玩。
3. 本地一些简单地server,就像部署sensor network时候施工用的简单地工具,检查
每个node是否成功部署加入网络等等,这个是不是也是Host端坐比较好?
4. 本地的admin可以实时监控自己site的任何信息,当然这个我觉得做到host端更好,
--- 3,4当然是做到host端好啦,可以玩各种fancy的玩意。但是,请在local
server端把door留好,哪怕是最丑陋的那种几个cmd,请留出来,因为这个在日后可能
会帮你很大忙。
5. 跑一些简单地cron job然后定时上传到host一些信息
--- 这还不是随便玩吗?直接开始coding吧!

sensor
web

【在 s********k 的大作中提到】
: 系统的初步架构比较简单,有很多site,每个site有几百房间,每个房间有5个sensor
: ,有1K左右的sensor,每个sensor有定期数据和突发事件两类型数据传到local的一个
: 服务器,然后再import data到云端的host,并且,某些具有管理权限的人可以通过web
: 访问每个site到每个sensor的各种信息,和远程操作sensor,现场部署sensor的人可以
: 通过APP访问. Host cloud端做数据分析,提供web、APP的后台接口,支持多个sites,
: 并且发相应地notify到email或者其他定制途径
: 现在想尽快搭建起来系统,用python现成的轮子,现在有几个问题
: 1. local server,web,mobile和云端host的接口是否都用REST?还是有什么更简单的
: 办法?
: 2 .web和APP都不是高并发,哪种轮子最简单最好?后端,web分别用什么轮子?

avatar
s*k
87
能否讲讲你做的那个系统更详细一下信息?现在用的怎样?

chip。

【在 a******e 的大作中提到】
: 哇塞,很久没见过这么认真讨论问题的人了。一定要回复你一下。
: 很多年前搞过一个类似的系统,只不过local server是单片机,sensor是最简单的chip。
: 看了下需求,很清晰明了,各个layer decouple的很好,基本上一句话了,想怎么玩怎
: 么玩。从sensor到local server的通信这个版上的人大部分不懂,你自己搞好就行。从
: local server到host的通信,这个比较主观了,个人建议json/rest 就足以了。必要的
: 时候可以自己在UDP上写个小protocol用。
: 到host端,尼玛真是想怎么玩怎么玩,神马db,webserver随便吧。这个板上的大神们
: 已经各显神通了,我这方面经验不足,不太了解。
: 关键的local server端,这个其实也是很subjective,我有些based on practice的经
: 验,统一回复:

avatar
s*k
88
请教用过cherrypy吗?这个是不是也是很轻量的

【在 d*******r 的大作中提到】
: 实在不喜欢 Django, 也可以用 Tornado, 甚至 Flask.
: local host, cloud host 用一样的框架减少维护学习成本.
: 不过根据我的经验,开发体验 Django > Tornado > Flask(个人不喜欢)

avatar
c*e
89
"必要的时候可以自己在UDP上写个小protocol用。"为啥不是写个tcp而是udp?
你是用什么语言写的小protocol?

chip。

【在 a******e 的大作中提到】
: 哇塞,很久没见过这么认真讨论问题的人了。一定要回复你一下。
: 很多年前搞过一个类似的系统,只不过local server是单片机,sensor是最简单的chip。
: 看了下需求,很清晰明了,各个layer decouple的很好,基本上一句话了,想怎么玩怎
: 么玩。从sensor到local server的通信这个版上的人大部分不懂,你自己搞好就行。从
: local server到host的通信,这个比较主观了,个人建议json/rest 就足以了。必要的
: 时候可以自己在UDP上写个小protocol用。
: 到host端,尼玛真是想怎么玩怎么玩,神马db,webserver随便吧。这个板上的大神们
: 已经各显神通了,我这方面经验不足,不太了解。
: 关键的local server端,这个其实也是很subjective,我有些based on practice的经
: 验,统一回复:

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。