Java项目连接kafka3.3.2失败

在尝试使用Java代码连接Kafka3.3.2时遇到连接拒绝的问题。报错信息显示连接localhost/127.0.0.1失败。解决方法是修改Kafka配置文件server.properties,将listeners配置为指定的IP地址,例如:listeners=PLAINTEXT://10.10.69.105:9092。

使用代码
使用如下官网代码连接服务器kafka

 Properties props = new Properties();
 props.put("bootstrap.servers", "10.10.69.105:9092");
 props.put("acks", "all");
 props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

 Producer<String, String> producer = new KafkaProducer<>(props);
 for (int i = 0; i < 100; i++)
     producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i)));

 producer.close();

出现如下报错:
15:32:00.347 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.common.network.Selector - [Producer clientId=producer-1] Connection with localhost/127.0.0.1 disconnected
java.net.ConnectException: Connection refused: no further information
    at sun.nio.ch.Socke

### 黑马商城 Java 项目部署报错解决方案 #### Maven 插件版本冲突问题 当执行 `package` 命令时,如果遇到 `Execution default-war of goal org.apache.maven.plugins:maven-war-plugin:2.2:war failed` 错误,通常是因为使用的插件版本过旧或者不兼容当前项目的依赖环境。可以尝试手动升级 `maven-war-plugin` 到最新稳定版(如 3.3.2),并修改 `pom.xml` 文件中的相关内容[^1]。 以下是更新后的 `pom.xml` 配置示例: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> </plugin> </plugins> </build> ``` #### 消息队列消费确认机制异常 在使用消息中间件(如 RabbitMQ 或 Kafka)的过程中,可能会因为消费者未正确处理消息而导致数据丢失或其他异常行为。根据描述,在消费者的 YAML 配置文件中设置了确认模式为 `none` 的情况下,即使消费者尚未完成业务逻辑处理,也会立即向 MQ 返回 ACK 确认消息已成功接收[^2]。 这种设置可能导致以下风险: - **数据一致性问题**:如果消费者崩溃或发生其他意外情况,则该条消息可能永久丢失。 - **不可靠的消息传递**:由于缺乏有效的确认机制,生产者无法得知实际的消费结果。 建议调整消费者的确认模式至手动确认 (`manual`) 并结合具体的业务场景实现可靠的消息交付策略。例如: ```java @RabbitListener(queues = "testQueue") public void receiveMessage(String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws IOException { try { System.out.println("Received Message: " + message); // 处理业务逻辑... processBusinessLogic(message); // 手动ACK确认 channel.basicAck(tag, false); } catch (Exception e) { // 根据具体需求选择 nack/reject channel.basicReject(tag, true); // requeue=true 表示重新入队 } } ``` #### Nacos 远程调用失败连接池优化 Nacos 提供的服务注册与发现功能能够有效支持微服务架构下的应用管理,但在某些特殊条件下(比如网络波动、资源不足等),可能出现服务间通信中断的现象。为了增强系统的健壮性和性能表现,推荐引入 OpenFeign 来简化 RESTful API 调用流程的同时也需关注其背后的 HTTP 客户端配置细节[^3]。 针对文中提到的商品服务和购物车服务突然失效的情况,除了简单重启 Nacos 实例外还需要深入排查是否存在如下潜在隐患: - 是否合理设置了 Feign Client 的超时时间? - 数据库链接数是否充足以应对高峰期访问压力? 下面给出一段关于如何自定义 Hystrix 和 Ribbon 属性的例子以便更好地控制负载均衡器的行为以及熔断保护措施的应用实例代码片段: ```properties feign.client.config.default.connect-timeout=5000 feign.client.config.default.read-timeout=5000 ribbon.ReadTimeout=5000 ribbon.ConnectTimeout=5000 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=6000 ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值