@s2banggia88 Có khi nào cổng 80 ở local đang chạy apache2 ko, hình như 2 thằng server khác nhau (nginx, apache2) sẽ ko dùng chung trên cùng 1 cổng được thì phải (hoặc phải cho listen trên cổng khác)
@duongricky đầu tiên bạn gọi POST /api/login nó trả về token key: 'dsadsadsadsasdsadsadsadasdsadsadsa.dsa.dsa.dsa.dsa.ds.&sadsadsdsahjdkl' ví dụ vậy bạn lưu cái giá trị đó vào vuex và cookie cho nó ở client. sau đó ông gọi api GET /user/1 chẳng hạn bạn cần có quyền đăng nhập đơn giản gán cái header có Authenticate là Bear: 'dsadsadsadsasdsadsadsadasdsadsadsa.dsa.dsa.dsa.dsa.ds.&sadsadsdsahjdkl' thì sẽ lấy được dữ liệu
@duongricky cái này hoàn toàn có thể, bạn dùng jwt rồi thì vuejs của bạn phải lưu token ở cookie đồng thời cả vuex, mỗi request API đó đều cần Bear: 'key' để xác thực đã đăng nhập. key này tự động bị xóa khỏi cookie khi hết hạn.
theo quan điểm của mình thì nếu 1 View chỉ sử dụng nội bộ trong Super View, thì strong hay weak không quan trọng. Còn khi View đó có thể được dùng (ngoài phạm vi của Super View) thì mới cần quan tâm đến strong hay weak
Khi Started và Bound Service chạy đồng thời.
Khi Started Service gọi stopSelf() hoặc được gọi stopService() thì service vẫn chưa vào onDestroy(). Cần một điều kiện nữa để nó bị bủy nếu các thành phần ràng buộc với BoundService hủy hết liên kết.
Theo tài liệu trên trang chủ Developer thì mình thấy nêu rõ:
Khi startService mà gọi stopSelf() hoặc 1 thành phần khác (Activity) gọi stopService() -> Service lập tực bị hủy mà không quan tâm xem có hay ko thành phần nào đang bind vào Service hay k. Kể cả có 1 hay nhiều activity đang bind vào Service thì cũng bị hủy, vì bạn đang bắt đầu Service bằng cách startService().
Refer: https://developer.android.com/guide/components/bound-services.html#Lifecycle
pydot failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH.
Mình bị lỗi này khi visualize model
Bài viết khá hay, Bạn có thể cho mình xin số phone để liên hệ được không, mình muốn thương mại hóa sản phẩm này và muốn gặp bạn để bàn bạc, mình ở Hà Nội, email mình là huyblockchain@gmail.com
Pointcut: có nhiều cách để xác định joinpoint, những cách như thế được gọi là pointcut.
Advice: là những xử lý phụ được thêm vào xử lý chính, code để thực hiện các xử lý đó được gọi Adivce.
Anhcó thể nói rõ hơn hoặc lấy ví dụ về hai cái này không ? Em thường làm nhưng không thực sự hiểu rõ - nhập nhằng giữa 3 khai niệm này
"Mình đang sợ cài qua docker nó sẽ bị hạn chế về tài nguyên."
-> Đâu, Docker là một công cụ giúp mình tạo ra các môi trường ảo hóa (máy ảo), dùng chung tài nguyên với máy thật mà. Cũng cần phải chú ý tới image size một chút nhé.
"Việc cài service trực tiếp vào system và cài thông qua docker có khác biệt gì không nhỉ."
-> Cài thông qua Docker giống như bạn tạo những chiếc hộp, khi nào cần dùng đến hộp vào thì gọi hộp đó, không muốn dùng nó thì xóa bỏ.
Như vậy, máy chủ sẽ "sạch sẽ", không chứa các file rác ...
Ngoài ra lợi ích của nó cũng còn khá nhiều
=> Về 2 ý này bạn có thể đọc phần 1 để hiểu rõ hơn bản chất của Docker đã nhé !
Máy local của mình cũng là Linux OS, con EC2 của AWS cũng là Linux OS, mình cho chạy như nhau luôn, chỉ khác một vài config ở development và production.
Kiểu 2 thì bắt đầu liên quan tới load balancing, auto scale rồi database master slave ... thì mệt phết.
Có vẻ như còn một số vấn đề như bảo mật, khả năng tương thích ... gì đó mà nhiều ng chưa muốn mạo hiểm apply Docker trên prod.
Mình cũng chưa có điều kiện làm dự án mà prod với docker nên cũng chưa dám chém bừa, cũng đang tìm hiểu thêm bạn ạ.
THẢO LUẬN
@s2banggia88 Có khi nào cổng 80 ở local đang chạy apache2 ko, hình như 2 thằng server khác nhau (nginx, apache2) sẽ ko dùng chung trên cùng 1 cổng được thì phải (hoặc phải cho listen trên cổng khác)
@duongricky đầu tiên bạn gọi POST /api/login nó trả về token key: 'dsadsadsadsasdsadsadsadasdsadsadsa.dsa.dsa.dsa.dsa.ds.&sadsadsdsahjdkl' ví dụ vậy bạn lưu cái giá trị đó vào vuex và cookie cho nó ở client. sau đó ông gọi api GET /user/1 chẳng hạn bạn cần có quyền đăng nhập đơn giản gán cái header có Authenticate là Bear: 'dsadsadsadsasdsadsadsadasdsadsadsa.dsa.dsa.dsa.dsa.ds.&sadsadsdsahjdkl' thì sẽ lấy được dữ liệu
@quanghung97 chi tiết chút được k bác, e chưa hiểu lắm
@duongricky cái này hoàn toàn có thể, bạn dùng jwt rồi thì vuejs của bạn phải lưu token ở cookie đồng thời cả vuex, mỗi request API đó đều cần Bear: 'key' để xác thực đã đăng nhập. key này tự động bị xóa khỏi cookie khi hết hạn.
theo quan điểm của mình thì nếu 1 View chỉ sử dụng nội bộ trong Super View, thì strong hay weak không quan trọng. Còn khi View đó có thể được dùng (ngoài phạm vi của Super View) thì mới cần quan tâm đến strong hay weak
k dùng đăng nhập truyền thống được không bác, với em muốn làm api
----------------------------------------- Comment -----------------------------------
Theo tài liệu trên trang chủ Developer thì mình thấy nêu rõ:
deepin-scrot
Chưa kịp đọc cơ mà lần đầu tiên thấy trending mà âm vote..
))) 

