보안 그룹 생성

Kafka 9092
주키퍼 2181

인스턴스 자바 설치

$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64

카프카 설치

$ wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz

$ tar xvf kafka_2.12-2.5.0.tgz

cd kafka_2.12-2.5.0

힙 메모리 설정

$ vi ~/.bashrc

추가 
export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"

$ source ~/.bashrc

카프카 브로커 실행 옵션 설정

vi config/server.properties
 주석을 제거하고 your.host.name에 ip를 넣어준다. 
 advertised.listeners=PLAINTEXT://your.host.name:9092

주키퍼 실행

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

jps -vm

카파카 실행

bin/kafka-server-start.sh -daemon config/server.properties
jps -m
tail -f logs/server.log 

로컬에서 확인

$ curl https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz --output kafka.tgz
tar -xvf kafka.tgz

etc/hosts 에서 my-kafka 로 등록

bin/kafka-topics.sh --bootstrap-server my-kafka:9092 --list
public class SomeService {

	private String action(String param){
    		return param + "test";
    	}

}

Test 작성시 private 메서드의 경우 직접 접근을 할 수가 없다.
invoke를 통해서 접근 가능하다. 

@Test
public void 문자열_테스트(){
	
    SomeService someService = new SomeService();
    
    Method testMethod = SomeService.class.getDeclaredMethod("action", String.class);
    testMethod.setAccessible(true);
    testMethod.invoke(someService, "Hello");
    
}

 

flexbox 는 중요한 3가지 개념이 있다.

  1. Container와 Item 에 대한 속성
  2. 중심축과 반대축에 이해 
  3. justify-content, align-content  에 대한 속성

1. Container 와 Item 에 대한 속성 이해 

flex 구조

flex는 container와 item으로 구분되며 각각 지정할 수 있는 속성이 정해져 있다. 

Container 속성 (flex 요소들을 감싸는 태그)

display flex
flex-wrap nowrap(한줄로 표현), wrap 
flex-direction 중심축 지정 : row(기본값, 수평), column(수직)  
flex-flow column nowrap 으로 지정가능
justify-content 중심축 아이템 배치
align-items 반대축 아이템 배치
align-content 반대축 justify-content와 비슷 nowrap일 경우 의미 없음

Item 속성 (flex 요소)

order 아이템 속성을 변경할 수 있음
flex-grow 화면사이즈 증가시 특정 아이템 가중치(0~1)
flex-shrink 화면사이즈 감소시 특정 아이템 가중치(0~1)
flex-basis 화면사이즈 변경시 아이템별 가중치를 퍼센트(%) 로 지정
align-self 컨테이너와 배치 상속하지 않고 아이템만 따로  설정

2.  중심축과 반대축 이해하기 

flxe-direction을 row 로 할 경우 중심축은 수평선 (파랑색) 이며 되며 반대축은 수직선이 된다. 

flexl-direction을 column으로 하면 수직선이 중심축이 된다. 

3. justify-content, align-content  값 

참고 : https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content

flex-start 왼쪽에서 부터 정렬
flex-end 오른쪽에서 정렬
space-around 플렉스 요소는 앞, 뒤, 그리고 요소들 사이에도 모두 여유 공간을 두고 배치 (간격 1:2:2:2:1)
space-evenly 플렉스 요소를 일정한 크기로 배치 (간격 1:1:1:1:1)
space-between 플렉스 요소는 요소들 사이에만 여유 공간을 두고 배치됩니다.  (간격 3:3:3)

 

파라미터 변경

General_log = 1(기본값 0 또는 로깅 없음)
Slow_query_log = 1(기본값 0 또는 로깅 없음)
Long_query_time = 2(2초 넘게 실행되는 쿼리 로그)
log_output = FILE(일반 및 느린 쿼리 로그 모두를 파일 시스템에 작성하고 이러한 로그를 Amazon RDS 콘솔에서 확인할 수 있음)
log_output = TABLE(쿼리를 테이블에 작성하므로 쿼리를 사용하여 이러한 로그를 볼 수 있음)

쿼리 조회 

log_output = TABLE 일 경우

Select * from mysql.slow_log

Select * from mysql.general_log

참고 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-mysql-logs/

아이맥 24인치를 보러 여의도를 갔다
노란색을 보고 싶은데 여의도에 있다고 한다

색상을 보니 더 고르기 힘들어 졌다

히스토그램 

테이블의 열값이 어떻게 분포되어 있는지 확인하는 통계정보입니다. 

MySQL

생성

ANALYZE TABLE 테이블명 UPDATE HISTOGRAM ON 열명 나열;

조회

SELECT * FROM INFORMATION_SCHEMA.COLUMN_STATISTICS;

MariaDB

생성

ANALYZE TABLE 테이블명 PERSISTENT FOR COLUMNS (열명 나열) INDEXES();

조회 

SELECT * FROM mysql.column_stats;

parallel 를 이용하면 병렬처리를 할 수 있다 하지만 기본적으로 서버의 CPU 코어 수에 따라 종속적이라고 한다.
커스텀하게 이용하기 위해서는 ForkJoinPool 을 이용하면 된다. 

List<String> list = Collections.synchronizedList(new ArrayList<>());

ForkJoinPool forkJoinPool = new ForkJoinPool(3);
forkJoinPool.submit(() -> 
	return IntStream.range(1, 100000)
	.parallel()
	.mapToObj(i -> list.add(new Integer(i).toString()))
    .collect(Collectors.toList())
).get();

System.out.println(list);
System.out.println(list.size());

첫번째 줄에 Collections.synchronizedList(new ArrayList<>())사용한 이유는 담는 리스트에 여러 쓰레드가 접근할 경우 동시에 접근하기 때문에 갯수가 다르거나 ArrayIndexOutOfBoundsException 가 발생한다.
단순한 예제로 속도에는 별 차이가 없었다.   병렬처리는 주의깊게 사용해야함을 느껴진다. 

어느 블로그에 들어가보니 목차로 잘 정리되어 있는 것을 보았다. 나도 하고 싶다는 생각에 한참을 찾다가 드디어 찾았다.

정말로 감사드립니다.

https://github.com/wbluke/tistory-table-of-contents

테스트1

테스트1-1

테스트1-2

테스트1-2-1

+ Recent posts