小编cri*_*007的帖子

Testcontainers SchemaRegistry 无法连接到 Kafka 容器

我想运行集成测试来测试我的 kafka 监听器和 avro 序列化。这需要一个 Kafka 和一个 Schema 注册表(也可以称为 Zookeeper)。

测试时,我当前必须使用 docker-compose.yml,但我想通过 testcontainers 构建所需的容器来减少用户错误。Kafka 和 Zookeeper 实例启动得很好,看起来工作得很好——我的应用程序可以创建所需的主题,并且监听器也被订阅,我什至可以通过 kafka 控制台生产者发送消息。

不起作用的是 SchemaRegistry。容器启动,显然连接到了ZK,但无法建立到broker的连接。它会重试连接一段时间,直到超时,然后容器停止。因此,我无法在测试中注册和读取用于(反)序列化的 avro 模式,因此失败。

我找不到 SR 显然可以连接到 ZK 但找不到我的经纪人的原因。

有人也遇到过这个问题吗?你成功运行了吗?如果是这样,怎么会这样?我需要 Kafka 和架构注册表测试容器完全可用于我的测试,因此不能忽略其中任何一个。

我也可以继续使用 docker-compose.yml,但我真的很想完全以编程方式设置我的测试环境。

架构注册表容器记录以下内容:

2023-02-08 16:56:09 [2023-02-08 15:56:09,556] INFO Session establishment complete on server zookeeper/192.168.144.2:2181, session id = 0x1000085b81e0003, negotiated timeout = 40000 (org.apache.zookeeper.ClientCnxn)
2023-02-08 16:56:09 [2023-02-08 15:56:09,696] INFO Session: 0x1000085b81e0003 closed (org.apache.zookeeper.ZooKeeper)
2023-02-08 16:56:09 [2023-02-08 15:56:09,696] INFO EventThread shut down for session: 0x1000085b81e0003 (org.apache.zookeeper.ClientCnxn)
2023-02-08 16:56:09 [2023-02-08 15:56:09,787] INFO …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka docker-compose testcontainers confluent-schema-registry

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

来自守护进程的错误响应:租用“moby-image-sha256:c274 ..”:未找到

运行命令 docker-compose up -d 在此处输入图像描述 出现此错误:来自守护程序的错误响应:租用“moby-image-sha256:c2740b69f111bd711c867e337c12bab4b3d720c987e0d09549fe95e6badc6ba8”:未找到

不知道这意味着什么。我在 M1 上。这是我的 docker 文件:

version: '3.9'

services:
  telikos-activityplanworkflow-service:
    container_name: telikos-activityplanworkflow-service
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      ##----Dependent images-----------
      broker:
        condition: service_healthy
      mongo:
        condition: service_started
    ##---Ports-------------
    ports:
      - 8080:8080
    expose:
      - 8080
    ##---Environment variables------------
    environment:
      - server.port=8080
      - kafkabootstrapservers=broker:9092
  ##-----------------------------------------
  #----docker-images------------------------------------------------------


  zookeeper:
    image: confluentinc/cp-zookeeper:6.2.0
    hostname: zookeeper
    container_name: zookeeperap
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  broker:
    image: confluentinc/cp-server:6.2.0
    hostname: broker
    container_name: brokerap
    depends_on:
      - zookeeper
    ports:
      - "29092:29092"
      - "9101:9101"
    environment:
      KAFKA_BROKER_ID: 1 …
Run Code Online (Sandbox Code Playgroud)

docker

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

为Android创建手机软件锁应用程序

我需要创建一个可以将手机锁定在某个特定事件上的应用程序.

要么我想以编程方式使用Require Pattern.

或者创建一个锁定应用程序,就像windows mobile一样,要输入数字而不是Pattern.

如果可以创建这个应用程序,请引导我到路径.

android

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

上下文菜单创建

我做了简单的菜单.

现在我该如何制作上下文菜单?

android contextmenu

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

错误在LINUX COMMAND LINE运行HIVE .. java版本= 1.7,HADOOP 2.3.0,Apache HIVE 1.1.0

