由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Node做大系统better than Java, .NET
相关主题
大家讨论过了node.js了吗?如果单一平台是王道的话,vert.x显然会胜啊
周末上点有用的信息顺便和nod101说说做产品
大牛们比较下 Node, Go, Scala请java大牛谈谈大并发的解决方案
nodejs cluster和vert.x比较怎么样?多线程,异步,并发冲突,fp和其它
大家真心觉得akka好用吗?spring 是一个event loop一直在跑么?然后处理各种event?
一直不习惯immutabilityNode.js 有用过的么 什么评价
异步的话,所有语言都有自己的环境parallel programming的复杂性分层/流行工具技术名词
vertx里面同一个module多个verticle的疑问用了一下node.js, 看来js要一同天下啊,只要那些人
相关话题的讨论汇总
话题: service话题: js话题: actor话题: command话题: soa
进入Programming版参与讨论
1 (共1页)
p*****2
发帖数: 21240
w********m
发帖数: 1137
2
二爷要full stack JS了?
m******t
发帖数: 635
3
大牛没看这篇blog吧,这家伙写散文的? Javascript 不弄OOP的话,还弄什么,不如直
接上FP -> ClojureScript了

【在 p*****2 的大作中提到】
: http://www.richardrodger.com/monolithic-nodejs#.UqCfGWRDtqk
r***y
发帖数: 4379
4
作者脑子好凌乱啊...
blah blah的把要点都啰嗦没了
就第一段 "The quick criticism is that you need 10X engineers." 这一条就把自
己的论点推到反人类, 反工程的死胡同了. 后面说的都懒得细看了.

【在 p*****2 的大作中提到】
: http://www.richardrodger.com/monolithic-nodejs#.UqCfGWRDtqk
m******t
发帖数: 635
5
这家伙的开发工具是powerpoint,:)

【在 r***y 的大作中提到】
: 作者脑子好凌乱啊...
: blah blah的把要点都啰嗦没了
: 就第一段 "The quick criticism is that you need 10X engineers." 这一条就把自
: 己的论点推到反人类, 反工程的死胡同了. 后面说的都懒得细看了.

P********l
发帖数: 452
6
不能偏听偏信.这篇文章说nodejs的缺点挺到位的.优点有点过了.
一个node(单线程)能支持上千个连接.也就是说上千个用户的数据(session)都挤在
一起里.一个用户出了问题,几千个用户都得down.
js这种语言也有问题.这里的假设就是每个人都很小心,都是大拿,这有点不太现实.
最简单的一个例子,假如有人这么做 Array.prototype.coolFun = function(){}
下面的loop可能够呛 for(var i in arr){ /*some naive code*/}
很难trouble shooting.
做大系统,nodejs还是有问题.better than Java? no comment.

【在 p*****2 的大作中提到】
: http://www.richardrodger.com/monolithic-nodejs#.UqCfGWRDtqk
r***y
发帖数: 4379
7
呵呵, 更狠的是北京二爷
这么阳春白雪的巨长blog, 自己懒得看, 帖上来让大家帮他读, 他看反馈...LOL

【在 m******t 的大作中提到】
: 这家伙的开发工具是powerpoint,:)
p*****2
发帖数: 21240
8
看来大家都没有看懂。这篇文章写的很有水平,值得仔细研读。
如果我没有理解错误的话,这个作者是要在node上做一个AKKA出来。
今天好好看看,再来汇报情况。
p*****2
发帖数: 21240
9

没有。java的生态系统不可替代呀

【在 w********m 的大作中提到】
: 二爷要full stack JS了?
p*****2
发帖数: 21240
10

JS为什么要搞OO呢?

【在 m******t 的大作中提到】
: 大牛没看这篇blog吧,这家伙写散文的? Javascript 不弄OOP的话,还弄什么,不如直
: 接上FP -> ClojureScript了

相关主题
一直不习惯immutability如果单一平台是王道的话,vert.x显然会胜啊
异步的话,所有语言都有自己的环境顺便和nod101说说做产品
vertx里面同一个module多个verticle的疑问请java大牛谈谈大并发的解决方案
进入Programming版参与讨论
N*****m
发帖数: 42603
11
不错,我是本版最先倡导node的id之一(可能不需要之一)

【在 p*****2 的大作中提到】
: http://www.richardrodger.com/monolithic-nodejs#.UqCfGWRDtqk
g*****g
发帖数: 34805
12
If we want to talk about large scale system now, the No.1 rule is SOA, as
opposed to Monolithic system. Most well known internet service are in SOA,
and many of them in Java. This is not to say Node can't do SOA, but I haven'
t seen how JS is better than Java in SOA when the majority of services would
be in "backend". IMHO, static languages are better
than dynamic ones for this purpose in the first place. Regarding dependency
hell,
Maven has been there for a decade. It doesn't solve every problem, but at
least almost every problem has been seen. It's commonplace nowadays a Java
service runs on top of hundreds of 3rd party dependencies. I don't think JS
has reached that level of sophistication yet.
P********l
发帖数: 452
13
好吧,这篇的作者应该有点货.http://www.linkedin.com/in/richardrodger
大牛给总结总结.

【在 p*****2 的大作中提到】
: 看来大家都没有看懂。这篇文章写的很有水平,值得仔细研读。
: 如果我没有理解错误的话,这个作者是要在node上做一个AKKA出来。
: 今天好好看看,再来汇报情况。

