Skip to content

회의록_19.11.11

EasyZero edited this page Nov 15, 2019 · 4 revisions

기타 회의록

시간 : 2019-11-11 (10:15 ~ 19:00)
장소 : 패스트파이브 강남4호점 8층

Git-Flow

  • master
  • develop
  • feature-*
    • pull request 는 바로 develop으로

로드밸런서를 커스터 마이징 할 수 없을까?

가능하다.
로드밸런서는 각 서버가 트래픽을 수용 할 수 있는지 http api를 사용하여 확인하는데, 이를 Health Check라고 한다.
로드밸런서에 서버를 등록 할 때 헬스체크를 할 url을 등록하는데 이 url은 200 성공메시지와 400 실패 메시지로 응답하게 된다.
이를 이용해 노드서버를 구성, 라우터로 특정 조건시에 성공과 실패를 반환하도록 하면 커스터마이징이 가능하다.

커스터 마이징 된 로드밸런서를 이용해서 트래픽을 어떻게 분산시킬 수 있을까?

예를 들어 3대의 서버에 한 서버당 100명씩 돌아가면서 담고싶다 라고 할 때
1대의 서버를 제외한 나머지 서버는 헬스체크를 막아놓는다.
1대의 서버로 트래픽이 몰려서 소켓이 100개 이상 생성되면 자신의 헬스체크를 실패로 바꾸고 primary서버에 다른 서버를 헬스체크 열어달라는 요청을 보낸다.
primary 서버는 3대의 서버를 순서대로 헬스체크 열라는 메세지를 보낸다.
대기중이던 서버는 헬스체크를 성공으로 바꾸고 위와 같은 로직을 수행한다.

위 방식의 문제점은? 오토스케일링은 가능한가?

1대의 서버로 시작 할 수 있는지 모르겠다. -> 최소 2대의 서버를 사용한다고 할 때
트래픽이 많지않으면 괜히 두 대의 서버를 대기시키는 꼴이 되서 비효율 적일 것 같다. (하지만 다수의 사용자를 예상한다고 하면 고려해 볼 만 하다.)

오토스케일링도 가능하다. 
init script를 사용해서 서버를 구축하고 primary 서버에 자신을 secondary 리스트에 등록 해달라고 최초에 요청을 보내게 한다.
하지만 primary 서버으 scale out 은 불가능하다.
새로 생성된 서버와 기존의 primary 서버간의 정보 공유를 위해 하나의 계층이 더 늘어나기 때문에 이 방법은 옳지 않다.

db command

mysql) create user 'developer'@'localhost' identified by '';

create schema catchmymind;

alter user 'developer'@'localhost' identified with mysql_native_password by 'qwer1234';

grant all privileges on catchmymind.* to 'developer'@'localhost';

서버를 껐다킨다.

migration) sequelize model:generate --name users --attributes "user_id:string, nickname:string"

sequelize model:generate --name scores --attributes "user_id:integer, score:bigint"

sequelize model:generate --name friends --attributes "p_friend_id:integer, s_friend_id:integer"

sequelize model:generate --name invitations --attributes "friends_id:integer, url:text"

sequelize model:generate --name friend_states --attributes "state:string"

sequelize model:generate --name before_friends --attributes "p_friend_id:integer, s_friend_id:integer, friend_state_id:integer"

seed) sequelize seed:generate --name users sequelize seed:generate --name scores sequelize seed:generate --name friends sequelize seed:generate --name invitations sequelize seed:generate --name before_friends sequelize seed:generate --name friend_state

sequelize db:migrate --env local sequelize db:seed:all --env local

mysql에서 다른 ip의 연결 허용 방법

mysql로 들어간 후

mysql> GRANT ALL PRIVILEGES ON . TO root@'ip주소' IDENTIFIED BY '비밀번호'' WITH GRANT OPTION;

로 해결 아래는 명령 실행창..

mysql> grant all privileges on . to [email protected] identified by 'root' with grant option;

Clone this wiki locally