root@hadoop:~# hive
Run Code Online (Sandbox Code Playgroud)
Logging initialized using configuration in jar:file:/usr/lib/hive/apache-hive-1.1.0-bin/lib/hive-common-1.1.0.jar!/hive-log4j.properties
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
        at jline.TerminalFactory.create(TerminalFactory.java:101)
        at jline.TerminalFactory.get(TerminalFactory.java:158)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
        at …
Run Code Online (Sandbox Code Playgroud)

hadoop hive

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

Android setText无法在TextView上运行

我试图将Textview的值更改为我正在查询解析的某些信息,但由于某种原因,.setText它没有生效.

我尝试谷歌搜索,但.getString也无法正常工作.我是Parse任何建议的新手?

我的代码如下:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.parse.FindCallback;
import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;

import org.w3c.dom.Text;

import java.util.List;


/**
* A simple {@link Fragment} subclass.
 */
public class productDetail extends Fragment {


public productDetail() {
    // Required empty public constructor
}






@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    final View theView = inflater.inflate(R.layout.fragment_product_detail, container, false);

    final TextView productNameLabel = (TextView) …
Run Code Online (Sandbox Code Playgroud)

java android parse-platform

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

不会在for循环中打印x

我试图让代码打印出x(每次平方x),直到它达到将当前时间(以毫秒为单位)分成单个数字的数字.它没有任何错误,但它也没有输出.如何将其打印出来?

public class Experiment {

    public static void main(String[] args){

         long start = System.currentTimeMillis();

         for(long x = 2; System.currentTimeMillis() / x <= 9; x=x*2){
             System.out.println(x);
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

java for-loop output

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

使方法能够采用两种不同的类型作为参数

我正在研究一个项目而且我已经厌倦了不断编写.set,所以我打算用一些方法来缩短代码并使其更快.我正在使用JButtons,JLabels和JTextFields,有没有办法可以编写一个能够.setInvisible(false)的方法; 在这些?或者我必须为每种类型都有单独的方法.谢谢!

例:

public void siv((JButton || JLabel || JTextField) input) {
input.setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)

***编辑:为了清楚我正在试图看看Java是否可以理解采用输入的方式而不是需要全部三种方式.我试图找到一种方法来做到这一点,而不做我在下面添加的内容:

private void siv(JButton input, JTextField input2, JLabel input3) {
    input.setVisible(false);
    input2.setVisible(false);
    input3.setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)

java parameters methods parameter-passing

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

RestAdapter Retrofit(2.0.2) 无法解析符号 android studio

我正在开发一个从 soundcloud 中选取数据的项目,但我似乎无法解决这个问题。请帮我。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/gson-2.6.2.jar')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup.retrofit2:converter-gson:2.0.2'
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码

RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(Config.API_URL).build();
        SCService scService = restAdapter.create(SCService.class);
        scService.getRecentTracks(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), new Callback<List<Track>>() {
            @Override
            public void onResponse(Call<List<Track>> call, Response<List<Track>> response) {
                Log.d(TAG, "First track title: " + tracks.get(0).getTitle());
            }

            @Override
            public void onFailure(Call<List<Track>> call, Throwable t) {
                Log.d(TAG, "Error: " + error);
            }
        });
Run Code Online (Sandbox Code Playgroud)

请帮忙!

java android retrofit retrofit2

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

Python if True*除非*

我试图找出一种方法,如果输入可被4整除,则返回true,但不是100,除非也是400.我尝试失败了:

def is_leap(year):
    leap = False

    if [year % 100 == 0 if not year % 400]:
        leap = False
    else:
        if leap % 4 == 0:
            leap = True
    return leap
Run Code Online (Sandbox Code Playgroud)

2100的输入可以被4和100整除但不是400,所以我希望它返回False.

我得出一个简单的结论

def is_leap(year):
    leap = False

    if year % 4 == 0 and year % 400 == 0:
        leap = True
    elif year % 4 == 0 and year % 100 != 0:
        leap = True
    return leap
Run Code Online (Sandbox Code Playgroud)

但除非是否有更简单或不同的方式来做?谢谢.

此外,虽然我主要倾向于使用python3.5来满足每个人的需求,但我喜欢2.7的简单性.任何帮助都将不胜感激.

python if-statement

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