m******t
发帖数: 635
14
js的prototype-based programming似乎难用,要不coffeescript也不会给伪装一个。
JS号称也可以算fp, 不过感觉除了有first-class function这点外,其他的FP的主要特
点都缺:
immutability (JS code里mutable state漫天飞)
laziness (好像没听说JS有)
seq (clojure/F# 里都有,JS不知道,估计得第三方)
tail-call optimization (好像也没听说)
所以我觉得JS基本上是个伪FP, 当然OO也不方便

【在 p*****2 的大作中提到】
:
: JS为什么要搞OO呢?

m******t
发帖数: 635
15
恩,他的主要观点就是鼓吹一个小规模的SOA架构。
不过他这句话恶心到我了:
Let’s apply this to our software systems. Instead of building a monolithic
100 000 line codebase, build 100 small services, each 1000 lines long. Fred
George, (the inventor of programmer anarchy) one of the biggest proponents
of this approach, calls these small programs micro-services.
难道JS弱到连1000行都是大程序?

haven'
would
dependency
JS

【在 g*****g 的大作中提到】
: If we want to talk about large scale system now, the No.1 rule is SOA, as
: opposed to Monolithic system. Most well known internet service are in SOA,
: and many of them in Java. This is not to say Node can't do SOA, but I haven'
: t seen how JS is better than Java in SOA when the majority of services would
: be in "backend". IMHO, static languages are better
: than dynamic ones for this purpose in the first place. Regarding dependency
: hell,
: Maven has been there for a decade. It doesn't solve every problem, but at
: least almost every problem has been seen. It's commonplace nowadays a Java
: service runs on top of hundreds of 3rd party dependencies. I don't think JS

p*****2
发帖数: 21240
16

monolithic
Fred
大牛有没有看过一个actor的code会有多少?

【在 m******t 的大作中提到】
: 恩,他的主要观点就是鼓吹一个小规模的SOA架构。
: 不过他这句话恶心到我了:
: Let’s apply this to our software systems. Instead of building a monolithic
: 100 000 line codebase, build 100 small services, each 1000 lines long. Fred
: George, (the inventor of programmer anarchy) one of the biggest proponents
: of this approach, calls these small programs micro-services.
: 难道JS弱到连1000行都是大程序?
:
: haven'
: would

p*****2
发帖数: 21240
17

类似AKKA
一个command是一个actor
然后实现了,event-driven, async, distributed等基本功能
还封装了logging和database
文档还不全,继续关注一下。

【在 P********l 的大作中提到】
: 好吧,这篇的作者应该有点货.http://www.linkedin.com/in/richardrodger
: 大牛给总结总结.

N*****m
发帖数: 42603
18
等你写个总结了
node搞个actor系统不难,有先天优势

【在 p*****2 的大作中提到】
:
: 类似AKKA
: 一个command是一个actor
: 然后实现了,event-driven, async, distributed等基本功能
: 还封装了logging和database
: 文档还不全,继续关注一下。

p*****2
发帖数: 21240
19

immutability (JS code里mutable state漫天飞)
//immutability没有那么神奇,scala,clojure都允许mutate, 另外node是single
thread, mutation一点问题没有
laziness (好像没听说JS有)
//除了FP,其他语言都没有吧?有什么大问题吗?
seq (clojure/F# 里都有,JS不知道,估计得第三方)
//为什么一定需要这个?
tail-call optimization (好像也没听说)
//iteration不比tail-call更方便?Clojure还不是没有,只能模拟iteration了?

【在 m******t 的大作中提到】
: js的prototype-based programming似乎难用,要不coffeescript也不会给伪装一个。
: JS号称也可以算fp, 不过感觉除了有first-class function这点外,其他的FP的主要特
: 点都缺:
: immutability (JS code里mutable state漫天飞)
: laziness (好像没听说JS有)
: seq (clojure/F# 里都有,JS不知道,估计得第三方)
: tail-call optimization (好像也没听说)
: 所以我觉得JS基本上是个伪FP, 当然OO也不方便

m******t
发帖数: 635
20
给展开说说吧,他这个小的100个 1000行micros-ervice实际应用里靠普不?感觉这
1000行写点东西不太够啊

【在 p*****2 的大作中提到】
:
: immutability (JS code里mutable state漫天飞)
: //immutability没有那么神奇,scala,clojure都允许mutate, 另外node是single
: thread, mutation一点问题没有
: laziness (好像没听说JS有)
: //除了FP,其他语言都没有吧?有什么大问题吗?
: seq (clojure/F# 里都有,JS不知道,估计得第三方)
: //为什么一定需要这个?
: tail-call optimization (好像也没听说)
: //iteration不比tail-call更方便?Clojure还不是没有,只能模拟iteration了?

相关主题
多线程,异步,并发冲突,fp和其它parallel programming的复杂性分层/流行工具技术名词
spring 是一个event loop一直在跑么?然后处理各种event?用了一下node.js, 看来js要一同天下啊,只要那些人
Node.js 有用过的么 什么评价看了一下Meteor很不错
进入Programming版参与讨论
m******t
发帖数: 635
21
我就是好奇JS什么正经的paradigm都不很好地支持,在backend 怎么写较大规模的应用
?是OO,FP, 还是类似script language那样,弄个struct 或者object-based class,
就开始写procedure了?

【在 p*****2 的大作中提到】
:
: immutability (JS code里mutable state漫天飞)
: //immutability没有那么神奇,scala,clojure都允许mutate, 另外node是single
: thread, mutation一点问题没有
: laziness (好像没听说JS有)
: //除了FP,其他语言都没有吧?有什么大问题吗?
: seq (clojure/F# 里都有,JS不知道,估计得第三方)
: //为什么一定需要这个?
: tail-call optimization (好像也没听说)
: //iteration不比tail-call更方便?Clojure还不是没有,只能模拟iteration了?

p*****2
发帖数: 21240
22

你写写AKKA的actor,或者storm的bolt就知道了。reactive programming一定要讲究快
。每个模块只干一点点事情,这样小的模块组成大的模块。中间message passing。都
是这个套路来的,更不要说node的single thread了。刚才数了一下我的bolts的行数,
基本都是20行左右。100行的标准很靠谱呀。这个文章就是讲的就是不要把模块做大。

【在 m******t 的大作中提到】
: 给展开说说吧,他这个小的100个 1000行micros-ervice实际应用里靠普不?感觉这
: 1000行写点东西不太够啊

P********l
发帖数: 452
23
他是说,与其写一个100K行的大service,不如写100个小的想对独立的1K的小service
来完成同样的功能. 问题是,这个CS101的概念,这和nodejs没有一点关系.
还记得toyota的那个大task X吗?难道他们不想把这个task X拆开吗?难道用nodejs这
个问题就解决了?
没仔细看这个作者举的那个micro service的实现的module. 我觉得不怎么样,功能太
少,限制太多.

monolithic
Fred

【在 m******t 的大作中提到】
: 恩,他的主要观点就是鼓吹一个小规模的SOA架构。
: 不过他这句话恶心到我了:
: Let’s apply this to our software systems. Instead of building a monolithic
: 100 000 line codebase, build 100 small services, each 1000 lines long. Fred
: George, (the inventor of programmer anarchy) one of the biggest proponents
: of this approach, calls these small programs micro-services.
: 难道JS弱到连1000行都是大程序?
:
: haven'
: would

p*****2
发帖数: 21240
24

这个文章不就是讲这个的吗?

【在 m******t 的大作中提到】
: 我就是好奇JS什么正经的paradigm都不很好地支持,在backend 怎么写较大规模的应用
: ?是OO,FP, 还是类似script language那样,弄个struct 或者object-based class,
: 就开始写procedure了?

m******t
发帖数: 635
25
AKKA没接触过,不过storm的bolt写过,bolt里面没有什么,平均下来90-100行吧,主要
逻辑都在models目录下的代码里面。
node.js怎么处理这些企业逻辑?

【在 p*****2 的大作中提到】
:
: 这个文章不就是讲这个的吗?

c******o
发帖数: 1277
26
actor 讲究的是share nothing (between actors), 这个肯定不可能解决所有问题。
share state 的还要上 STM, 或者再写逻辑在上面。
同样, actor(s)肯定不是单线程,不知道node.js怎么解决这个。
不会是把OS thread scheduling 那一套再实现一边吧。。
p*****2
发帖数: 21240
27

用java写的?
coffeescript 100行代码可以干很多东西了

【在 m******t 的大作中提到】
: AKKA没接触过,不过storm的bolt写过,bolt里面没有什么,平均下来90-100行吧,主要
: 逻辑都在models目录下的代码里面。
: node.js怎么处理这些企业逻辑?

p*****2
发帖数: 21240
28

node.js可以多进程呀。
node可以安全mutate data, 不需要STM。

【在 c******o 的大作中提到】
: actor 讲究的是share nothing (between actors), 这个肯定不可能解决所有问题。
: share state 的还要上 STM, 或者再写逻辑在上面。
: 同样, actor(s)肯定不是单线程,不知道node.js怎么解决这个。
: 不会是把OS thread scheduling 那一套再实现一边吧。。

m******t
发帖数: 635
29
恩,光各种import就30行以上用掉了,再class定义什么的,真正有用的也就30行左
右。
忘了你是coffeescript的干活,哈哈

【在 p*****2 的大作中提到】
:
: node.js可以多进程呀。
: node可以安全mutate data, 不需要STM。

p*****2
发帖数: 21240
30

看了一下我这几个月搞的主程序不到200行coffeescript代码。

【在 m******t 的大作中提到】
: AKKA没接触过,不过storm的bolt写过,bolt里面没有什么,平均下来90-100行吧,主要
: 逻辑都在models目录下的代码里面。
: node.js怎么处理这些企业逻辑?

相关主题
JS就应该杜绝OOP周末上点有用的信息
现在.NET也往Node上转了大牛们比较下 Node, Go, Scala
大家讨论过了node.js了吗?nodejs cluster和vert.x比较怎么样?
进入Programming版参与讨论
P********l
发帖数: 452
31
nodejs和akka/play在解决问题的思路上是不一样的.
akka把消息的接收/发送者实现成actor.一个actor可以发送/接受/转发很多种消息
.actor是immutable的,可以在不同的线程里或者机器里.
nodejs针对的是一系列的动作.比如,动作1完成触发动作2,动作2完成触发动作3
.这一些动作是异步的.在实现上,用的是promise那一套.
那些actor之间的消息和nodejs里的动作触发可以相比.actor里,并没有强调消息之间
有什么联系;nodejs的动作连续做完才是一件事情结束.
请各位大牛指正.

【在 c******o 的大作中提到】
: actor 讲究的是share nothing (between actors), 这个肯定不可能解决所有问题。
: share state 的还要上 STM, 或者再写逻辑在上面。
: 同样, actor(s)肯定不是单线程,不知道node.js怎么解决这个。
: 不会是把OS thread scheduling 那一套再实现一边吧。。

m******t
发帖数: 635
32
你确定没有少写一个0?:)

【在 p*****2 的大作中提到】
:
: 看了一下我这几个月搞的主程序不到200行coffeescript代码。

o**2
发帖数: 168
33
如果要说在JS(不论是broswer或nodejs里)上做一个AKKA和SOA之类的framework出来
的话,我已经做出来了(只是没有强力推广,家事太多),比AKKA和SOA只强不弱。我
写的online demo都挂出来一年多了。
http://fastmessenger.com/files/javascript-ref-impl/1.5.0/demo/i
p*****2
发帖数: 21240
34

你先看看这篇文章再说吧。

【在 P********l 的大作中提到】
: nodejs和akka/play在解决问题的思路上是不一样的.
: akka把消息的接收/发送者实现成actor.一个actor可以发送/接受/转发很多种消息
: .actor是immutable的,可以在不同的线程里或者机器里.
: nodejs针对的是一系列的动作.比如,动作1完成触发动作2,动作2完成触发动作3
: .这一些动作是异步的.在实现上,用的是promise那一套.
: 那些actor之间的消息和nodejs里的动作触发可以相比.actor里,并没有强调消息之间
: 有什么联系;nodejs的动作连续做完才是一件事情结束.
: 请各位大牛指正.

p*****2
发帖数: 21240
35

Java就是这个样子的,呵呵。

【在 m******t 的大作中提到】
: 恩,光各种import就30行以上用掉了,再class定义什么的,真正有用的也就30行左
: 右。
: 忘了你是coffeescript的干活,哈哈

p*****2
发帖数: 21240
36

没有。不过主程序是一个文件。还有其他文件,但是都封装了,不涉及到business
logic。

【在 m******t 的大作中提到】
: 你确定没有少写一个0?:)
p*****2
发帖数: 21240
37

有open source吗?回头看看。

【在 o**2 的大作中提到】
: 如果要说在JS(不论是broswer或nodejs里)上做一个AKKA和SOA之类的framework出来
: 的话,我已经做出来了(只是没有强力推广,家事太多),比AKKA和SOA只强不弱。我
: 写的online demo都挂出来一年多了。
: http://fastmessenger.com/files/javascript-ref-impl/1.5.0/demo/i

P********l
发帖数: 452
38
看完了,水平所限,没觉得有什么意思.
二爷来指点一下?

【在 p*****2 的大作中提到】
:
: 有open source吗?回头看看。

o**2
发帖数: 168
39
http://fastmessenger.com
https://github.com/fastmessenger
对分布式的支持还没有完全发布:
https://weblogs.java.net/blog/rexyoung/archive/2013/10/09/m123-first-fmp-3-
demo
https://weblogs.java.net/blog/rexyoung/archive/2013/09/12/fmp-30-same-api-
invoking-local-and-distributed-services

【在 p*****2 的大作中提到】
:
: 有open source吗?回头看看。

p*****2
发帖数: 21240
40

跟AKKA,Storm思路类似
event-driven, async, distributed, actor, bolt etc.

【在 P********l 的大作中提到】
: 看完了,水平所限,没觉得有什么意思.
: 二爷来指点一下?

相关主题
nodejs cluster和vert.x比较怎么样?异步的话,所有语言都有自己的环境
大家真心觉得akka好用吗?vertx里面同一个module多个verticle的疑问
一直不习惯immutability如果单一平台是王道的话,vert.x显然会胜啊
进入Programming版参与讨论
N*****m
发帖数: 42603
41
能不能用hadoop的生态系统是个大问题
现在新的framework(比如storm, stark)都尽量在底层能够用h系列的东西

【在 p*****2 的大作中提到】
:
: 跟AKKA,Storm思路类似
: event-driven, async, distributed, actor, bolt etc.

P********l
发帖数: 452
42
能展开说说吗?
我没觉得nodejs有actor的概念.比如: http://nodejs.org/api/fs.html
var fs = require('fs');
fs.unlink('/tmp/hello', function (err) {
if (err) throw err;
console.log('successfully deleted /tmp/hello');
});
另外能总结一下你给的那篇文章吗? 我真没觉得有什么. 我还以为他是new grad呢.

【在 p*****2 的大作中提到】
:
: 跟AKKA,Storm思路类似
: event-driven, async, distributed, actor, bolt etc.

z****e
发帖数: 54598
43
java里面大部分不想看的代码,都是ide右键点击后自动生成的
eclipse这里做了类似coffescript解释器的工作
coffeescript转译到js之后也是一堆代码

【在 p*****2 的大作中提到】
:
: 跟AKKA,Storm思路类似
: event-driven, async, distributed, actor, bolt etc.

g*****g
发帖数: 34805
44
I don't know if this guy really has architected big system before.
"Let’s apply this to our software systems. Instead of building a monolithic
100 000 line codebase, build 100 small services, each 1000 lines long. Fred
George, (the inventor of programmer anarchy) one of the biggest proponents
of this approach, calls these small programs micro-services."
While I am a proponent of SOA, I wouldn't do micro-services. If your single
service has 1m latency, a call that goes through 100 services has 100ms
latency. If your single service has 99.99% of availability, your service has
99% reliability at best just by doing that alone.
I wouldn't want a service to be maintained by two teams. And if a single
engineer can reasonably fix all issues in a service, it's not too big in my
book.
z****e
发帖数: 54598
45
event-driven被证明过并不适合所有的business logic
更适合一些business logic,比如保险的理赔流程
工作流就是大面积使用event driven的产物
不过对于business logic来说,最大的问题在于旧代码的复用
而不是如何简化新生代码,大部分公司的business logic的代码都不允许随便重构
那如何复用现有代码就是一个大问题
所以真正用得比较多的概念是esb,service bus这些
通过给不同系统提供统一接口以实现集成的目的
single thread完全没有必要,如果各个线程之间不需要share状态的话
我直接上个多线程也没什么问题,单线程还要去留意一下这个是单线程,这里有
tradeoff
多线程在这个时候还更直接更简单,不需要去留意这个是单线程
如果为了实现并发同步还需要去把thread包装成process的话
那为什么不一开始就多线程呢?反正不需要share状态
这也有很多框架可以直接做了,比如akka

【在 p*****2 的大作中提到】
:
: 跟AKKA,Storm思路类似
: event-driven, async, distributed, actor, bolt etc.

p*****2
发帖数: 21240
46

所以我一直强调前端node后端clojure呀

【在 N*****m 的大作中提到】
: 能不能用hadoop的生态系统是个大问题
: 现在新的framework(比如storm, stark)都尽量在底层能够用h系列的东西

p*****2
发帖数: 21240
47

monolithic
Fred
single
has
micro services can be host on same machine. communication is unnessesary to
be http

【在 g*****g 的大作中提到】
: I don't know if this guy really has architected big system before.
: "Let’s apply this to our software systems. Instead of building a monolithic
: 100 000 line codebase, build 100 small services, each 1000 lines long. Fred
: George, (the inventor of programmer anarchy) one of the biggest proponents
: of this approach, calls these small programs micro-services."
: While I am a proponent of SOA, I wouldn't do micro-services. If your single
: service has 1m latency, a call that goes through 100 services has 100ms
: latency. If your single service has 99.99% of availability, your service has
: 99% reliability at best just by doing that alone.
: I wouldn't want a service to be maintained by two teams. And if a single

p*****2
发帖数: 21240
48

难道async和多线程还需要再解释?

【在 z****e 的大作中提到】
: event-driven被证明过并不适合所有的business logic
: 更适合一些business logic,比如保险的理赔流程
: 工作流就是大面积使用event driven的产物
: 不过对于business logic来说,最大的问题在于旧代码的复用
: 而不是如何简化新生代码,大部分公司的business logic的代码都不允许随便重构
: 那如何复用现有代码就是一个大问题
: 所以真正用得比较多的概念是esb,service bus这些
: 通过给不同系统提供统一接口以实现集成的目的
: single thread完全没有必要,如果各个线程之间不需要share状态的话
: 我直接上个多线程也没什么问题,单线程还要去留意一下这个是单线程,这里有

p*****2
发帖数: 21240
49

你怎么总提node不提seneca呢?

【在 P********l 的大作中提到】
: 能展开说说吗?
: 我没觉得nodejs有actor的概念.比如: http://nodejs.org/api/fs.html
: var fs = require('fs');
: fs.unlink('/tmp/hello', function (err) {
: if (err) throw err;
: console.log('successfully deleted /tmp/hello');
: });
: 另外能总结一下你给的那篇文章吗? 我真没觉得有什么. 我还以为他是new grad呢.

z****e
发帖数: 54598
50
都是框架
用臭臭的话说就是
都是死套框架

【在 m******t 的大作中提到】
: AKKA没接触过,不过storm的bolt写过,bolt里面没有什么,平均下来90-100行吧,主要
: 逻辑都在models目录下的代码里面。
: node.js怎么处理这些企业逻辑?

相关主题
顺便和nod101说说做产品spring 是一个event loop一直在跑么?然后处理各种event?
请java大牛谈谈大并发的解决方案Node.js 有用过的么 什么评价
多线程,异步,并发冲突,fp和其它parallel programming的复杂性分层/流行工具技术名词
进入Programming版参与讨论
z****e
发帖数: 54598
51
难道单线程的trade off还需要再解释?

【在 p*****2 的大作中提到】
:
: 你怎么总提node不提seneca呢?

z****e
发帖数: 54598
52
然后手动启动100次这些service?
虽然我也主张模块化,但是过于细致划分本身也有问题
如果说把这10,000行代码切割成1000个10行的代码
然后每一个包装成一个service的时候,那就彻底崩溃了
凡事过犹不及,不要纠结于代码行数
针对功能做封装,组件化,然后拼凑组件变成一个大的service
也就是先狭义的soa,然后再广义的soa,最后暴露广义的soa
代码行数如果没有超过一定数量,就不用管了
当然超过500行这种还是要介入,要重构
500行肯定可以细分下去

to

【在 p*****2 的大作中提到】
:
: 你怎么总提node不提seneca呢?

z****e
发帖数: 54598
53
做到了soa之后,就没有必要纠结于框架的使用了
随便一个语言都可以实现soa
比如这1000行代码,用什么写都可以
只要最终包装成一个service
剩下的,自由选择
然后就是service自身的管理,会变成一个主要问题
其实这100个small service就需要做一个service manager一样的东西了
这个时候再通过层次来管理
殊途同归,这个东西在web service 1的时代有一个专门的东西,叫做uddi
hoho

monolithic
Fred

【在 m******t 的大作中提到】
: 恩,他的主要观点就是鼓吹一个小规模的SOA架构。
: 不过他这句话恶心到我了:
: Let’s apply this to our software systems. Instead of building a monolithic
: 100 000 line codebase, build 100 small services, each 1000 lines long. Fred
: George, (the inventor of programmer anarchy) one of the biggest proponents
: of this approach, calls these small programs micro-services.
: 难道JS弱到连1000行都是大程序?
:
: haven'
: would

P********l
发帖数: 452
54
实现seneca挺容易的. 用好反而不容易.
1. 如果这样的command pattern太多怎么办? 这玩意没办法优化,你只好一个一个去比.
这里的performance会有问题.
2. 居然没有提到优先级(冲突). 真的有人在用seneca吗?
3. 语法(如果有的话)比较拙劣. 如果我想要一个"或"怎么办?
我还惦记着呢你的总结呢. 记着给.

【在 p*****2 的大作中提到】
:
: 你怎么总提node不提seneca呢?

z****e
发帖数: 54598
55
soa之后,其实什么语言都不重要了
现在随便一个语言都可以做web service
web service标准越来越成熟,以后会有越来越多这种框架产生
实际上ejb什么做ws已经很简单了,一个annotation就搞定了
异步也就是一个annotation就搞定的事
这两个其实压根就是跟框架语言本身无关
什么语言都可以做到,就那么一回事,找自己顺手的上
然后真正重要的是你怎么管理这些service
service如果不集中管理,那么网状结构会变得很难以维护
一般大了之后,会有一个集中管理的地方
这就是当初web service诞生时候的uddi和wsdl
就是太过于超前,以至于群众不接受,后来失败了
不过不管怎样,你还是需要这么一个东西
要不然service一多,都不知道去哪里找
还有一个方面是监控,比如某一个service挂了,你要重启这个service
还有你要看看这个serivce用了多少资源啊之类的
java可以用jmx来做,跟os相关的我会用python来做
ejb容器要看容器本身提供什么接口
还有很多cloud上的系统,都是ruby写的
比如digitalocean和rhcloud
所以条条大路通罗马

【在 m******t 的大作中提到】
: 我就是好奇JS什么正经的paradigm都不很好地支持,在backend 怎么写较大规模的应用
: ?是OO,FP, 还是类似script language那样,弄个struct 或者object-based class,
: 就开始写procedure了?

l*********s
发帖数: 5409
56
da niu well said!

【在 p*****2 的大作中提到】
:
: 你怎么总提node不提seneca呢?

g*****g
发帖数: 34805
57
Then what's the point of having these micro services at the first place? Can
't you just compose a few of them as a normal service?

to

【在 p*****2 的大作中提到】
:
: 你怎么总提node不提seneca呢?

l*********s
发帖数: 5409
58
the difference is that you don't need to read js output; but is there a way
in eclipse to hide those boilerplates?

【在 z****e 的大作中提到】
: java里面大部分不想看的代码,都是ide右键点击后自动生成的
: eclipse这里做了类似coffescript解释器的工作
: coffeescript转译到js之后也是一堆代码

l*********s
发帖数: 5409
59
1) it is slow because you are not only using async call.
2) how is single monolithic service any better? Not matter what you do, you
are not going to change the expected reliability, but with more micro
service, you reduce the risk of variability. That is the statistics 101.

monolithic
Fred
single
has

【在 g*****g 的大作中提到】
: I don't know if this guy really has architected big system before.
: "Let’s apply this to our software systems. Instead of building a monolithic
: 100 000 line codebase, build 100 small services, each 1000 lines long. Fred
: George, (the inventor of programmer anarchy) one of the biggest proponents
: of this approach, calls these small programs micro-services."
: While I am a proponent of SOA, I wouldn't do micro-services. If your single
: service has 1m latency, a call that goes through 100 services has 100ms
: latency. If your single service has 99.99% of availability, your service has
: 99% reliability at best just by doing that alone.
: I wouldn't want a service to be maintained by two teams. And if a single

g*****g
发帖数: 34805
60
1. It's a realistic question, not everything can be ran in parallel, and
when that's the case, async can only improve your system throughput, not how
quickly a single call can finish. Network latency is for real when you get
through hundreds of services. And for UI, 10ms and 100ms latency can be
easily told.
2. Single monolithic is worse. But you don't have to take it to another
extreme. In most cases, 1000 LOC is an API, not a service. 10K-50K is the
level I prefer, because a single engineer can have all knowledge of
everything in this service without an issue, what do you gain by splitting
it further? Or is this a form for NodeJs to do multithreading?

you

【在 l*********s 的大作中提到】
: 1) it is slow because you are not only using async call.
: 2) how is single monolithic service any better? Not matter what you do, you
: are not going to change the expected reliability, but with more micro
: service, you reduce the risk of variability. That is the statistics 101.
:
: monolithic
: Fred
: single
: has

相关主题
用了一下node.js, 看来js要一同天下啊,只要那些人现在.NET也往Node上转了
看了一下Meteor很不错大家讨论过了node.js了吗?
JS就应该杜绝OOP周末上点有用的信息
进入Programming版参与讨论
z****e
发帖数: 54598
61
import放在上面,一个滚轮就下来了,你没事去纠结这个?是不是平常都太闲了?

way

【在 l*********s 的大作中提到】
: the difference is that you don't need to read js output; but is there a way
: in eclipse to hide those boilerplates?

l*********s
发帖数: 5409
62
rolling back and forth interrupts the thinking process and reduce
productivity greatly.

【在 z****e 的大作中提到】
: import放在上面,一个滚轮就下来了,你没事去纠结这个?是不是平常都太闲了?
:
: way

z****e
发帖数: 54598
63
你知道现在有个东西叫做dsl么?

【在 l*********s 的大作中提到】
: rolling back and forth interrupts the thinking process and reduce
: productivity greatly.

l*********s
发帖数: 5409
64
is java dsl?

【在 z****e 的大作中提到】
: 你知道现在有个东西叫做dsl么?
z****e
发帖数: 54598
65
任何一个语言都有
完全不需要去看别人定义的恶心的语法
你爱怎么玩就怎么玩,无非一堆字节流
coffeescript本身就是一个很好的榜样

【在 l*********s 的大作中提到】
: is java dsl?
p*****2
发帖数: 21240
66

Can
没问题吧?storm都支持rpc。

【在 g*****g 的大作中提到】
: Then what's the point of having these micro services at the first place? Can
: 't you just compose a few of them as a normal service?
:
: to

p*****2
发帖数: 21240
67

比.
如果actor太多怎么办?如果bolt太多怎么办?
或还不容易?做一个command不就行了?
优先级冲突什么意思?
这东西我就是看看思路呀。用不用到不一定。看情况吧。

【在 P********l 的大作中提到】
: 实现seneca挺容易的. 用好反而不容易.
: 1. 如果这样的command pattern太多怎么办? 这玩意没办法优化,你只好一个一个去比.
: 这里的performance会有问题.
: 2. 居然没有提到优先级(冲突). 真的有人在用seneca吗?
: 3. 语法(如果有的话)比较拙劣. 如果我想要一个"或"怎么办?
: 我还惦记着呢你的总结呢. 记着给.

p*****2
发帖数: 21240
68

手启动肯定不行吧?应该每个command都有HA setup才对

【在 z****e 的大作中提到】
: 然后手动启动100次这些service?
: 虽然我也主张模块化,但是过于细致划分本身也有问题
: 如果说把这10,000行代码切割成1000个10行的代码
: 然后每一个包装成一个service的时候,那就彻底崩溃了
: 凡事过犹不及,不要纠结于代码行数
: 针对功能做封装,组件化,然后拼凑组件变成一个大的service
: 也就是先狭义的soa,然后再广义的soa,最后暴露广义的soa
: 代码行数如果没有超过一定数量,就不用管了
: 当然超过500行这种还是要介入,要重构
: 500行肯定可以细分下去

