我正在市场上建立一个基于开源网络的Pub/Sub(观察者模式)库.我没有找到任何我喜欢的:
JMS - 与Java绑定,将消息内容视为哑二进制blob
NDDS - $$,使用IDL
CORBA/ICE - Pub/Sub构建在RPC之上,CORBA API不直观
JBOSS/ESB - 不太熟悉
如果这样的包可以满足以下条件,那就太好了:
基于网络
意识到有效负载数据,用户不必担心端/序列化问题
多语言支持(C++,ruby,Java,python会很好)
没有自动生成的代码(没有IDL!)
直观的订阅/主题管理
为了好玩,我创造了自己的.思考?
在了解highmem需要超过1GB的RAM时,我遗漏了一些东西.有人能指出我哪里出错吗?谢谢!
我知道的:
为内核操作保留1 GB进程的虚拟内存(高内存区域).用户空间可以使用剩余的3 GB.这是3/1分裂.
VM的虚拟内存功能将(连续)虚拟内存页面映射到物理页面(RAM).
我不知道的是:
什么操作使用内核虚拟内存?我想像内核空间中的kmalloc(...)这样的东西会使用内核虚拟内存.
我认为在这个方案下可以使用4GB的RAM.我不明白为什么内核1 GB虚拟空间是解决物理空间时的限制因素.这是我理解失败的地方.请指教.
我一直在读这篇文章(http://kerneltrap.org/node/2450),这很棒.但它并不能完全解决我的问题.
我正在尝试通过开发web-app-ish服务来更熟悉Haskell.
假设我正在开发一个Web服务器,我希望在请求之间保持持久状态; 例如,一个柜台.什么是Haskell的做事方式?
我在Google搜索中遇到了这个讨论.建议的解决方案看起来像是不该做的一个很好的例子.
我的一个想法是让请求处理程序接受一个MVar:
requestHandler :: MVar State -> IO (Maybe Response)
Run Code Online (Sandbox Code Playgroud)
注册处理程序时,可以使用在main中创建的MVar进行curry.
肯定有更好的办法.我不禁想到我正在以非功能性的方式解决这个问题.
谢谢!
git ×1
git-fetch ×1
git-remote ×1
happstack ×1
haskell ×1
linux ×1
linux-kernel ×1
middleware ×1
mom ×1
soa ×1