2016-03-31 8 views
1

Я новичок в Apache Camel, и я пытаюсь создать простой прокси-сервер, который перенаправляет все сообщения с localhost: 3260 на localhost: 3261 с помощью Apache Mina. Я основываюсь на некоторых примерах в Интернете (https://www.youtube.com/watch?v=jZE-YSHK_gw&sns=tw) и меняюсь в зависимости от того, что я предлагаю. В этом примере это перенаправление файла, и я просто изменил его на использование протокола mina.Apache camel with mina to proxy tcp messages

import org.apache.camel.CamelContext; 
import org.apache.camel.impl.DefaultCamelContext; 
import org.apache.camel.simple.MyRouteBuilder; 
public class MainTcpApp { 
    public static void main(String[] args) throws Exception { 
     MyRouteBuilder routeBuilder = new MyRouteBuilder(); 
     CamelContext context = new DefaultCamelContext(); 
     try { 
      context.addRoutes(routeBuilder); 
      context.start(); 
      for (;;) { 
       Thread.sleep(5 * 60 * 50000); 
      } 
     } catch (Exception e) { 
      System.err.println(e.getMessage()); 
     } finally { 
      context.stop(); 
     } 
    } 
} 
import org.apache.camel.builder.RouteBuilder; 
public class MyTcpRouteBuilder extends RouteBuilder { 
    public void configure() throws Exception { 
     from("mina:tcp://localhost:3260").to("mina:tcp://localhost:3261"); 
    } 
} 

В моем примере я начал целевого устройства в 3261 «целевое имя: iqn.2014-06.iscsi-Dev: disk1 загружен Адрес: 127.0.0.1 - порт: 3261.» Я пытаюсь подключиться через 3260.

iscsiadm -m node --login -T iqn.2014-06.ustore-dev:disk1 -p 127.0.0.1:3260 
Logging in to [iface: default, target: iqn.2014-06.ustore-dev:disk1, portal: 127.0.0.1,3260] (multiple) 
iscsiadm: Could not login to [iface: default, target: iqn.2014-06.ustore-dev:disk1, portal: 127.0.0.1,3260]. 
iscsiadm: initiator reported error (8 - connection timed out) 
iscsiadm: Could not log into all portals 

я уже мог сделать это с http://netty.io/, но, как я хочу, баланс нагрузки я нужен Apache Camel с Миной. Спасибо.

ответ

0

Я нашел решение и отправил здесь https://sites.google.com/site/felipeogutierrez/Home/diaadia/camel-mina

я могу использовать прокси-сервер с сокетом Java, но я до сих пор есть проблемы с использованием ISCSI в портах 3260 и 3261. Может быть, если я пытаюсь с Нетти он будет работать.

1

Вы можете попробовать ("mina: tcp: //0.0.0.0: 3260") .to ("mina: tcp: // localhost: 3261");

+0

показать это сообщение - >> Не удалось создать маршрут route1: Route (route1) [[From [mina: tcp: //0.0.0.0: 3260]] -> [To [mina: tc ... из-за Не удалось разрешить конечную точку: mina: // tcp: //0.0.0.0: 3260 из-за: Компонент не найден со схемой: mina –

+0

, если я использую Netty (from ("netty: tcp: //0.0.0.0: 3260? Sync = false ") .to (" netty: tcp: // localhost: 3261? sync = false ");) мое приложение начинает нормально, но не перенаправляется. Если я использую netty самостоятельно без Camel, он хорошо работает ... –

+0

«Компонент не найден со схемой: mina» означает, что у вас нет зависимости camel-mina в вашем пути к классам. или он каким-то образом не зарегистрирован в контексте – user1582639