p*****2
发帖数: 21240
69

how
get
你是在攻击AKKA?

【在 g*****g 的大作中提到】
: 1. It's a realistic question, not everything can be ran in parallel, and
: when that's the case, async can only improve your system throughput, not how
: quickly a single call can finish. Network latency is for real when you get
: through hundreds of services. And for UI, 10ms and 100ms latency can be
: easily told.
: 2. Single monolithic is worse. But you don't have to take it to another
: extreme. In most cases, 1000 LOC is an API, not a service. 10K-50K is the
: level I prefer, because a single engineer can have all knowledge of
: everything in this service without an issue, what do you gain by splitting
: it further? Or is this a form for NodeJs to do multithreading?

z****e
发帖数: 54598
70
所以我现在觉得还是自己用spring裸写就好了
不用这些乱七八糟的框架其实也没什么
把线程管理和组件管理分离
加一点容错功能,我自己写的效率还不输给他们搞的
真的,用框架最不好一点就是经常什么都塞给你
也不管你要不要

【在 p*****2 的大作中提到】
:
: how
: get
: 你是在攻击AKKA?

相关主题
周末上点有用的信息大家真心觉得akka好用吗?
大牛们比较下 Node, Go, Scala一直不习惯immutability
nodejs cluster和vert.x比较怎么样?异步的话,所有语言都有自己的环境
进入Programming版参与讨论
p*****2
发帖数: 21240
71

