[转]下一代的微服务架构基础是ServiceMesh?
1. 写在前面 今年,ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础。作为架构师,如果你现在还不了解 ServiceMesh 的话,是否感觉有点落伍了? 那么到底什么是 ServiceMesh?它的诞生是为了解决什么问题?企业是否适合引入 ServiceMesh?通过这篇文章,将为你一一解答这些问题。
Just One Pure ITer
1. 写在前面 今年,ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础。作为架构师,如果你现在还不了解 ServiceMesh 的话,是否感觉有点落伍了? 那么到底什么是 ServiceMesh?它的诞生是为了解决什么问题?企业是否适合引入 ServiceMesh?通过这篇文章,将为你一一解答这些问题。
[resource]微博推荐系统架构揭秘:基于机器学习的个性化Push应用实践
1. CAT 项目背景 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统。美团点评基础架构部希望在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案,CAT 目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等服务。 本文会对 CAT 的客户端、性能等做详细深入的介绍,更多技术细节,欢迎阅读《深度剖析开源分布式监控 CAT》。
背景 最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。 由于题目中给出的OOM,java中OOM又分很多类型;比如:堆溢出(“java.lang.OutOfMemoryError: Java heap space”)、永久带溢出(“java.lang.OutOfMemoryError:Permgen space”)、不能创建线程(“java.lang.OutOfMemoryError:Unable to create new native thread”)等很多种情况。 本文主要是分析堆溢出对应用带来的影响。
1. 0 题记 对于每个互联网研发人员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作。 为此,我们总结了非常有用的并且最常用的20个命令行系统监视工具。这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因。这些监控命令足够你选择适合你的监控场景。
github上7000+ Star的Python常用代码合集 https://github.com/geekcomputers/Python 每秒几十万的大规模网络爬虫是如何炼成的?
Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。笔者根据个人经验,将 Java 性能优化分为 4 个层级:应用层、数据库层、框架层、JVM 层,如图 1 所示。
许多人认为,如果代码写得足够扎实,注释就没什么用了。在他们看来,当一切都设计妥当时,代码本身会记录其作用,因此代码注释是多余的。我对此持不同意见,主要出于两个原因: 1. 许多注释并未起到解释代码的作用。 2. 注释使读者不必凭空想象太多细枝末节,帮助读者降低认知负担。 注释的分类 我的工作始于随机地阅读Redis源代码,以检查注释是否以及为什么在不同的上下文中起作用。我很快发现,注释的作用来源于多方面:它们在功能,编程风格,长度和更新频率方面往往非常不同。我最终转向了注释分类。
1. 0 题记 作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法。本文不限于任何语言、框架,不过可能会用Python语言来举例。 不过囿于个人经验,可能更多的是从Linux服务端的角度来思考这些问题。 2.
Follow:
| Cookie | Duration | Description |
|---|---|---|
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |