在Maven-land中,只要我想简单地下拉特定POM文件的传递依赖项,我只需打开一个shell,导航到POM所在的位置,然后运行:
mvn dependency:copy-dependencies
Run Code Online (Sandbox Code Playgroud)
在繁荣时,Maven target/在当前目录中创建一个目录,并将所有可传递的JAR放置到该位置.
我现在正试图切换到Gradle,但Gradle似乎没有相同的功能.所以我问:Gradle是否有相当于Maven的copy-dependencies? 如果是这样,有人可以提供一个例子吗?如果没有,其他开发者会发现这对Gradle社区有价值吗?
我有相当数量的Apache Camel(路由/调解/编排引擎;轻量级ESB)经验,并试图了解Akka之间的区别:
Dispatcher,PinnedDispatcher,CallingThreadDispatcher)根据文件:
调度员是:
...是让Akka演员"打勾"的原因,它可以说是机器的引擎.
但这并没有真正解释调度员是什么或与演员的关系是什么.
路由器是:
消息可以通过路由器发送,以有效地将它们路由到目标参与者,称为路由器.路由器可以在actor的内部或外部使用,您可以自己管理路由或使用具有配置功能的自包含路由器actor.但这听起来很像调度员.
游泳池是:
[一种]路由器[that]创建路由器作为子actor,如果它们终止则将它们从路由器中删除.
团体是:
[类型] actor [路由]在路由器外部创建,路由器使用actor选择将消息发送到指定路径,而不监视终止.
活动巴士是:
...向演员组发送消息的方法
这听起来就像调度员和路由器.
所以我的主要关注点是:
最近几种服务发现工具已经变得流行/"主流",我想知道在哪些主要用例中应该使用它们而不是传统的负载平衡器.
使用LB,您可以在平衡器后面聚集一堆节点,然后客户端向平衡器发出请求,然后平衡器(通常)将这些请求循环到集群中的所有节点.
通过服务发现(Consul,ZK等),您可以让集中的"共识"服务确定特定服务的哪些节点是健康的,并且您的应用程序连接到服务认为健康的节点.因此,虽然服务发现和负载平衡是两个独立的概念,但服务发现可为您提供负载平衡作为方便的副作用.
但是,如果负载均衡器(比如HAProxy或nginx)内置了监控和运行状况检查,那么您几乎可以将服务发现作为负载均衡的副作用!这意味着,如果我的LB知道不将请求转发到其集群中的不健康节点,那么这在功能上等同于共识服务器,告诉我的应用程序不要连接到不可靠的节点.
所以对我来说,服务发现工具感觉就像"6合1,其他半打"相当于负载均衡器.我在这里错过了什么吗?如果有人的应用程序架构完全基于负载平衡微服务,那么切换到基于服务发现的模型有什么好处?
load-balancing distributed-computing service-discovery consul microservices
我是新来的两个码头工人和领事,并想获得如何集装箱的应用程序可以使用领事的感觉既服务注册和KV对配置管理("配置").
我的理解是我可以:
myvm01.example.com(Ubuntu VM)上调出三个Docker-Consul容器(从而形成一个集群/仲裁); 然后myvm02.example.com(另一个Ubuntu VM).首先,如果任何一个看起来我误解了Docker和Consul(没有Registrator)的正常/正确使用,请首先纠正我!
假设我或多或少是正确的,我最近偶然发现了Registrator,现在更加困惑.Registrator似乎是您的应用程序容器和您的Consul(或您使用的任何注册表)服务器之间的中间人.
阅读他们的快速入门教程后,听起来你应该做的是:
myvm01.example.com像以前一样部署我的Consul集群/仲裁容器我的担忧:
我希望我的库的javadoc 的" Overview "页面基本上是整个JAR的用户/ API指南.我知道package-info.java在包中添加一个类允许你编写包级别的 javadocs,但是在jar级别呢?
我知道我可以README.md在项目的根目录中添加一个,但我喜欢将README视为库开发人员的文档(即,将维护库的人).但JavaDocs是将要使用该库的人的API指南.
请注意:我是一名Java开发人员,不熟悉Scala(遗憾的是).我会问答案中提供的任何代码示例都将使用Akka的Java API.
我正在尝试使用Akka FSM API来建模以下超级简单的状态机.实际上,我的机器要复杂得多,但这个问题的答案将允许我推断我的实际FSM.