框架主要是快,肯定不一定比自己写的好。但是自己写太花时间了。一般来说框架还是
考虑了大部分情况。

【在 z****e 的大作中提到】
: 所以我现在觉得还是自己用spring裸写就好了
: 不用这些乱七八糟的框架其实也没什么
: 把线程管理和组件管理分离
: 加一点容错功能,我自己写的效率还不输给他们搞的
: 真的,用框架最不好一点就是经常什么都塞给你
: 也不管你要不要

z****e
发帖数: 54598
72
但是简单到storm这种程度的
我自己写也用不了多少时间
以前用web server主要是html页面的生成
还有http head的生成和解析比较烦
没有了这些需求,其它的其实也就是几个api的事

【在 p*****2 的大作中提到】
:
: 框架主要是快,肯定不一定比自己写的好。但是自己写太花时间了。一般来说框架还是
: 考虑了大部分情况。

l*********s
发帖数: 5409
73
Talking is cheap.

【在 z****e 的大作中提到】
: 但是简单到storm这种程度的
: 我自己写也用不了多少时间
: 以前用web server主要是html页面的生成
: 还有http head的生成和解析比较烦
: 没有了这些需求,其它的其实也就是几个api的事

P********l
发帖数: 452
74

我没说有actor. 这里也没有actor.
command 1: { /* a lot of data */ option: "rain" }
command 2: { /* a lot of data */ option: "snow" }
command 2: { /* a lot of data */ option: "clear" }
现在我想表示 "rain" or "snow", 咋整?
command 1: {role: "manager"}
command 1: {role: "manager", age: 50}
act {role: "manager", age: 50}
这个act和哪个command匹配? 是先遇到匹配呢还是most specific匹配? 更复杂的情况
我还没说呢.

【在 p*****2 的大作中提到】
:
: 框架主要是快,肯定不一定比自己写的好。但是自己写太花时间了。一般来说框架还是
: 考虑了大部分情况。

p*****2
发帖数: 21240
75

我说了这个思路跟actor的思路类似,就是event-driven, async, distributed. 当然
不是完成actor所有的,只是这些部分。但是你问的问题你也可以去问actor去。

【在 P********l 的大作中提到】
:
: 我没说有actor. 这里也没有actor.
: command 1: { /* a lot of data */ option: "rain" }
: command 2: { /* a lot of data */ option: "snow" }
: command 2: { /* a lot of data */ option: "clear" }
: 现在我想表示 "rain" or "snow", 咋整?
: command 1: {role: "manager"}
: command 1: {role: "manager", age: 50}
: act {role: "manager", age: 50}
: 这个act和哪个command匹配? 是先遇到匹配呢还是most specific匹配? 更复杂的情况

p*****2
发帖数: 21240
76

command 1: {role: "manager"}
command 1: {role: "manager", age: 50}
act {role: "manager", age: 50}
我觉得这个不是啥问题吧?

【在 P********l 的大作中提到】
:
: 我没说有actor. 这里也没有actor.
: command 1: { /* a lot of data */ option: "rain" }
: command 2: { /* a lot of data */ option: "snow" }
: command 2: { /* a lot of data */ option: "clear" }
: 现在我想表示 "rain" or "snow", 咋整?
: command 1: {role: "manager"}
: command 1: {role: "manager", age: 50}
: act {role: "manager", age: 50}
: 这个act和哪个command匹配? 是先遇到匹配呢还是most specific匹配? 更复杂的情况

p*****2
发帖数: 21240
77

command 1: { /* a lot of data */ option: "rain" }
command 2: { /* a lot of data */ option: "snow" }
command 2: { /* a lot of data */ option: "clear" }
现在我想表示 "rain" or "snow", 咋整?
难道这些不是akka和storm早就解决的了吗?

【在 P********l 的大作中提到】
:
: 我没说有actor. 这里也没有actor.
: command 1: { /* a lot of data */ option: "rain" }
: command 2: { /* a lot of data */ option: "snow" }
: command 2: { /* a lot of data */ option: "clear" }
: 现在我想表示 "rain" or "snow", 咋整?
: command 1: {role: "manager"}
: command 1: {role: "manager", age: 50}
: act {role: "manager", age: 50}
: 这个act和哪个command匹配? 是先遇到匹配呢还是most specific匹配? 更复杂的情况

P********l
发帖数: 452
78

不会吧. 每个actor都可以有自己的状态. 这里的command行吗? 人家说了,这叫micro
service.

【在 p*****2 的大作中提到】
:
: command 1: { /* a lot of data */ option: "rain" }
: command 2: { /* a lot of data */ option: "snow" }
: command 2: { /* a lot of data */ option: "clear" }
: 现在我想表示 "rain" or "snow", 咋整?
: 难道这些不是akka和storm早就解决的了吗?

P********l
发帖数: 452
79
然!

