TIL
-
2024.05.26 Load Balancing Challenges in Apache KafkaTIL 2024. 5. 26. 21:46
How We Solve Load Balancing Challenges in Apache Kafka How We Solve Load Balancing Challenges in Apache Kafkaby Yifan Huangmedium.com호텔예약 사이트인 Agoda에서의 작성했다.kafka 컨슈머별로 처리량이 다를 수 있는데 이를 해결하기 위한 로드밸런싱에 관한 글이다.프로듀서와 컨슈머를 커스텀하는 방법인데 나름 흥미롭다.프로듀서의 라운드로빈은 완벽한 성능 분배를 이뤄내지는 못한다. 특정 컨슈머가 느릴 수 있기 때문이다. 컨슈머가 성능이 달라질 수 있는 원인 중 하나는 하드웨어가 다르기 때문일 수 있다. 또 DB의 연동작업이 필요한 경우는 매개변수에 따라 응답속도가 다를 수 있다. 이를 해결하기 위..
-
2024.05.17 Microservices and Persistent DataTIL 2024. 5. 18. 00:19
https://medium.com/nerd-for-tech/microservices-and-persistent-data-9e98a5488fc9 Microservices and Persistent DataDatabase per Service?medium.comMSA 구조에서 각 서비스는 DB를 각자 갖어야한다. 이 논리는 어디서 부터 왔는가? 장애 전염을 예방한다는 것은 좋다. 각자 서비스 요구사항에 맞는 DB를 사용할 수도 있다. 이 장점을 위해서 무엇을 희생할 수 있는가? 여러 조인은 할 수 없고 중복 저장을 해야하며 여러 서비스에 거치는 트랜잭션을 구현하는 것은 까다로워진다. 마이크로서비스당 DB가 멀티 인스턴스에 대응이 어렵다는 내용은 이해가 좀 안된다. DB하나만 바라보면 여러 인스턴스는 같은 상..
-
2024.05.16 How to Count the Number of Online Users?TIL 2024. 5. 16. 23:13
How to Count the Number of Online Users? Redis: How to Count the Number of Online Users?My article is open to everyone; non-member readers can click this link to read the full text.blog.stackademic.com 음 현재 접속 중인 유저는 어떻게 count 할까.뭔가 식별할 수 있는 id를 저장해 놓고 그걸 일정 주기로 보면 어느 정도 맞을 텐데.라이브 방송 같은 시청자 수가 중요한 것은 어떻게 구현할라나. 연결을 계속 유지하고 있으니 그걸로 집계하면 되지 않을까.이 글에서는 레디스를 통해 구현한다. 토큰이 있으면 좋겠지만 없다면 ip, deviceId나 f..
-
2024.05.15 galera cluster flow controlTIL 2024. 5. 15. 13:12
Flow Controlhttps://galeracluster.com/library/documentation/node-states.html Flow Control — Galera Cluster DocumentationFlow Control Galera Cluster manages the replication process using a feedback mechanism, called Flow Control. Flow Control allows a node to pause and resume replication according to its needs. This prevents any node from lagging too far behind the others ingaleracluster.com갈레라에서..
-
2024.05.11 Galera cluster DDLTIL 2024. 5. 11. 14:22
Galera cluster DDL Schema Upgrades — Galera Cluster DocumentationSchema Upgrades Schema changes are of particular interest related to Galara Cluster. Schema changes are DDL statement executed on a database (e.g., CREATE TABLE, GRANT). These DDL statements change the database itself and are non-transactional. Galera Clusgaleracluster.com Online Schema Upgrade in MySQL Galera Cluster using TOI Me..
-
2024.05.09 gradle cacheTIL 2024. 5. 9. 23:00
Build Cache Build CacheAs we have seen, built-in tasks, or tasks provided by plugins, are cacheable if their class is annotated with the Cacheable annotation. But what if you want to make cacheable a task whose class is not cacheable? Let’s take a concrete example: your builddocs.gradle.org특정 빌드의 경우는 From-cache라는 로그가 생기는 것을 확인했다.이 빌드는 메모리도 적게 사용하고 빠르기도 하기에 찾아보았다.gradle에서 cache를 지원하는데 gradle/cach..
-
2024.05.08 build server down, Share Data Between MSATIL 2024. 5. 8. 19:52
build server down HotSpot Virtual Machine Garbage Collection Tuning GuideThis section covers other situations that affect garbage collection.docs.oracle.com 프로젝트를 java11에서 17, spring boot 3으로 올리고 나서부터 빌드 시 빌드 서버의 메모리 사용량이 증가한다.그 후 터져버린다.음 마이그레이션하면서 gradle 설정을 수정한 것이 있다. MaxPermSize -> MetaspaceSize이다일단 MaxMetaspaceSize가 되었어야 했다. MetaspaceSize는 GC가 일어나는 limit를 의미하는 것이다. java11에서 17로 올리는데 17에서는 해당..
-
2024.05.07 Sharing Data Between MicroservicesTIL 2024. 5. 7. 23:35
Sharing Data Between Microserviceshttps://medium.com/@denhox/sharing-data-between-microservices-fe7fb9471208 Sharing Data Between MicroservicesRobust distributed systems embrace eventual consistency to share data between their services.medium.comMSA 아키텍처에서 서비스 간 중복 데이터 저장은 흔히 있는 일이다. 각 서비스는 데이터 이벤트를 발행해 주거나 API를 제공해 줘서 타 서비스가 자원을 활용할 수 있도록 한다.모든 데이터를 가져갈 필요가 없거나 단순 조회의 경우는 API를 통해서 조회해도 무방하다.다만 ..