Home

0

Docker Compose - Kafka 클러스터 구성하기

목차 Docker Compose - Kafka 사용하기 Docker Compose - Kafka 클러스터 구성하기 zookeeper 설정version: "3.6"services: zookeeper: container_name: zookeeper image: wurstmeister/zookeeper:3.4.6 volumes: - "./zookeeper/data:/data" - "./zookeeper/logs:/datalog" ports: - "2181:2181" Kafka 설정 KAFKA_BROKER_ID KAFKA_ZOOKEEPER_CONNECT KAFKA_ADVERTISED_HOST_NAME KAFKA_ADVERTISED_PORT KAFKA_CREATE_TOPICS KAFKA_ADVERTISED_LISTENERS KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 version: "3.6"... kafka1: container_name: kafka1 image: wurstmeister/kafka:2.12-2.3.0 restart: on-failure ports: - "9092:9092" volumes: - /var/run/docker.sock:/var/run/docker.sock environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_HOST_NAME: 192.168.0.2 KAFKA_ADVERTISED_PORT: 9092 KAFKA_CREATE_TOPICS: "temp_topic:1:1" KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.0.2:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 depends_on: - zookeeper 전체 소스 코드version: "3.6"services: zookeeper: container_name: zookeeper image: wurstmeister/zookeeper:3.4.6 volumes: - "./zookeeper/data:/data" - "./zookeeper/logs:/datalog" ports: - "2181:2181" kafka1: container_name: kafka1 image: wurstmeister/kafka:2.12-2.3.0 restart: on-failure ports: - "9092:9092" volumes: - /var/run/docker.sock:/var/run/docker.sock environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_HOST_NAME: 192.168.0.2 KAFKA_ADVERTISED_PORT: 9092 KAFKA_CREATE_TOPICS: "temp_topic:1:1" KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.0.2:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 depends_on: - zookeeper kafka2: container_name: kafka2 image: wurstmeister/kafka:2.12-2.3.0 restart: on-failure ports: - "9093:9092" volumes: - /var/run/docker.sock:/var/run/docker.sock environment: KAFKA_BROKER_ID: 2 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_HOST_NAME: 192.168.0.2 KAFKA_ADVERTISED_PORT: 9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.0.2:9093 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 depends_on: - zookeeper kafka3: container_name: kafka3 image: wurstmeister/kafka:2.12-2.3.0 restart: on-failure ports: - "9094:9092" volumes: - /var/run/docker.sock:/var/run/docker.sock environment: KAFKA_BROKER_ID: 3 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_HOST_NAME: 192.168.0.2 KAFKA_ADVERTISED_PORT: 9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.0.2:9094 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 depends_on: - zookeeper

0

Docker Compose - Kafka 사용하기

목차 Docker Compose - Kafka 사용하기 Docker Compose - Kafka 클러스터 구성하기 Zookeeper 설정version: "3"services: zookeeper: container_name: local-zookeeper image: wurstmeister/zookeeper ports: - 2181:2181 Kafka 설정version: "3"services: zookeeper: container_name: local-zookeeper image: wurstmeister/zookeeper ports: - 2181:2181 kafka: container_name: local-kafka image: wurstmeister/kafka depends_on: - zookeeper ports: - 9092:9092 environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock 전체 소스 코드version: "3"services: zookeeper: container_name: local-zookeeper image: wurstmeister/zookeeper ports: - 2181:2181 kafka: container_name: local-kafka image: wurstmeister/kafka depends_on: - zookeeper ports: - 9092:9092 environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock

0

Docker - Jenkins 사용하기

Docker - Jenkins 사용하기# lts버전으로 실행시docker run -d -p 8090:8080 -p 50000:50000 -v ~/docker/jenkins:/var/jenkins_home jenkins/jenkins:lts# jdk11버전으로 실행시docker run -d -p 8090:8080 -p 50000:50000 -v ~/docker/jenkins-jdk11:/var/jenkins_home jenkins/jenkins:jdk11# docker container Id3c29b7adb686ad8310bf474fe91406e1ab8c569568e2ef2b5d09f40525aa78ee

0

Docker - MySQL 사용하기

