我听说过很多关于Akka框架(Java/Scala服务平台)的狂热,但到目前为止还没有看到很多用例的实际例子.所以我有兴趣听听开发人员成功使用它的事情.
只有一个限制:请不要包括编写聊天服务器的情况.(为什么?因为这被过度使用作为许多类似事物的一个例子)
有没有人有关于协议缓冲区与BSON(二进制JSON)或一般JSON的性能特征的任何信息?
这些似乎是用于HTTP的良好二进制协议.我只是想知道从长远来看哪个C#环境会更好.
这是我在BSON和Protocol Buffers上阅读的一些信息.
我有一个看起来像这样的Javascript对象.
ips[ipID] = {}
所以我最终得到了一堆需要存储看起来像的信息的ips
ipID { name : 'val', anotherName : 'anotherVal' }
我的问题是,如何动态添加这些名称和值?
我将我的messageconverter配置为杰克逊的
class Foo{int x; int y}
Run Code Online (Sandbox Code Playgroud)
并在控制器中
@ResponseBody
public Foo method(){
return new Foo(3,4)
}
Run Code Online (Sandbox Code Playgroud)
从那个我期望从服务器返回一个JSON字符串{x:'3',y:'4'},没有任何其他配置.但得到我的ajax请求的404错误响应
如果使用@ResponseBody注释该方法,则将返回类型写入响应HTTP正文.返回值将使用HttpMessageConverters转换为声明的方法参数类型.
我错了吗 ?或者我应该使用序列化程序将我的响应对象转换为Json字符串,然后将该字符串作为响应返回.(我可以正确地进行字符串响应)或者我应该进行其他配置吗?比如为Foo类添加注释
这是我的conf.xml
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
Run Code Online (Sandbox Code Playgroud)
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)
尽管Github为Java开源项目提供了一个很好的家,但与更成熟的开源托管位置相比,仍有一些东西仍然缺失.到目前为止,我已经发现Sonatype为开源项目提供了Maven存储库访问,这解决了一个问题; 用户/ dev邮件列表有很多解决方案.
但我现在要解决的一件事是发布自动生成的javadocs用于在线浏览.虽然通过Maven发布源代码jar对IDE有所帮助,但我仍然希望能够在线浏览javadoc而无需下载或导入项目.对于在Github上托管的项目,是否有人知道实现这一目标的好方法?(不一定是Github提供的东西,但理想情况下,当发布被削减时可以自动化的东西)
是否可以使用StAX(特别是woodstox)使用换行符和制表符格式化输出xml,即以下列形式:
<element1> <element2> someData </element2> </element1>
代替:
<element1><element2>someData</element2></element1>
如果在woodstox中无法做到这一点,是否有其他轻量级库可以做到这一点?
我需要为MySQL编写设置脚本(通常使用mysql控制台中的'source [file]'运行),这部分依赖于现有数据,并且环境存在差异,这意味着有时脚本会失败.一个常见的情况是带有select(用于定位id)的'SET'语句无法找到任何内容; console将value设置为NULL.在这种情况下,我希望脚本失败; 我听说这会通过引发错误(与其他DB)完成.然而,似乎MySQL没有办法做到这一点.
在这种情况下是否有强制失败的好方法?就像现在一样,当insert尝试使用null时,更新将失败,但即使这样也不会终止脚本本身.理想情况下,只要遇到问题,它就会失败并终止.
JDK提供了分配所谓的直接ByteBuffers的能力,其中内存在Java堆之外分配.这可能是有益的,因为垃圾收集器不会触及这个内存,因此不会导致GC开销:这对于像缓存这样的长期存在的东西来说非常有用.
但是,现有实现存在一个关键问题:当拥有ByteBuffer被垃圾收集时,底层内存只是异步分配; 没有办法强迫早期解除分配.这可能有问题,因为GC循环本身不受ByteBuffers处理的影响,并且假设ByteBuffers可能驻留在Old Generation内存区域,则可能在ByteBuffer不再使用后几小时调用GC.
但理论上应该可以直接使用sun.misc.Unsafe方法(freeMemory,allocateMemory):这就是JDK本身用于分配/解除分配本机内存的方法.看一下代码,我看到的一个潜在问题是内存双重释放的可能性 - 所以我想确保正确清理状态.
任何人都可以指向我这样做的代码吗?理想情况下,想要使用它而不是JNA.
注意:我看到这个问题有点相关.
看起来指出的答案是很好的方法:这里是使用这个想法的Elastic Search的代码示例.谢谢大家!
虽然Thrift格式相对广泛使用(并且项目仍然存在),但我无法找到底层数据格式的规范.或格式,因为显然至少有两种格式; 标准的,紧凑的格式.
鉴于它的广泛使用,我希望它只是我可怜的google-fu,并且存在规范或规范(源代码之外).如果是这样,请分享!
编辑:Java源代码对于确定格式并不算太糟糕; 参见TBinaryProtocol.java和TCompactBinaryProtocol.java; 其中包含基元,由生成的类调用(扩展TBase)
编辑2:虽然它不包含格式规范,但" 缺失的指南 "是很好的阅读.
java ×6
json ×3
akka ×1
asynchronous ×1
bonecp ×1
bson ×1
c# ×1
c3p0 ×1
comparison ×1
database ×1
dataformat ×1
exception ×1
fast-fail ×1
formatting ×1
github ×1
jackson ×1
javadoc ×1
javascript ×1
memory ×1
mysql ×1
open-source ×1
scala ×1
spring ×1
spring-mvc ×1
sql ×1
stax ×1
thrift ×1
use-case ×1
woodstox ×1
xml ×1