我想知道使用Callable在Spring中使用@Async和Servlet 3异步请求实现的一般用例.
据我了解,@ Async用于使任何方法(特别是任何服务方法)异步执行.
@Async
void doSomething(String s) {
// this will be executed asynchronously
}
Run Code Online (Sandbox Code Playgroud)
以及任何返回Callable的控制器
@RequestMapping("/view")
public Callable<String> callableWithView(final Model model) {
return new Callable<String>() {
@Override
public String call() throws Exception {
Thread.sleep(2000);
model.addAttribute("foo", "bar");
model.addAttribute("fruit", "apple");
return "views/html";
}
};
}
Run Code Online (Sandbox Code Playgroud)
我很困惑,什么时候使用什么.使用异步servlet/controller和spring @Async会产生什么影响?
我对卡桑德拉很新.刚开始探索.
我正在运行单节点cassandra服务器,并且在使用nodetool命令查看cassandra的状态时遇到问题.
我在我的VM上配置了主机名,作为/ etc/hosts中的myMachineIP cass1
和
我使用listen_address配置了我的cassandra_instal_path/conf/cassandra.yaml文件,将rpc_address配置为localhost,将clustername配置为casscluster
(也尝试使用我的主机名cass1作为listen_address/rpc_address)
不知道为什么我无法使用nodetool命令获取status的原因.
$ nodetool
Cannot resolve '127.0.0.1': unknown host
$ nodetool -host 127.0.0.1
Cannot resolve '127.0.0.1': unknown host
$ nodetool -host cass1
Cannot resolve 'cass1': unknown host
Run Code Online (Sandbox Code Playgroud)
但我能够连接到cassandra-cli
控制台输出:
Connected to: "casscluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.2.8
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
Run Code Online (Sandbox Code Playgroud)
我的/ etc/hosts看起来像:
127.0.0.1 localhost.localdomain localhost.localdomain localhost4 localhost4.localdomain4 localhost cass1
::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhost cass1
[myMachineIP] cass1
Run Code Online (Sandbox Code Playgroud)
这可能是我无法运行nodetool的原因?
请帮忙.
我正在尝试使用CQL客户端从cassandra导出数据.列族中包含大约100000行.当我使用COPY TO命令将dta复制到csv文件时,我得到以下rpc_time out错误.
copy mycolfamily to '/root/mycolfamily.csv'
Request did not complete within rpc_timeout.
Run Code Online (Sandbox Code Playgroud)
我在跑:
[cqlsh 3.1.6 | Cassandra 1.2.8 | CQL spec 3.0.0 | Thrift protocol 19.36.0]
如何增加RPC超时限制?
我尝试rpc_timeout_in_ms: 20000
在我的conf/cassandra.yaml
文件中添加(defalut是10000).但是当重新启动cassandra时,我得到:
[root@user ~]# null; Can't construct a java object for tag:yaml.org,2002:org.apache.cassandra.config.Config; exception=Cannot create property=rpc_timeout_in_ms for JavaBean=org.apache.cassandra.config.Config@71bfc4fc; Unable to find property 'rpc_timeout_in_ms' on class: org.apache.cassandra.config.Config
Invalid yaml; unable to start server. See log for stacktrace.
Run Code Online (Sandbox Code Playgroud) 我想使用混淆器(例如ProGuard)来保护我的Web应用程序中的IP.我知道混淆字节码的局限性,并且可以反编译它.但是我觉得好一点,如果我知道网络服务器上有一个混淆的war文件......在用ProGuard进行首次测试之后,我想知道他们的'入口点'方法是否对使用SpringMVC的web应用程序有用..和春天一点儿.如果我必须"保留"我的所有@Repository,@ Service,@ Controller和@Component注释类,并因此将它们排除在混淆之外,则不会满足此类工具的主要问题.我读过,我应该使用基于Java的Spring配置,而在Spring 3.1中,这方面有很多改进,但值得使用它吗?任何工具都可以真正混淆Spring Beans吗?
多米尼克
cassandra ×2
spring ×2
asynchronous ×1
callable ×1
cql3 ×1
java ×1
nodetool ×1
obfuscation ×1
proguard ×1