LINUX.ORG.RU

Сообщения galliley

 

Spring Boot и Hazelcast

Ребят, всем привет!

Есть два микросервиса, надо между ними шарить данные (мапы, блокировки).

Настраиваю так:

app1

@Configuration
public class HazelCastConfig {

    @Bean
    public HazelcastInstance hazelcastInstance() {
        Config config = new Config();
        config.getGroupConfig().setName("devCluster");

        config.getNetworkConfig().setPort(5702);

        JoinConfig joinConfig = config.getNetworkConfig().getJoin();
        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getTcpIpConfig().setEnabled(true)
                .addMember("127.0.0.1:5701");

        return Hazelcast.newHazelcastInstance(config);
    }
}

app2

@Configuration
public class HazelCastConfig {

    @Bean
    public HazelcastInstance hazelcastInstance() {
        Config config = new Config();
        config.getGroupConfig().setName("devCluster");

        config.getNetworkConfig().setPort(5701);

        JoinConfig joinConfig = config.getNetworkConfig().getJoin();
        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getTcpIpConfig().setEnabled(true)
                .addMember("127.0.0.1:5702");

        return Hazelcast.newHazelcastInstance(config);
    }
}

При запуске получаю такую ошибку

2022-10-25 14:07:35.203  WARN [/] --- [.IO.thread-in-2] c.h.n.t.TcpIpConnection                  : [127.0.0.1]:5702 [devCluster] [3.12.5] Connection[id=2, /127.0.0.1:5702->/127.0.0.1:32770, qualifier=null, endpoint=null, alive=false, type=MEMBER] closed. Reason: Exception in Connection[id=2, /127.0.0.1:5702->/127.0.0.1:32770, qualifier=null, endpoint=null, alive=true, type=MEMBER], thread=hz._hzInstance_1_devCluster.IO.thread-in-2

java.lang.IllegalArgumentException: Packet versions are not matching! Expected -> 4, Incoming -> 72
	at com.hazelcast.nio.PacketIOHelper.readFrom(PacketIOHelper.java:126) ~[hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.nio.tcp.PacketDecoder.onRead(PacketDecoder.java:61) ~[hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:135) ~[hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:369) [hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:354) [hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:280) [hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.run(NioThread.java:235) [hazelcast-3.12.5.jar:3.12.5]

И, что самое интересное (нет), после некоторого количества таких ворнингов (минуты через 2-3) кластер таки собирается и микросервис запускается!

Версии зависимостей одинаковые в микросервисах.

Может кто подскажет что не так?

 , ,

galliley
()

Сигнатура метода Java возвращающая Generic

Hey, Everyone!

Подскажите, пожалуйста, как правильно интерпретировать синтаксис:

public static <T> Set<T> symmetricDifference(Set<? extends T> set1, Set<? extends T> set2) {
    return null;
}

Этот метод возвращает Set (множество), но зачем перед Set <T>?

 

galliley
()

Java vs Python: поля классов.

Python (3.6):

class A:
    a: int = 6
    def class_print(self):
        print(self.a)

class B(A):
    a: int = 7

def main():
    a = A()
    a.class_print()
    b = B()
    b.class_print()

if __name__ == "__main__":
    main()

Output:

6
7

А в Java (8)

package temp;

class A {
    int a = 5;
    public void printMethod(){ System.out.println(a); }
}

class B extends A {
    int a = 6;
}

public class main {
    public static void main(String[] args) {
        A a = new A();
        a.printMethod();

        B b = new B();
        b.printMethod();
    }
}

Output:

5
5

Лично для меня поведение Python в данном случае является очевидным, но почему в Java иначе и как добиться (если возможно) поведения аля Python в данном случае? Почему?

 

galliley
()

Проблема с доступом к сайту из разных операционных систем (windows, linux).

Здравствуйте! Есть несколько сайтов (например, http://mma-topteam.com).

Проблема в том что при открытии сайта из Linux (браузер значения не имеет), сайт открывается быстро (как и должен). Но при попытке открыть его из windows (браузер опять же значения не имеет) сайт открывается очень долго, а может и не открыться по таймауту.

Фронт nginx, дальше php-fpm (fastcgi, через unix socket).

 , , ,

galliley
()

Сздание unit-а для systemd.

Доброго времени суток Всем! Есть PACS - dcm4chee. Для управления этим сервисом составил такой unit файл для systemd:

[root@dcm4chee system]# cat ./dcm4chee.service
[Unit]
Description=DICOM server daemon
After=network.target mariadb.service iscsi.service

[Service]
ExecStart=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh start
ExecReload=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh restart
ExecStop=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh stop
KillMode=control-group

[Install]
WantedBy=multi-user.target
[root@dcm4chee ~]# systemctl status dcm4chee
dcm4chee.service - DICOM server daemon
   Loaded: loaded (/usr/lib/systemd/system/dcm4chee.service; enabled)
   Active: failed (Result: exit-code) since Thu 2015-04-23 11:26:18 NOVT; 1 weeks 6 days ago
  Process: 2468 ExecStop=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh stop (code=exited, status=1/FAILURE)
  Process: 2450 ExecStart=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh start (code=exited, status=0/SUCCESS)
 Main PID: 2450 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/dcm4chee.service

Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.connect(Socket.java:529)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.connect(Socket.java:478)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.<init>(Socket.java:375)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.<init>(Socket.java:276)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: ... 5 more
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru systemd[1]: dcm4chee.service: control process exited, code=exited status=1
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru systemd[1]: Unit dcm4chee.service entered failed state.

В скрипте /opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh кроме задания переменных окружения выполняется запуск java программы через ещё один скрипт.

Проблема в том что при просмотре статуса сервиса systemctl status dcm4chee, статус отображается не верно и выключить командой systemctl stop dcm4chee не получается.

Подскажите в чём проблема.

 ,

galliley
()

RSS подписка на новые темы