https://netflixtechblog.com/timestone-netflixs-high-throughput-low-latency-priority-queueing-system-with-built-in-support-1abf249ba95f Timestone: Netflix’s High-Throughput, Low-Latency Priority Queueing System with Built-in Support… by Kostas Christidis netflixtechblog.com System Architecture Timestone is a gRPC-based service. We use protocol buffers to define the interface of our service and th..
1. IN 대신 EXISTS를 사용하여 데이터의 존재를 확인하십시오. 2. SELECT 문에서 *를 사용하지 마십시오. 필요한 열의 이름을 지정하십시오. 3. 적절한 데이터 유형을 선택합니다. 예를 들어 문자열을 저장하려면 텍스트 데이터 유형 대신 varchar를 사용하십시오. 큰 데이터(8000자 이상)를 저장해야 할 때마다 텍스트 데이터 유형을 사용하십시오. 4. 두 데이터 유형 모두 char 및 varchar만큼 이중 메모리를 사용하므로 가능하면 nchar 및 nvarchar를 사용하지 마십시오. 5. 고정 길이 필드에서 NULL을 피하십시오. NULL이 요구되는 경우에는 NULL에 대한 공간을 적게 차지하는 가변 길이(varchar) 필드를 사용하십시오. 6. 절을 피하십시오. 집계 결과를 추가로..
Netflix Tech Blog Post part 2 update 되면 추가,, https://netflixtechblog.com/migrating-critical-traffic-at-scale-with-no-downtime-part-1-ba1c7a1c7835 Migrating Critical Traffic At Scale with No Downtime — Part 1 Shyam Gala, Javier Fernandez-Ivern, Anup Rokkam Pratap, Devang Shah netflixtechblog.com
k8s pod 구성 시에 이용하는 options -XX:InitialRAMPercentage '-XX:InitialRAMPercentage'는 '-Xms' JVM 인수가 전달되지 않은 경우에만 초기 힙 크기를 설정하는데 사용된다. '-XX:MinRAMPercentage' 물리적 서버(또는 컨테이너)에서 사용 가능한 전체 메모리 크기가 250MB 미만인 경우에만 Java Heap 크기를 계산하는 데 사용된다. -XX:MinRAMPercentage=50을 구성하고 전체 물리적 메모리(또는 컨테이너) 메모리가 100MB라고 가정하면 Java 애플리케이션의 최대 Heap 크기는 50MB(즉, 100MB의 50%)로 설정된다. '-XX:MaxRAMPercentage' 물리적 서버(또는 컨테이너)에서 사용 가능한 ..
개요 기능별로 서비스에 적용 유무를 제어할 필요가 있다. api version up, 특정 기능을 중지 해야 할떄. 이런 설계를 Feature Toggle 이란 패턴 정의 됨 https://martinfowler.com/bliki/FeatureToggle.html 해당 패턴을 구현한 프레임워크 선정 https://github.com/togglz/togglz 타프로젝트 대비 가장 최근 까지 활발 springboot에 적용이 가능 web 관리 console 이 존재 각 toggle의 정보를 file or db or nosql 에 저장 가능 sample https://medium.com/hprog99/manage-feature-flags-in-spring-boot-application-using-togglz-..
Versioning 필요 api spec 변경 request, response model 변경 bug fix enum 속성 추가/삭제 Versioning 방식 URI Path URI 에 version path 를 추가 직관적이고 테스트가 쉽다 ex) http//domain/{version}/api-path http://localhost:8080/v1/users/{id} http://localhost:8080/v2/users/{id} URL Parameter version 정보를 query paramter 로 정의 URI Path 방식과 비슷하고, 동일한 URL을 사용 할 수 있다. ex) http//domain/api-path?version={version} http://localhost:8080/use..
logstash 에서 아래와 같은 에러가 발생. Encountered a retryable error. Will Retry with exponential backoff code=>400, :url=>"http://10.111.111.111:9200/_template/logstash/_bulk"} output 이 elasticsearch 인 경우에 es 쿼리가 정상적이지 않아 요청이 실패가 되면서.logstash 가 지속적으로 재시도를 하게 되는 현상. 구글링을 통해, 여러 데이터를 찾아 봤지만. 전혀 문제 해결이 되지 않았다.문득, logstash 와 ES 의 버전을 확인해보았다. logstash - 5.2.2ES - 5.6.3 아. 버전문제 일것 같았다.빙고,,, logstash 를 버전업 한 이후에 ..
https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin https://github.com/jenkinsci/ghprb-plugin/blob/master/README.md https://www.theguild.nl/building-github-pull-requests-with-jenkins http://geeks.aretotally.in/jenkins-for-pull-requests-and-promoted-builds-deploying-to-multiple-environments/ http://jakubstas.com/github-and-jenkins-pull-request-checking/#.VvOXQvmLRaQ jen..
http://lzone.de/blog/Redis%20Performance%20Debugging?mkt_tok=3RkMMJWWfF9wsRons67KZKXonjHpfsX56uolX6KxlMI%2F0ER3fOvrPUfGjI4DT8tgI%2BSLDwEYGJlv6SgFQ7HAMa5m3rgMWRk%3D Monitoring Live Redis QueriesRun the "monitor" command to see queries as they are sent against an Redis instance. Do not use on high traffic instance!redis-cli monitorThe output looks like thisredis 127.0.0.1:6379> MONITOR OK 13712410..