所以我有两种状态:Off和On.您可以Off -> On通过拨打电话来启动机器SomeObject#powerOn(<someArguments>).您可以On -> Off通过拨打电话关闭电源SomeObject#powerOff(<someArguments>).
我想知道为了实现这个FSM,我需要哪些演员和支持类.我相信代表FSM的演员必须延伸AbstractFSM.但是什么类代表了两个州呢?什么代码公开并实现powerOn(...)和powerOff(...)状态转换?一个有效的Java示例,甚至只是Java伪代码,对我来说都有很长的路要走.
这里有Java 8,Guice 4.0和Akka 2.3.9.我试图弄清楚如何使用JSR330样式的@Inject注释来注释我的actor类,然后通过Guice将它们连接起来.
但实际上,我读过的每一篇文章(下面的一些例子)都使用了Scala代码示例,一个犯罪版本的Guice,或者是一个犯罪旧版本的Akka:
因此,给出以下Guice模块:
public interface MyService {
void doSomething();
}
public class MyServiceImpl implements MyService {
@Override
public void doSomething() {
System.out.println("Something has been done!");
}
}
public class MyActorSystemModule extends AbstractModule {
@Override
public void configure() {
bind(MyService.class).to(MyServiceImpl.class);
}
}
Run Code Online (Sandbox Code Playgroud)
并且考虑FizzActor到注入了MyService:
public class FizzActor extends UntypedActor {
private final MyService myService;
@Inject
public FizzActor(MyService myService) {
super();
this.myService = myService;
}
@Override
public void onReceive(Object message) …Run Code Online (Sandbox Code Playgroud) 有 | 是 | 这么多 | Spock | spec如何使用其标签的示例,例如:
// when -> then label combo
def "test something"() {
when:
// blah
then:
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
这样的标签组合如下:
when - > thengiven- > when- >thenexpectgiven - > expect但我无处可以找到有关这些标签的合法 /有意义组合的文档.例如,我可以:
def "do something"() {
when:
// blah
expect:
// blah
}
Run Code Online (Sandbox Code Playgroud)
我可否?我不知道.关于什么:
def "do something else"() {
when:
// blah
then:
// blah
expect:
// blah
where:
// blah
}
Run Code Online (Sandbox Code Playgroud)
我可否?再说一次,我不知道.但我想知道.
根据Spring Boot Devtools文档,devtools不会以"生产模式"运行; 也就是说,如果你执行你的Spring Boot应用程序,java -jar ..,它将不会使用devtools的内置JVM魔法.但是,Spring Boot入门文档只向您展示了运行Spring Boot应用程序的一种方法... via java -jar....
首先,我想知道:如何在非生产模式下运行Spring Boot应用程序?我知道您可以使用Spring Boot CLI(例如spring run)运行您的应用程序,但这是唯一的方法吗?
此外,相同的devtools文档提到您可以通过使用某些excludeDevtools选项从生产二进制文件中显式删除devtools jar ,但它们从不解释在何处/如何使用它.这里有任何例子/想法吗?
我需要将某些HTTP请求重定向到Spring Boot Web应用程序/服务,但是在请求端,Spring应用程序什么都不做,并且充当HTTP客户端(另一个服务)和请求的真实之间的直通目的地.但是当响应回到Spring应用程序(来自该目的地)时,我需要Spring应用程序能够检查响应,并在需要时可能对其采取措施.所以:
基本上,一个过滤器充当请求的传递,并且在远程服务执行并返回响应之后才真正做任何事情.
到目前为止,我最好的尝试是设置一个servlet过滤器:
@Override
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(request, response)
// How and where do I put my code?
if(responseContainsFizz(response)) {
// Send an alert (don't worry about this code)
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,我在哪里放置检查和响应的代码?使用我的代码时,我尝试从浏览器访问控制器时会抛出异常:
java.lang.IllegalStateException: STREAM
at org.eclipse.jetty.server.Response.getWriter(Response.java:910) ~[jetty-server-9.2.16.v20160414.jar:9.2.16.v20160414]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_92]
rest of stack trace omitted for brevity
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?