系统架构
文章平均质量分 85
啊浪的博客
细节决定一切。
最近会将很久之前总结的相关笔记整理成文章,以作总结。侵即删。
展开
-
轻量级任务调度中间件
一、遇到的问题近段时间这边遇到了一些类似的需求,而且未来可能还会有……源源不断的需求-_-案例1: 当一个内容产生时,需要在1小时后开始,每隔1小时去检测该内容的质量评分(根据阅读量、点赞率等指标算出),最多检测两天或者1000次,如果满足阈值则进行大规模推广,从而提高优质内容的曝光率。案例2: 当一个内容开始大规模推广时,可能因算法出错(阅读量高的内容不一定是好内容,如涉黄内容就是阅...原创 2018-06-13 23:09:50 · 4511 阅读 · 0 评论 -
Timeline引擎
TimeLine引擎一种基于范围(如关注账号、关系圈,附近的人等)推送,范围里面的人发布各种内容,内容按照不同的组织形式展现的流。如将用户关注的账号的动态流或内容流整合后,按照时间等条件排序,显示成流状的形式。如:微淘,微博,朋友圈、订阅号等类似场景。基本概念feed:一条内容,如一条微博、朋友圈。这里把Feed看做 Email,每个用户都有一个收件箱,每个公众号(或商家)都有一个发件箱。Inbo...原创 2018-06-13 23:19:03 · 427 阅读 · 0 评论 -
Kafka简介
架构Producer发送消息到某个指定的Topic,Broker负责存储消息,Consumer通过订阅的方式消费指定Topic的消息。 实现细节Partition 物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。在发送一条消息时,可以指定这条消息的key,Prod...原创 2018-06-14 22:53:13 · 455 阅读 · 1 评论 -
kafka集群安装
0、运维添加机器到堡垒机、push用户、挂盘(/data*)、创建目录(push用户权限 /web/push/)1、上传kafka安装包kafka_2.11-0.11.0.0.tgzcd /web/push/ && sudo -u push rz -bey2、解压(/web/push/kafka并且cd进入目录)sudo -u push tar -zxvf kafka...原创 2019-02-13 11:43:15 · 239 阅读 · 0 评论 -
Spring详解
Bean的生命周期 0,调用BeanFactoryPostProcessor的postProcessBeanFactory方法1,调用Bean的构造函数(或者工厂方法)实例化Bean.2,对Bean的成员变量赋值.3,如果Bean实现了BeanNameAware,调用Bean的setBeanName方法.4,如果Bean实现了BeanFactoryAware,调用Bean的s...原创 2018-06-13 23:18:37 · 740 阅读 · 0 评论 -
程序优化的那些事
系统设计层面攒包/定时地进行批量处理。提高单包承载率,减少网络io、减少系统调用次数。数据处理(cpu消耗型代码)、io独立线程处理。多地部署,就近接入。分set,避免跨城、跨地区流量访问。消息队列尽量无锁化、一写一读等。尽量减少无用的代理层,去中间商。灰度机制。内核级优化(操作系统多队列网卡特性等)。数据自动报表化,多维度原创 2017-10-08 15:56:55 · 440 阅读 · 0 评论 -
一致性hash算法
分布式算法服务器的负载均衡的算法有很多,包括:轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法。典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N原创 2017-10-22 11:08:48 · 372 阅读 · 1 评论 -
ElasticSearch简介
ElasticSearch是一个开源的、可扩展、分布式的搜索和分析系统。适用场景不需要事务支持。可以适应准实时的查询特点,注意ES 不是实时查询的数据库。需要支持多维度查询的场景,即需要在很多字段进行过滤,比如数十、数百甚至更大的字段中选择过滤。需要支持庞大数据量的聚合、排序、统计的要求,但对并发请求要求不高。需要支撑千万、甚至数百亿以上的数据查询。原创 2017-10-09 10:51:41 · 682 阅读 · 0 评论 -
RocketMQ简介
简介rocketMQ是一款分布式、消息队列中间件。基于发布订阅模式,有Push和Pull两种消费方式,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。核心作用:解耦、异步化、消息堆积缓冲高性能离不开异步,异步离不开队列!基本概念Producer: 消息生产者,负责产生消息并发送消息到meta服务器Consumer: 消...原创 2018-06-13 23:19:07 · 530 阅读 · 0 评论 -
Netty浅析
简介Netty是一个异步网络IO框架,简单说就是帮我们专注于收发包的细节且提供高性能IO复用,在恰当的时候(如Tcp收满一个逻辑包后),回调我们的业务逻辑代码。Netty基于NIO,整个Netty API体系都是异步的(可通过callback被动通知模式、Future主动通知模式进行后续的业务逻辑操作)。组件介绍Channels代表一次具体的管道连接(文件设备或Socket),连接着两端的的读写。...原创 2018-06-13 23:18:22 · 385 阅读 · 0 评论 -
浅谈Zookeeper
CAP一致性(Consistency):同一个数据在集群中的所有节点,任意同一时刻是否具有同样的值。可用性(Availability):集群中部分节点故障后,集群整体是否还能处理客户端请求。分区容忍性(Partition tolerance):是否允许数据的分区,意思是指是否允许集群中的节点之间无法通信。CAP定理指出,一个系统不可能同时满足一致性(Consistency)、可用性(Availab...原创 2018-06-13 23:18:56 · 333 阅读 · 0 评论 -
揭秘java日志系统
概念 日志框架:是一种日志接口,不负责具体的日志输出形式(有点类似于JDBC),可以灵活的切换日志输出形式。常见的日志框架有slf4j、jcl,只提供Logger、LoggerFactory等接口 日志系统:是应用实际使用的日志工具,主要有log4j,jul,logback等。一般在程序中应该避免直接使用,可以保证程序具有一定的灵活性。 Logger:日志输出实例,包...原创 2018-06-13 23:18:18 · 2049 阅读 · 0 评论 -
Zookeeper集群搭建
前置条件准备Zookeeper Linux压缩包,版本3.4.8jdk 1.7 或以上mkdir -p /data/zk_data/datamkdir -p /data/zk_data/logsecho “1” > /data/zk_data/data/myid部署步骤解压安装包修改zookeeper-3.4.8/conf 目录下zoo.cfg配置文件,设置端口号,目录...原创 2019-05-15 11:13:51 · 217 阅读 · 0 评论