Docker - MySQL 사용하기docker pull mysql:8.0.17 Docker MySQL 컨테이너 생성 및 실행 MySQL 외부 볼륨으로 잡아주기 호스트의 ~/docker/mysql 디렉토리를 MySQL 컨테이너의 /var/lib/mysql 디렉토리로 마운트 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name mysql -v ~/docker/mysql:/var/lib/mysql mysql --character-set-server=utf8mb4 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name mysql -v ~/docker/mysql:/var/lib/mysql mysql:8.0.17 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

0

JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인

목차 JPA 연관 관계 - 고아 객체 JPA 연관 관계 - 즉시로딩과 지연로딩 JPA 연관 관계 - 프록시 객체 JPA 연관 관계 - @MappedSuperclass JPA 연관 관계 - 상속 관계 Mapping JPA 연관 관계 - 영속성 전이 Cascade JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인 JPA 연관 관계 - 양방향 연관관계 JPA 연관 관계 - 객체 지향 스럽게 모델링 하기 JPA 연관 관계 - 객체 관계 모델링하기 JPA 연관 관계 양방향 연관관계의 문제점 객체에서는 각기 다른 객체에서 참조하는 객체를 업데이트 하는 방법이 두 가지가 발생한다. 양방향 연관관계의 해결 방법 객체의 두 관계중 하나를 연관관계의 주인 으로 지정해 주인만이 외래 키를 관리하게 한다.(등록, 수정)주인이 아닌 쪽은 읽기만 가능하다 양방향 연관관계 주인 정하기 Foreign Key (외래키) 가 있는 곳을 주인으로 정해라 연관관계의 주인은 mappedBy 속성을 사용할 수 없다. 연관관계 주인이 아니면 mappedBy 속성을 사용할 수 있다.

0

JPA 연관 관계 - 양방향 연관관계

목차 JPA 연관 관계 - 고아 객체 JPA 연관 관계 - 즉시로딩과 지연로딩 JPA 연관 관계 - 프록시 객체 JPA 연관 관계 - @MappedSuperclass JPA 연관 관계 - 상속 관계 Mapping JPA 연관 관계 - 영속성 전이 Cascade JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인 JPA 연관 관계 - 양방향 연관관계 JPA 연관 관계 - 객체 지향 스럽게 모델링 하기 JPA 연관 관계 - 객체 관계 모델링하기 JPA 연관 관계 객체와 테이블이 관계를 맺는 차이 객체의 양방향 관계는 사실 양방향 관계가 아니라 서로다른 단방향 관계 2개 다.테이블은 외래키 하나 로 두 테이블의 연관관계를 관리한다. 객체 : 연관관계 2개 (단방향 2개) 회원 —> 팀 연관관계 1개 (단방향) 팀 —> 회원 연관관계 1개 (단방향) 테이블 : 연관관계 1개 (양방향 1개) 회원 <—> 팀의 연관관계 1개 (양방향) 양방향 연관관계로 설계하기1:N 연관관계 Mapping OneToMany 어노테이션을 이용해 1:N 연관관계를 Mapping 한다. mappedBy 속성을 이용해 연관된 Entity 클래스 내 field 이름을 넣어준다. @Entitypublic class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>();}

0

JPA 연관 관계 - 객체 관계 모델링하기

목차 JPA 연관 관계 - 고아 객체 JPA 연관 관계 - 즉시로딩과 지연로딩 JPA 연관 관계 - 프록시 객체 JPA 연관 관계 - @MappedSuperclass JPA 연관 관계 - 상속 관계 Mapping JPA 연관 관계 - 영속성 전이 Cascade JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인 JPA 연관 관계 - 양방향 연관관계 JPA 연관 관계 - 객체 지향 스럽게 모델링 하기 JPA 연관 관계 - 객체 관계 모델링하기 JPA 연관 관계 외래키를 객체 내 Field 값 으로 모델링 @Entitypublic class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "TEAM_ID") private Long id; @Column private String name;} @Entitypublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MEMBER_ID") private long id; @Column(name = "USERNAME") private String username; @Column(name = "TEAM_ID") private Long teamId; // 외래키를 Field 값으로 갖는다.} Member 가 소속된 Team 정보 가져오기 Member 가 소속된 Team 정보를 가져오기 위해서는 Member Id를 이용해 해당 Member 객체를 가져와 저장된 Team Id를 가져온 후 해당 Team Id를 이용해 Member가 소속된 Team 을 조회해야 한다. Team team = new Team();team.setName("TeamA");entityManager.persist(team);Member member = new Member();member.setUsername("member1");member.setTeamId(team.getId());entityManager.persist(member);Member findMember = entityManager.find(Member.class, member.getId());Long findTeamId = findMember.getTeamId();Team findTeam = entityManager.find(Team.class, findTeamId); 객체 지향 스럽지 못한 모델링

