我刚刚开始使用动物园管理员在卡拉夫的DOSGi。我在Karaf的一个实例中提供服务,在另一个实例中提供消费者。服务端运行良好。一旦发布,我可以在安装了Zookeeper服务器的Karaf控制台中使用log:display命令查看它,并且我也可以通过浏览器访问wsdl。问题出在消费端。当服务启动时,它应该写一条消息(下面的ref代码),但是它从来没有发生。消费者代码:
package org.osgi.proyecto.dev.internal.consumer;
import org.osgi.proyecto.dev.consumer.IConsumer;
import org.osgi.proyecto.dev.sensor.ISensor;
public class Consumer implements IConsumer {
public void sensorActivo(ISensor sensor){
System.out.println("El sensor esta activo");
}
}
和component.xml:
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" enabled="true" name="OSGI_Bundle-Consumer">
<implementation class="org.osgi.proyecto.dev.internal.consumer.Consumer"/>
<reference bind="sensorActivo" cardinality="1..1" interface="org.osgi.proyecto.dev.sensor.ISensor" name="ISensor" policy="dynamic"/>>
</scr:component>
清单:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OSGI_Bundle-Consumer
Bundle-SymbolicName: OSGI_Bundle-Consumer2
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Service-Component: OSGI-INF/component.xml
Import-Package: org.osgi.framework;version="1.8.0",
org.osgi.proyecto.dev.sensor
我尝试强制消费者捆绑包(start bundle),它给我这个错误:
启动捆绑包 137 时出错:无法解析OSGI_Bundle-使用者 [137](R 137.1):缺少要求 [OSGI_Bundle-使用者 [137](R 137.1)] osgi.wiring.package;(osgi.wiring.package=org.osgi.proyecto.dev.sensor)未解决的要求: [[OSGI_Bundle-消费者 [137](R 137.1)] osgi.wiring.package;(osgi.wiring.package=org.osgi.proyecto.dev.sensor)]
似乎存在依赖错误。这已解决在消费者实例中安装传感器包(已安装状态)。如何避免在两个Karaf实例中安装相同的传感器包?
应将服务接口放在单独的捆绑包中。然后,您可以在使用者端安装使用者和接口捆绑包,在服务器端安装服务和接口捆绑包。
问题内容: 我已经嵌入了Felix。我有一些API捆绑包和Impl。API导出接口。Impl导入该接口并在激活器中注册impl。现在我要获取C隐含的OSGi 现在,我想与它进行交互。我可以反思 但是我不能投 我猜这来自不同的ClassLoader。但是我该如何解决呢?我们如何从外部与OSGi上下文进行交互?或者我们可以将其全部放入OSGi容器中? 问题答案: 如果要嵌入OSGi,则该服务的API(
当消费者实例组出现时,会不会对Kafka的性能产生任何影响。重新启动时id已更改。老年人会发生什么。id它是否仍在代理内存中,或者何时将被删除?假设我有1000个消费者实例,并且所有实例都动态分配组。重新启动时的id。 可以为{log.retention.ms'}提供什么列表值。我可以设置为1毫秒吗?
我们有一个制作人 在开发过程中,我重新部署了producer应用程序,并做了一些更改。但在此之后,我的消费者没有收到任何消息。我尝试重新启动消费者,但没有成功。问题可能是什么和/或如何解决? 消费者配置: 生产者配置: 编辑2: 5分钟后,消费者应用程序死亡,但以下情况除外:
apache kafka文档提到以下内容: 如果所有使用者实例具有相同的使用者组,那么记录将有效地在使用者实例上进行负载平衡。 如果所有的使用者实例都有不同的使用者组,那么每个记录都将广播给所有的使用者进程。
Feign介绍 Feign是一个声明式的web service客户端,它使得编写web service客户端更为容易。创建接口,为接口添加注解,即可使用Feign。Feign可以使用Feign注解或者JAX-RS注解,还支持热插拔的编码器和解码器。Spring Cloud为Feign添加了Spring MVC的注解支持,并整合了Ribbon和Eureka来为使用Feign时提供负载均衡。 译自:h
Ribbon介绍 Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负