mình vẫn k rõ câu hỏi lắm bạn bị lỗi lúc install pydot hay là do chưa install GraphViz? https://stackoverflow.com/questions/40632486/dot-exe-not-found-in-path-pydot-on-python-windows-7 bạn tham khảo link này nhé.
" pip install graphviz
pip install pydot
conda install graphviz"
pydotfailed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH. Mình bị lỗi này khi visualize modelMình downvote vì bài viết dài nhưng giá trị thông tin ít.
virtual IP mình khai báo trong keepalived rồi dùng thôi bạn
Chủ yếu là khai báo cái này net.ipv4.ip_nonlocal_bind=1 , để interface nhận thêm ip khác 
good article
Cam on ban nhieu nhe
Đạ em sẽ sửa lại
))
Bài viết khá hay, Bạn có thể cho mình xin số phone để liên hệ được không, mình muốn thương mại hóa sản phẩm này và muốn gặp bạn để bàn bạc, mình ở Hà Nội, email mình là huyblockchain@gmail.com
Thanks
Pointcut: có nhiều cách để xác định joinpoint, những cách như thế được gọi là pointcut. Advice: là những xử lý phụ được thêm vào xử lý chính, code để thực hiện các xử lý đó được gọi Adivce.
Anhcó thể nói rõ hơn hoặc lấy ví dụ về hai cái này không ? Em thường làm nhưng không thực sự hiểu rõ - nhập nhằng giữa 3 khai niệm này
"Mình đang sợ cài qua docker nó sẽ bị hạn chế về tài nguyên."
-> Đâu, Docker là một công cụ giúp mình tạo ra các môi trường ảo hóa (máy ảo), dùng chung tài nguyên với máy thật mà. Cũng cần phải chú ý tới image size một chút nhé.
"Việc cài service trực tiếp vào system và cài thông qua docker có khác biệt gì không nhỉ."
-> Cài thông qua Docker giống như bạn tạo những chiếc hộp, khi nào cần dùng đến hộp vào thì gọi hộp đó, không muốn dùng nó thì xóa bỏ. Như vậy, máy chủ sẽ "sạch sẽ", không chứa các file rác ... Ngoài ra lợi ích của nó cũng còn khá nhiều
=> Về 2 ý này bạn có thể đọc phần 1 để hiểu rõ hơn bản chất của Docker đã nhé !
Còn Docker trên prod thì có 2 kiểu: The easiest way to deploy an application is to run it on a single server, similar to how you would run your development environment. If you want to scale up your application, you can run Compose apps on a Swarm cluster.
Kiểu một là chạy single server, dạng basic
Máy local của mình cũng là Linux OS, con EC2 của AWS cũng là Linux OS, mình cho chạy như nhau luôn, chỉ khác một vài config ở development và production.
Kiểu 2 thì bắt đầu liên quan tới load balancing, auto scale rồi database master slave ... thì mệt phết.
Khi đó cần biết tới Kubernetes hoặc Docker swarm
Có vẻ như còn một số vấn đề như bảo mật, khả năng tương thích ... gì đó mà nhiều ng chưa muốn mạo hiểm apply Docker trên prod. Mình cũng chưa có điều kiện làm dự án mà prod với docker nên cũng chưa dám chém bừa, cũng đang tìm hiểu thêm bạn ạ.