敏捷开发之LinkedIn的高效代码评审技巧
阅读和代码评审是每个工程师在日常工作中都要做的事情,然而一个标准的code review流程,实际上很难落地,它要求每次代码变更在部署到生产环境前,甚至是在提交合并前,都需要被另外一个小组成员进行正式的评审。在LinkedIn公司,自从2011年起code review成为了开…
程序员都应该了解的运维知识经验
常见的URL格式是http://www.liangsonghua.me,由协议+域名+端口号组成,这里涉及到一个不可轻视的知识点,就是跨域,浏览器有一个同源策略限制,协议、域名、端口号有一个不同就会发生跨域冲突,从而保证了其他站点不能非法操作正常站点的cookie和修改dom元…
前中台拆分标准
个性化定制类功能,例如某个页面的楼层配置、这种业务渠道不同、配置差异很大,不具有中台通用性,诸如此类个性化很强的模块划规至前台。临时类业务,使用期限只有一段时间、后续会废弃的逻辑保留在前台,使其能灵活添加以及丢弃 前台可有自己的数据存储、用于存储一些个性化、定制化较强的数据。前…
深度解析NIO底层
1、BIO的应用每来一个请求都会起一个线程去接待。 2、NIO的应用会有一个accepter线程专门负责接待。 所以NIO在做高并发和高吞吐量服务时比BIO更加适合,并且在长链接的情况下,同一时间对CPU的利用率也更高。 2、fd 类似于一种请求事件(Socket描述符).有一…
分布式系统之Raft共识算法
分布式系统除了提升整个体统的性能外还有一个重要特征就是提高系统的可靠性。提供可靠性可以理解为系统中一台或多台的机器故障不会使系统不可用或者丢失数据。保证系统可靠性的关键就是多副本,一旦有多副本,那么就面临多副本之间的一致性问题一致性算法正是用于解决分布式环境下多副本之间数据一致…
Kafka中的恰好一次交付
任何时候都可能发生Broker节点下线,针对这种情况,Kafka保证了每条消息被持久化并且冗余多份(作者按:建议约定topic的配置replication.factor参数值必须大于1,要求每个 partition必须有至少2个副本)。不过也有可能生产者到Broker节点的RP…
微服务架构之我们应该从Dubbo中学到什么
大凡发展的比较好的框架,都遵守微核的理念, Eclipse的微核是OSGi(依赖META-INF/MANIFEST.MF配置), Spring的微核是BeanFactory,Maven的微核是Plexus,Dubbo的微核是SPI(依赖META-INF/services/com…
如何实现Spring框架中的AOP
创建织入点AopProxy,可以通过getProxy方法获取代理后的对象。使用CGLIB生成动态代理,生成Enhancer实例,并指定用于处理代理业务的回调类 完成了织入之后,我们要考虑另外一个问题:对什么类以及什么方法进行AOP?对于“在哪切”这一问题的定义,我们又叫做“Po…
京东技术解密之配置中心DUCC
支持Log4j、Log4j2、Logback的动态修改日记级别功能。 可以看到在PostProcessBeanFactory方法中,实例化了ConfiguratorManager和Observer,并把Manager设置为Observer的成员变量。另外构造了一个包含Manag…
深入理解Apache Kafka
Kafka由LinkedIn公司于2011年推出,自那时起功能逐步迭代,目前演变成一个完整的平台级产品,它允许您冗余地存储巨大的数据量,拥有一个具有巨大吞吐量(数百万/秒)的消息总线,并且支持实时流任务处理。总的来说,Kafka是一个分布式,可水平扩展,容错的日志提交系统 我们…
微服务架构之容错Hystrix
假设单体应用可用率为99.99%,即使拆分后每个微服务的可用率还是保持在99.99%,总体的可用率还是下降的。因为凡是依赖都可能会失败,凡是资源都是有限制的,另外网络并不可靠。有可能一个很不起眼的微服务模块高延迟最后导致整体服务不可用 每个熔断器默认维护10个bucket,每秒…
DDD领域驱动设计指导微服务实践
把问题空间分割为规模更小且易于处理的若干子问题。分割后的问题需要足够小,以便一个人单枪匹马就能够解决他们;其次,必须考虑如何将分割后的各个部分装配为整体。分割得越合理越易于理解,在装配成整体时,所需跟踪的细节也就越少。即更容易设计各部分的协作方式。评判什么是分治得好,即高内聚低…
Vue中组件extend和mixin的使用场景?
Vue中组件extend和mixin的使用场景?