小编Sat*_*Sat的帖子

kafka最早和最新的偏移值之间有什么区别

producer 发送消息1,2,3,4

consumer 接收消息1,2,3,4

consumer 崩溃/断开

producer 发送消息5,6,7

consumer 恢复,应该从5而不是7开始收到消息

对于这种结果,offset我必须使用哪个值以及需要做哪些其他更改/配置

apache-kafka kafka-consumer-api

17
推荐指数
1
解决办法
2万
查看次数

如何使用Headers模拟HttpServletRequest?

我正在使用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)

java unit-testing mockito

10
推荐指数
2
解决办法
2万
查看次数

java.lang.NoClassDefFoundError:无法初始化类org.bytedeco.javacpp.avutil

我正在使用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)

java javacv javacpp

7
推荐指数
1
解决办法
3907
查看次数

如何每2周创建一个cron表达式

这是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

cron

7
推荐指数
3
解决办法
9389
查看次数

使用Guice框架编写基于Annotation的Method Interceptor时无法注入java对象

我的应用程序结构就像

我创建了一个注释如下: -

@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)

java aop guice microservices

7
推荐指数
1
解决办法
130
查看次数

最终策略大小(20539)大于限制(20480)

我有一个lambda函数,我正在为aws lambda函数创建触发器,我使用规则创建了54个触发器,我必须创建更多触发器,但是当我再添加1个触发器时,却收到此错误消息The final policy size (20539) is bigger than the limit (20480)

如何增加保单大小?

策略大小意味着json的大小?

aws-lambda

5
推荐指数
1
解决办法
1358
查看次数

如何回滚微服务

我对微服务有疑问。假设有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)所发生的数据库更改

为了实现这种回滚方案,我们需要做什么?

spring-boot microservices

5
推荐指数
2
解决办法
78
查看次数

java.lang.LinkageError:加载器约束违规:loader(org/apache/catalina/loader/WebappClassLoader的实例)

无法启动组件[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)

java integration-testing tomcat maven-plugin maven

4
推荐指数
1
解决办法
6298
查看次数

为Kafka中的特定主题更改TTL

更新主题的TTL,以便记录在主题中保留10天。仅针对此主题执行此操作。保留所有其他主题TTL相同的当前配置

apache-kafka

4
推荐指数
1
解决办法
3431
查看次数

使用Java更新kafka中特定主题的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)

java apache-kafka kafka-producer-api

3
推荐指数
1
解决办法
1820
查看次数

如何使用wiremock模拟java.net.Socket?

我需要使用wiremock 技术模拟java.net.Socket 类......是否可以对Socket 类进行wiremock?

java wiremock

2
推荐指数
1
解决办法
1672
查看次数

如何增加 tombstone_failure_threshold 值

我想增加文件tombstone_failure_threshold中的值cassandra.yaml,默认情况下该值为100K

我不确定要设置的值。

我浏览了一些文档,我看到减少默认值gc_grace_seconds864000(10 天)。如果您的TTL数据设置为6 days,那么您可能需要更改gc_grace_seconds604800 (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)

cassandra cassandra-3.0

2
推荐指数
1
解决办法
2225
查看次数

如何使用Java从Kafka获取最近5天的消息

我已经为Kafka中的主题设置了TTL为7天,我从Kafka数据库中获取数据并将其存储在数据库中,但是从过去5天开始我的数据库服务器已关闭,现在我必须从过去5天获取消息Kafka并将其存储在数据库中注意:从过去5天开始没有问题Kafka.

java apache-kafka kafka-consumer-api

1
推荐指数
1
解决办法
1608
查看次数