Có sự khác biệt lớn giữa Modular monolith với Microservice hay không
Cho em hỏi giữa modular monolith với microservice có khác biệt lớn hay không nhỉ hay chỉ khác biệt giữa cách triển khai. Ví dụ trong modular monolith em cũng module hoá từng service riêng biệt và giao tiếp thông qua grpc/http/message queue, mỗi service cũng có db riêng, giống với concept của microservice nhưng em lại để chung trong 1 solution (.net) hoặc chung trong 1 docker compose, và chỉ deploy solution hoặc file docker compose đó lên thôi. Nếu em tách từng service cho từng solution rồi deploy riêng biệt độc lập cho từng service thì nó có được coi là microservice hay không, hay microservice còn hơn thế nữa.
So sánh giữa websocket vs long polling
Trong một cuộc trang luận với đồng nghiệp của mình, có 2 luồng ý kiến:
<ul>
<li>websocket /long polling là 1, chỉ là 1 cái của p.tây, 1 cái của các pháp sư trung hoa.</li>
<li>websocket với long polling là 2 giao thức có cơ chế hoàn toàn khác nhau</li></ul>
<p>
Mình tạo câu hỏi này muốn ý kiến của mọi người xem cái nào là đúng
</p>
<p>
Có 1 câu hỏi nữa là giữa websocket, long polling, sses thì cái nào tốn ít tài nguyên của server hơn
</p>
Config nhiều datasource
Em đang dùng spring boot 2.7. x. e cần config 2 data source vào ạ. Một DB em dùng mặc định config như bình thường ở properties và map với entity và repo của em. Một DB em chỉ dùng map với1 tới 2 DAO gọi native query. Anh có config sample cho em xin hướng dẫn với ạ. Có phải em chỉ cần config 1 cái cho datasource phụ thôi, còn cái default chính của em thì spring boot cũng đã config và ưu tiên cái đó không ạ. Em cũng muốn config trong properties và java. Không config xml ạ
Tối ưu xử lý
Em có câu query cần Union All 2 bảng lại để lấy data trả về 1 chuỗi data của các cột nối nhau bằng dấu |<p>
ví dụ: username|code|name|.....
</p>
<p>
Số lượng reocord lúc query ra thì 1M record. Em đang dùng Spring boot. Theo anh thì nên giới hạn số lượng mỗi lần query lên rồi gọi nhiều lần xuống DB. Hay là gọi 1 lần thì hơn ạ. Data em bắt buộc lấy đủ . Và em nên nối chuỗi bằng câu native query hay là lấy dữ liệu lên rồi xử lý bằng Java hơn ạ.
</p>
<p>
Em đang dùng EntityManager và tạo câu query native. trả về kiểu Stream<String> để xử lý và zip lại thành file data trả về luôn. Hướng xử lý tối ưu nhất là gì ạ a.
</p>
Kiểm tra tối đa request trong ngày trên 1 thiết bị
Em có làm 1 web không yêu cầu login, nhưng khi đẩy form xuống BE thì BE phải check là tối đa 1 thiết bị trong 1 ngày chỉ được 3 request. Có cách nào check vấn đề này được ko ạ. nếu em dùng tab ẩn danh, hay ip động hay có cách nào khác nó có thể spam được không ạ. Em chưa có hướng code cho đoạn này.
Loại dự án nào mọi người sẽ chọn mongodb thay vì các Relational Database
Theo mọi người thì mongodb phù hợp cho loại dự án/đặc điểm dữ liệu nào nhất ạ
Tối ưu xử lý khi data nhiều
Em có 1 service api dùng spring boot gọi xuống DB để lấy data lên, data này có cỡ 1 triệu record. Web dùng spring boot MVC gọi api qua service đó để lấy data và down xuống file txt theo từng dòng và nén nó thành file zip. Service đó xử lý lâu dẫn tới timeout, có cách nào để tối ưu ở service và web của em không ạ.
Làm sao để connect tới remote server với giao thức SFTP
Chào mọi người.<p>
Hiện tại e đang cần connect đến remote server để up file với giao thức SFTP thì dùng thằng nào dễ nhất ạ.
</p>
<p>
Hiện tại thì e đã có 2 file .ppk và .pub.
</p>
Có nên chia từng tác vụ AI ra từng docker container
Em đang có dự án một app mobile dùng để quản lí ảnh như google photo. Việc em thắc mắc là bên backend khi nhận được ảnh từ frontend thì sẽ thực hiện phân 3 tác vụ là:
<ol start="1">
<li>Detect các common object</li>
<li>Detect mặt người và embbeding khuôn mặt</li>
<li>Detect chữ và trích xuất chữ.</li>
</ol>
<p>
Em dự dịnh sẽ thực hiện theo quy trình là khi nhận được ảnh sẽ đẩy thông tin ảnh vào 3 queue. Mỗi receive ở cuối queue sẽ thực hiện một task ở trên. Việc em thắc mắc là do phải xử dụng đến 3 model nên em có nên tách ra mỗi model sẽ là một docker container riêng lẻ hay nên để cả 3 model ở chung 1 docker container và xử lý trên container đó.
</p>
Các trung tâm đào tạo trình uy tín, chất lượng ở Hà Nội
<ol start="1">
<li><a href="https://techmaster.vn/">Techmaster Việt Nam</a>.</li>
<li>CodeGym</li>
<li>MindX</li>
<li>NIIT - ICT Hà Nội</li>
<li>VTI Academy</li>
<li>FPT Software Academy</li>
<li>Hệ Thống T3H</li>
<li>VTC Academy</li>
<li>Rikkei Academy</li>
<li>ITPlus</li>
</ol>
<p>
Lưu ý: Chỉ mang tính chất liệt kê, không xếp hạng.
</p>
Cách mọi người kiểm thử trên môi trường production
Chào anh Dũng và mọi người,<p>
Hiện tại em đang tham gia một dự án làm về CRM. Team em đã deliver sản phản cho khách hạn sử dụng và đang tiếp tục phát triển tính năng mới.
</p>
<p>
Khách hàng và team em thống nhất sẽ tạo ra 1 bộ test data trên production để thực hiện kiểm thử.
</p>
<p>
Với cách này, bản thân em thấy đôi chút lạ lùng do có khả năng end user sẽ truy cập đc test data đấy
</p>
<p>
Nếu là em, em sẽ dump production db vào 1 môi trường riêng biệt, giả sử như staging (với cấu hình gần giống với production server). Tất cả hoạt động kiểm thử sẽ thực hiện trên staging với bộ production data. QA có thể tự do CRUD data mà ko lo ngại ảnh hưởng đến end user. Tuy nhiên, có vẻ như khách hàng của cty em budget ko dư dả nên ko set up 1 server riêng như vậy.
</p>
<p>
Tiện đây, em muốn hỏi ở công ty anh Dũng cũng như mọi người, practice như trên có phổ biến hay ko ? Nếu ko, mời mọi người chia sẻ cách kiểm thử trên môi trường production.
</p>
run docker-compose.yml với https cho bitnami/minio
file docker-compose.yml em cấu hình như bên dưới<p>
khi run xong thì chỉ truy cập được http
</p>
<p>
làm cách nào để truy cập https được ạ
</p>
<p>
version: "3"
</p>
<p>
networks:
</p>
<p>
my_network:
</p>
<p>
driver: bridge
</p>
<p>
services:
</p>
<p>
minio-0:
</p>
<p>
container_name: minio-0
</p>
<p>
image: "bitnami/minio:latest"
</p>
<p>
networks:
</p>
<ul>
<li>my_network</li></ul>
<p>
restart: always
</p>
<p>
ports:
</p>
<ul>
<li>9000:9000</li>
<li>9001:9001</li></ul>
<p>
volumes:
</p>
<ul>
<li>C:docker-nledataminio-0:/bitnami/minio/data</li></ul>
<p>
environment:
</p>
<ul>
<li>MINIO_ROOT_USER=user</li>
<li>MINIO_ROOT_PASSWORD=password</li>
<li>MINIO_HTTPS_ENABLE=true</li>
<li>MINIO_CERT_FILE=C:docker-nlecertscertificate.crt</li>
<li>MINIO_KEY_FILE=C:docker-nlecertsprivate.key</li>
<li>MINIO_CA_CERT_FILE=C:docker-nlecertsca_bundle.crt</li></ul>