摘要:
<!--?xml version="1.0" encoding="UTF-8"?--> 应用消息队列可以对系统进行解耦,流量削峰,在分布式系统设计中,消息队列是重要的组件之一。 在开发中应用过ActiveMQ,kafka等mq,不过对消息队列背后的实现原理关注不多,其实了解消息队列背后的实现特别重要 阅读全文
摘要:
Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序。Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源。这篇文章学习 goroutine 的应用及其调度实现。 一、Go语言对并发的支持 使用goroutine编程 使用 阅读全文
摘要:
Java作为一门名副其实的工业级语言,语法友好,学习简单,大规模的应用给代码质量的管控带来了困难,特别是团队开发中,开发过程中的规范会直接影响最终项目的稳定性。 善医者“未有形而除之”,提高工程健壮性最好的方式是在代码出现问题之前就排除掉,不给Bug出现的机会。一份好的开发规范就可以起到这样的作用, 阅读全文
摘要:
Github Pages可以创建免费的静态站点,支持自带主题、支持自制页面等,并且可以使用Jekyll或者Hexo等静态博客框架进行管理。 独立博客是博客园等博客平台之外的一个良好补充,相比使用虚拟主机或者云服务器搭建站点,静态博客管理和使用简洁,使用Github Pages搭建博客不失为一个好选择 阅读全文
摘要:
58到家数据库30条军规,有一条是“禁止使用存储过程、视图、触发器、Event”, 高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”, 并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”。 数据库擅长存储与 阅读全文
摘要:
<!--?xml version="1.0" encoding="UTF-8"?--> 项目开发中通常会有一些复杂业务场景,比如多个数据表的插入更新等,这些业务通常需要事务的支持。 Spring等框架支持对事务的管理,可以更好的实现存储和业务逻辑的分离,不过代码或者框架层面的事务管理,最终还是落实到 阅读全文
摘要:
这个春节最大的感慨是时间过的越来越快,转眼一年就过去了, 在这里回顾和总结2016年的工作,分享自己的感悟,展望新年,开工大吉! 一、回顾2016年 这一年工作上变动了,技术上也成长了很多。 1.工作与学习 过去的一年,从前公司来到搜狐,参与一个全新的新闻客户端的后台开发,团队同事非常给力,也开始知 阅读全文
摘要:
<!--?xml version="1.0" encoding="UTF-8"?--> 规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高, 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢失等。 就像 阅读全文
摘要:
目录 木桶理论应用在系统优化中 压力测试如何实施 常用压力测试工具选型 如何监控系统资源,定位性能瓶颈 针对测试报告进行针对性优化 使用JMeter进行压力测试实践 木桶理论应用在系统优化中 木桶理论又称短板理论,其核心思想是一只木桶盛水多少,并不取决于最高的木板,而取决于最短的那块木板。 木桶原理 阅读全文
摘要:
类似基于投票的热门计数算法普遍应用在热门文章,热门评论等场景中, 典型的比如网易和今日头条的评论区,国外比如Hacker News和Reddit的主题排序。 一.Hacker News的排序算法 Hacker News是一个主题社区,用户可以为主题投票,根据得票数,系统自动统计出热门文章排行榜。 同 阅读全文
摘要:
《产品经理的20堂必修课》 第1章 从用户需求出发 产品是否能够获得市场上用户的认可,根本上是由产品的功能所满足的用户需求所决定的,而不是我们认为的产品的功能决定的。 产品的核心功能 :一个主体的功能或功能组处于所有产品功能的关键位置。 核心功能所满足的用户需求基本上就决定了这款产品所能获得的最大市 阅读全文
摘要:
高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。 高可用集群的解决方案 计算机系统的高可用在不同的层面上有不同的表现: (1)网络高可用 由于网络存储的快速发展,网络冗余技术被不断提升, 阅读全文
摘要:
典型消息中间件的架构 消息中间件的价值:就是异步、解耦合、简单化分布式系统,减轻业务和数据库的负担,业务只需要最简单的事情系统解耦合、减轻了系统的依赖 一般来讲,设计消息队列的整体思路是先构建一个整体的数据流,例如Producer发送给Broker,Broker发送给consumer,consume 阅读全文
摘要:
什么是RPC RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务,本质上编写的调用代码基本相同。比如两台 阅读全文
摘要:
一、Token Auth机制 基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中。 相比原始的Cookie+Session方式,更适合分布式系统的用户认证,绕开了传统的分布式Session一致性等问题。 基于Token的身份验证的主流程如下: 用户通过用户名和密码发送请 阅读全文