0

JPA 연관 관계 - 객체 지향 스럽게 모델링 하기

목차 JPA 연관 관계 - 고아 객체 JPA 연관 관계 - 즉시로딩과 지연로딩 JPA 연관 관계 - 프록시 객체 JPA 연관 관계 - @MappedSuperclass JPA 연관 관계 - 상속 관계 Mapping JPA 연관 관계 - 영속성 전이 Cascade JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인 JPA 연관 관계 - 양방향 연관관계 JPA 연관 관계 - 객체 지향 스럽게 모델링 하기 JPA 연관 관계 - 객체 관계 모델링하기 JPA 연관 관계 객체 지향 스럽게 모델링 하기 객체는 참조를 이용해 다른 객체를 가져올 수 있다. 한 객체내에 관련된 객체 정보를 가질 수 있도록 모델링한다. Member 에서 Team 정보를 가져올 때 Member 객체 내 참조 를 통해 정보를 가져올 수 있다. N:1 연관 관계를 명시할 때는 @ManyToOne 과 @JoinColumn 을 이용해 관계를 나타낸다. @Entitypublic class Member { @Id private long id; private String username; @ManyToOne @JoinColumn private Team team; // Member 객체 내에서 관련된 Team 객체를 관리할 수 있도록 변경} Member 가 소속된 Team 정보 가져오기

0

JPA 연관 관계

목차 JPA 연관 관계 - 고아 객체 JPA 연관 관계 - 즉시로딩과 지연로딩 JPA 연관 관계 - 프록시 객체 JPA 연관 관계 - @MappedSuperclass JPA 연관 관계 - 상속 관계 Mapping JPA 연관 관계 - 영속성 전이 Cascade JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인 JPA 연관 관계 - 양방향 연관관계 JPA 연관 관계 - 객체 지향 스럽게 모델링 하기 JPA 연관 관계 - 객체 관계 모델링하기 JPA 연관 관계 JPA 연관 관계 테이블과 객체 간 패러타임 차이로 인해 생기는 문제가 있다. 그 중 대표적인게 테이블 연관관계 를 객체로 풀어내는 것테이블간의 연관관계를 객체 연관관계로 풀어내기 위해서는 아래 3가지 조건을 잘 이해해야 한다. 방향 테이블 연관관계는 양방향 객체의 연관관계는 단방향으로만 존재한다. 객체의 양방향 관계는 단방향 관계 2개를 이용해 만들어준다. 다중성 One To One(일대일) 1:1 One To Many(일대다) 1:N Many To One(다대일) N:1 Many To Many(다대다) N:M 연관관계의 주인 테이블 연관관계를 객체 양방향 연관관계로 만들기 위해서는 연관관계 주인 을 정해야 한다. 객체의 두 관계중 하나를 연관관계의 주인으로 지정해 주인만이 외래 키 를 관리하게 한다. 연관관계 주인은 외래키를 이용해 (등록, 수정) 등이 가능하지만 주인이 아닌 쪽은 읽기 만 가능하다 JoinColumn 어노테이션 외래키 를 매핑할 때 사용하는 어노테이션 속성 기능 기본 값 name 매필할 외래키 이름을 명시한다. 필드명 + _ + 참조하는 테이블 기본키 컬럼명 referencedColumnName 외래 키가 참조하는 대상 테이블 컬럼명 참조하는 테이블의 기본키 컬럼명 foreignKey 외래키 제약 조건을 직접 지정할 수 있다. unique, nullable, insertable, updatable, columnDefinition, table @Column 속성과 같다.