producer 发送消息1,2,3,4
consumer 接收消息1,2,3,4
consumer 崩溃/断开
producer 发送消息5,6,7
consumer 恢复,应该从5而不是7开始收到消息
对于这种结果,offset我必须使用哪个值以及需要做哪些其他更改/配置
我正在使用Mockito和Junit来测试应用程序,我需要在模拟时向HttpServletRequest添加标头.这是我第一次使用模拟概念来测试应用程序.在使用这个模拟概念时,我们如何设置标题来请求对象?
Java代码:
@Produces({ MediaType.APPLICATION_JSON })
@Path("/devices")
public class DvrRestService {
private static final Logger logger = LoggerFactory.getLogger(DvrRestService.class);
private DvrMiddleService dvrMiddleService;
@Inject
public DvrRestService(DvrMiddleService dvrMiddleService) {
this.dvrMiddleService = dvrMiddleService;
}
@GET
@Path("/{deviceId}/metadata")
public Response getDeviceMetadata(@Context HttpServletRequest request, @PathParam("deviceId") String deviceId,
@RequiredSession final Session session) {
try {
public static String[] REQUEST_HEADERS = { "if-none-match" };
List<String> requiredHeaders = Lists.newArrayList(REQUEST_HEADERS);
Map<String, String> headers = new HashMap<String, String>();
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) { // here gettting NullPointerException
String headerName = headerNames.nextElement(); …Run Code Online (Sandbox Code Playgroud) 我正在使用Windows10,eclipse-neon和JDK1.8版本,我得到以下异常.
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.bytedeco.javacpp.Loader.load(Loader.java:385)
at org.bytedeco.javacpp.Loader.load(Loader.java:353)
at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2719)
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391)
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385)
at com.segment.processor.AudioMain.main(ApacheMathAudioMain.java:20)
Error getting static method ID of org/bytedeco/javacpp/Loader/putMemberOffset
Run Code Online (Sandbox Code Playgroud)
这是我在pom.xml中使用的依赖项
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>ffmpeg</artifactId>
<version>3.0.2-1.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv</artifactId>
<version>3.1.0-1.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>0.10</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 这是cron我尝试过的表情,0 0 0 */14 * ?它给出了以下时间表
开始时间:- Friday, September 8, 2017 1:25 AM
下次预定:-
1. Friday, September 15, 2017 12:00 AM
2. Friday, September 29, 2017 12:00 AM
3. Sunday, October 1, 2017 12:00 AM
4. Sunday, October 15, 2017 12:00 AM
5. Sunday, October 29, 2017 12:00 AM
Run Code Online (Sandbox Code Playgroud)
这个表达式每个月每2周工作一次,但我的要求是它必须每2周运行一次,我的意思是执行后sept 29th,nxt schedule应该是,October 13但它正在为October 1
我的应用程序结构就像
我创建了一个注释如下: -
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SampleAnnotation {
}
Run Code Online (Sandbox Code Playgroud)
然后创建了一个Sample Interceptor:
public class SampleInterceptor implements MethodInterceptor {
private static final Logger logger = LoggerFactory.getLogger(SampleInterceptor.class);
@Inject
SampleService sampleService; // this is not working
public Object invoke(MethodInvocation invocation) throws Throwable {
logger.info("SampleInterceptor : Interceptor Invoked");
Object result = invocation.proceed();
Observable<List<Sample>> observable = (Observable<List<Sample>>) result;
SampleSender sender = null;
List<Sample> sampleList = observable.toBlocking().first();
for(Sample sample : sampleList ) {
sender = new SampleSender();
sender.setBoolean(sample.isBoolean());
logger.info("Pushing Data into Sender");
sampleService.insert(String.join("_", "key", "value"), sender); …Run Code Online (Sandbox Code Playgroud) 我有一个lambda函数,我正在为aws lambda函数创建触发器,我使用规则创建了54个触发器,我必须创建更多触发器,但是当我再添加1个触发器时,却收到此错误消息The final policy size (20539) is bigger than the limit (20480)。
如何增加保单大小?
策略大小意味着json的大小?
我对微服务有疑问。假设有5个微服务,例如M1,M2,M3,M3,M4和M5。有4个数据库,由4个微服务连接/访问。例如,M2连接到MySql,M3连接到Cassandra,M4连接到MangoDb,M5连接到Oracle。
现在
步骤1:M1调用M2以更新mySql中的某些用户数据,并成功更新,最后得到M2的成功响应
步骤2:M1呼叫M3以更新Cassandra中的某些数据,并成功更新,最后得到M3的成功响应
步骤3:M1调用M4以更新MangoDb中的某些数据,但由于某些数据库服务器问题或任何其他问题而失败。
在这里,我的要求是,我想回滚以前的微服务(M2和M3)所发生的数据库更改
为了实现这种回滚方案,我们需要做什么?
无法启动组件[StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext [/ projectname]]
引起:java.lang.LinkageError:加载器约束违规:加载器(org/apache/catalina/loader/WebappClassLoader的实例)先前为名为"javax/servlet/ServletContext"的其他类型启动加载
org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Tomcat] .StandardHost [localhost]]
在打印堆栈跟踪中,它也没有提供任何内容ClassNotFoundException :HttpServletRequest.
我在pom.xml文件中添加了tomcat maven插件.我想运行一些集成测试,所以我在集成开始之前添加了插件来运行.这是我的插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8989</port>
<systemProperties>
<archaius.deployment.environment>test</archaius.deployment.environment>
</systemProperties>
<path>/${project.name}</path>
</configuration>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>run</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<systemProperties>
<!-- We want test configuration for running integration tests. -->
<archaius.deployment.environment>test</archaius.deployment.environment>
<logback-lib.env>filesystem</logback-lib.env>
</systemProperties>
<fork>true</fork>
</configuration>
</execution>
<execution>
<id>tomcat-shutdown</id>
<goals>
<goal>shutdown</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我在pom.xml文件中添加了这个插件.
我还添加servlet dependency并提供了范围provided.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency> …Run Code Online (Sandbox Code Playgroud) 更新主题的TTL,以便记录在主题中保留10天。仅针对此主题执行此操作。保留所有其他主题TTL相同的当前配置
更新TTL主题,以便记录在主题中保留10天.我必须为特定主题执行此操作,只需将所有其他主题TTL保持相同,当前配置,我必须使用,java因为我正在kafka通过Java 推送主题.我正在设置以下属性来推送主题kafka
Properties props = new Properties();
props.put("bootstrap.servers", KAFKA_SERVERS);
props.put("acks", ACKS);
props.put("retries", RETRIES);
props.put("linger.ms", new Integer(LINGER_MS));
props.put("buffer.memory", new Integer(BUFFER_MEMORY));
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Run Code Online (Sandbox Code Playgroud) 我需要使用wiremock 技术模拟java.net.Socket 类......是否可以对Socket 类进行wiremock?
我想增加文件tombstone_failure_threshold中的值cassandra.yaml,默认情况下该值为100K
我不确定要设置的值。
我浏览了一些文档,我看到减少默认值gc_grace_seconds是864000(10 天)。如果您的TTL数据设置为6 days,那么您可能需要更改gc_grace_seconds为604800 (7 days)以更快地删除逻辑删除。但我没有设置TTL我的数据。如果我减少gc_grace_seconds值,是否会影响tombstone_failure_threshold或更好地更改文件tombstone_failure_threshold中的值cassandra.yaml?
`CREATE TABLE test.topics (
topic_name text PRIMARY KEY,
latest_time_stamp double
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0 …Run Code Online (Sandbox Code Playgroud) 我已经为Kafka中的主题设置了TTL为7天,我从Kafka数据库中获取数据并将其存储在数据库中,但是从过去5天开始我的数据库服务器已关闭,现在我必须从过去5天获取消息Kafka并将其存储在数据库中注意:从过去5天开始没有问题Kafka.
java ×7
apache-kafka ×4
aop ×1
aws-lambda ×1
cassandra ×1
cron ×1
guice ×1
javacpp ×1
javacv ×1
maven ×1
maven-plugin ×1
mockito ×1
spring-boot ×1
tomcat ×1
unit-testing ×1
wiremock ×1