【在 z****e 的大作中提到】
: event-driven被证明过并不适合所有的business logic
: 更适合一些business logic,比如保险的理赔流程
: 工作流就是大面积使用event driven的产物
: 不过对于business logic来说,最大的问题在于旧代码的复用
: 而不是如何简化新生代码,大部分公司的business logic的代码都不允许随便重构
: 那如何复用现有代码就是一个大问题
: 所以真正用得比较多的概念是esb,service bus这些
: 通过给不同系统提供统一接口以实现集成的目的
: single thread完全没有必要,如果各个线程之间不需要share状态的话
: 我直接上个多线程也没什么问题,单线程还要去留意一下这个是单线程,这里有

P********l
发帖数: 452
80

我觉得有点穿越了. 你不是问那个micro service module的问题吗? 和akka没关系吧.

【在 p*****2 的大作中提到】
:
: command 1: { /* a lot of data */ option: "rain" }
: command 2: { /* a lot of data */ option: "snow" }
: command 2: { /* a lot of data */ option: "clear" }
: 现在我想表示 "rain" or "snow", 咋整?
: 难道这些不是akka和storm早就解决的了吗?

相关主题
vertx里面同一个module多个verticle的疑问请java大牛谈谈大并发的解决方案
如果单一平台是王道的话,vert.x显然会胜啊多线程,异步,并发冲突,fp和其它
顺便和nod101说说做产品spring 是一个event loop一直在跑么?然后处理各种event?
进入Programming版参与讨论
p*****2
发帖数: 21240
81

为什么不行?

【在 P********l 的大作中提到】
:
: 我觉得有点穿越了. 你不是问那个micro service module的问题吗? 和akka没关系吧.

p*****2
发帖数: 21240
82

.
我不是说跟akka类似吗?我没用过micro,所以不能肯定的回答。

【在 P********l 的大作中提到】
:
: 我觉得有点穿越了. 你不是问那个micro service module的问题吗? 和akka没关系吧.

P********l
发帖数: 452
83
你说呢?

【在 p*****2 的大作中提到】
:
: .
: 我不是说跟akka类似吗?我没用过micro,所以不能肯定的回答。

p*****2
发帖数: 21240
84

我要是知道我就不问了呀

【在 P********l 的大作中提到】
: 你说呢?
z****e
发帖数: 54598
85
talk这种常用动词本身可以做名词
没有必要动名词一把
多此一举
我现在正准备废掉storm,用vert.x来替换web server
然后用spring管理component
效率比storm更高,代码也多不了多少

【在 l*********s 的大作中提到】
: Talking is cheap.
l*********s
发帖数: 5409
86
行啊,弄好了写个review吧。

【在 z****e 的大作中提到】
: talk这种常用动词本身可以做名词
: 没有必要动名词一把
: 多此一举
: 我现在正准备废掉storm,用vert.x来替换web server
: 然后用spring管理component
: 效率比storm更高,代码也多不了多少

P********l
发帖数: 452
87
看它第一个例子 http://senecajs.org/
1. require('seneca')()给出系统唯一的instance. 然后,给这个全系统唯一 add
command pattern. 它接受JSON格式作为query然后返回JSON格式的结果. 别想太多, 是
JSON格式的query和结果而已.
2. 然后, act把请求和数据封装在一起让command去match, 返回结果.
我觉得就是这么简单/简陋. 没有actor什么事.
如果是actor的话, 虽然没仔细看, 感觉oop2的fast messager就很对路. 至少你要找到
那个actor在哪里, 然后给它发消息.

【在 p*****2 的大作中提到】
:
: 我要是知道我就不问了呀

p*****2
发帖数: 21240
88

我明白了。你确实没看全。

【在 P********l 的大作中提到】
: 看它第一个例子 http://senecajs.org/
: 1. require('seneca')()给出系统唯一的instance. 然后,给这个全系统唯一 add
: command pattern. 它接受JSON格式作为query然后返回JSON格式的结果. 别想太多, 是
: JSON格式的query和结果而已.
: 2. 然后, act把请求和数据封装在一起让command去match, 返回结果.
: 我觉得就是这么简单/简陋. 没有actor什么事.
: 如果是actor的话, 虽然没仔细看, 感觉oop2的fast messager就很对路. 至少你要找到
: 那个actor在哪里, 然后给它发消息.

P********l
发帖数: 452
89
完全可能. 大牛来讲讲.

【在 p*****2 的大作中提到】
:
: 我明白了。你确实没看全。

g*****g
发帖数: 34805
90
Actor has nothing to do with service. You can have as many actors as you
like in one service. It's like you can have many jobs in a java service.

【在 p*****2 的大作中提到】
:
: 我明白了。你确实没看全。

相关主题
Node.js 有用过的么 什么评价看了一下Meteor很不错
parallel programming的复杂性分层/流行工具技术名词JS就应该杜绝OOP
用了一下node.js, 看来js要一同天下啊,只要那些人现在.NET也往Node上转了
进入Programming版参与讨论
p*****2
发帖数: 21240
91

default是localhost

【在 P********l 的大作中提到】
: 完全可能. 大牛来讲讲.
p*****2
发帖数: 21240
92

他这个service定义跟你的定义不一样

【在 g*****g 的大作中提到】
: Actor has nothing to do with service. You can have as many actors as you
: like in one service. It's like you can have many jobs in a java service.

1 (共1页)
进入Programming版参与讨论
相关主题
用了一下node.js, 看来js要一同天下啊,只要那些人大家真心觉得akka好用吗?
看了一下Meteor很不错一直不习惯immutability
JS就应该杜绝OOP异步的话,所有语言都有自己的环境
现在.NET也往Node上转了vertx里面同一个module多个verticle的疑问
大家讨论过了node.js了吗?如果单一平台是王道的话,vert.x显然会胜啊
周末上点有用的信息顺便和nod101说说做产品
大牛们比较下 Node, Go, Scala请java大牛谈谈大并发的解决方案
nodejs cluster和vert.x比较怎么样?多线程,异步,并发冲突,fp和其它
相关话题的讨论汇总
话题: service话题: js话题: actor话题: command话题: soa