架构
文章平均质量分 57
whuruby
珞珈山下的理想,一分耕耘一分收获
展开
-
RPC学习
框架描述:1.服务提供者启动,并向注册中心注册服务节点2.客户端启动,并从注册中心拉取最新服务节点3.客户端与服务节点直接建立Socket通信,完成远程调用4.服务节点发生变化,注册中心通知客户端,pull or push?关于RPC Client:1.服务节点列表,需在本地缓存,防止注册中心挂掉 如何更新缓存的服务节点数据?2.客户端采取...原创 2020-04-12 16:13:19 · 392 阅读 · 0 评论 -
ZooKeeper学习
1、为什么需要ZooKeeper?(1)现代应用需要分布式部署单台计算机性能升级无法支撑日益庞大的数据量容错容灾考虑(2)在分布式应用场景中,开发和运维人员耗费大量时间处理异构系统的协作通信问题(3)ZooKeeper专门应用分布式系统协作通信,使得开发人员专注业务逻辑2、3、zookeeper基本元素(1)znode持久(persistent)节点:只能通过调用delete来删除临时(ephem...原创 2018-06-09 10:58:20 · 252 阅读 · 0 评论 -
架构学习-单服务器性能优化
1、服务器架构角度(1)PPC(Process Per Connection)收到一个请求,即fork一个子进程处理(2)prefork提前fork多个子进程,避免创建、销毁进程的耗时(3)TPC(Thread Per Connection)收到一个请求,即创建一个子线程处理(4)prethread提前创建多个线程组成线程池,避免创建、销毁线程的耗时(5)异步IO模型服务器和客户端都维护一个Cha...原创 2018-06-13 15:20:52 · 484 阅读 · 0 评论 -
架构学习-高性能负载均衡
1、负载均衡手段及适用范围DNS地理级别的负载均衡,根据用户IP分配就近服务器简单粗暴,扩展性查,分配策略简单硬件负载均衡F5、A10,支持百万级别价格昂贵,定制化,稳定可靠,支持DDos防御等软件负载均衡Nginx,LVS,支持5万级别开源软件,可扩展2、DNS...原创 2018-06-13 14:23:31 · 279 阅读 · 0 评论 -
REST API学习
1 实例比较(1)传统API设计潜在问题:功能驱动设计;客户端需要了解所有接口设计并实现才能使用 (2)RESTful API设计2 REST API优势原创 2017-06-03 23:11:09 · 385 阅读 · 0 评论 -
ElasticSearch学习
1、 下载elasticsearch-2.3.5.zip2、 启动:切换目录:cd E:\elasticsearch-2.3.5\bin运行:elasticsearch.bat3、 安装ElasticSearchHead插件切换目录:cd E:\elasticsearch-2.3.5\bin运行:plugin install mobz/elasticsearc原创 2017-06-22 21:02:33 · 262 阅读 · 0 评论 -
ES集群和分片
1、elasticsearch集群简介ES节点:运行的ES实例ES集群由若干节点组成,这些节点在同一个网络内,cluster-name相同2、集群包含节点类型master节点:集群中的一个节点会被选为master节点,它将负责管理集群范畴的变更,例如创建或删除索引,添加节点到集群或从集群删除节点。master节点无需参与文档层面的变更和搜索,这意味着仅有一个master节点并不会因流量增长而成为原创 2017-10-18 15:12:48 · 8117 阅读 · 0 评论 -
ES处理冲突
1、什么是文档对象JSON序列化后是一个文档2、如何唯一确定一个文档_index + _type + _idid可以由外部指定,也可以由ES自动生成3、ES更新文档流程先GET原始文档,然后修改,最后将整个文档进行再次索引处理4、ES中_version变更对应于增删查改操作,ES中索引、put和删除操作时,无论文档有没有变化,它的_version都会增加5、如何处理修改冲突乐观并发控制:所有原创 2017-10-18 15:19:09 · 1786 阅读 · 0 评论 -
RRFARE_FRAME框架搭建
1、 数据库设计 (1) 表格设计 设置主键 设置保留字段:reserve1、reserve2、reserve3 设置删除标志字段:id_del 设置创建时间字段:create_time 设置更新时间字段:last_update_time 表格命名:数据库名_业务逻辑名称 数据库命名:公司名_业务逻辑名称 是否有外键约束?(高并发应用一般不设置外键,数据完整性由应用端负责)原创 2017-09-22 08:56:38 · 258 阅读 · 0 评论 -
分布式架构与分布式锁
1、分布式CAP理论原创 2017-09-21 17:33:32 · 321 阅读 · 0 评论 -
适配器设计模式简单实现
1、适配器设计模式场景 当前类不能满足客户端需求,但又不能修改当前类(开闭原则),因此创建【适配器类】和【客户端目标接口】,实现方式有两种:1)适配器类【继承】当前类并实现目标接口;2)适配器类包含当前类引用并实现目标接口2、代码实现/** * 现有类 * @author Administrator * */public class Adaptee{ public vo原创 2017-08-16 09:24:27 · 720 阅读 · 0 评论 -
系统性能基础知识
1、基本指标 QPS(TPS):每秒【请求/事物】数量(注:TPS是软件测试结果的测量单位) 并发数:系统同时处理的【请求/事物】数量 响应时间:一般取平均响应时间(因为各个功能模块响应时间不一,甚至同一个功能模块在输入数据不同时响应时间也不一样),响应时间=CPU计算时间+IO时间2、指标之间关系 并发数=QPS * 平均响应时间3、系统吞吐量 系统吞吐量由QPS和并发数两个因素决定。初原创 2017-07-14 14:39:02 · 592 阅读 · 0 评论 -
RocketMq学习
1、JMS概述:Java Message Service规范,规定不同Java客户端之间如何进行消息传输2、JMS消息传输模型:P2P(点对点)和Pub/Sub(发布订阅)(1)P2P模型组成:消息队列(Queue)、发送者(Sender)、接收者(Receiver)特征:每个消息只有一个消费者,一旦被消费,即从消息队列中删除,如果希望每个消息都被成功处理,则应该使用P2P模型原创 2017-06-21 21:38:56 · 2691 阅读 · 1 评论 -
Dubbo框架学习
基本三要素:Consumer,Provider,RegistryRegistry支持Redis,Zookeeper,Multicast,Simple四种注册中心,一般使用Zookeeper,可以通过Dubbo Admin应用监控注册过的Consumer,Provider可选要素Monitor: 统计各服务调用次数,调用时间等,统计先在内存汇总后,每分钟一次发送到原创 2017-06-03 17:39:40 · 382 阅读 · 0 评论 -
模板方法设计模式简单实现
1、模板方法介绍 模板方法模式是在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板方法可以进行挂钩(hook),钩子(hook)是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。2、代码实现/** * 4S店提供售卖模板 * @author原创 2017-08-16 11:56:06 · 332 阅读 · 0 评论 -
Tomcat最佳线程数
什么是最佳线程数? 为满足更多用户访问需求,可以调整Tomcat线程数,但是不能太大,否则导致线程切换开销,随着用户递增(线程数也随之调整),系统QPS逐渐增加,当用户量达到某个值,QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值认为是最佳线程数。怎么计算最佳线程数? (1)通过用户慢慢递增进行压测,观察QPS,响应时间 (2)通过公式计算:服务器端最佳线程数量=((线原创 2017-07-14 14:51:35 · 3824 阅读 · 0 评论 -
单例模式几种实现
饿汉模式public class JDBCSingleton1 { /** * 构造函数私有,避免类在外部被实例化 */ private JDBCSingleton1(){ } private static final JDBCSingleton1 jdbcSingleton = new JDBCSingleton1(); // 饿汉模式,线程安全原创 2017-07-14 17:17:37 · 226 阅读 · 0 评论 -
设计模式
1、什么是设计模式 设计模式是一套【经过实践验证】的针对【特定问题】的解决方案,例如如果想让某一个类只被创建一次,并且被其它所有的类公用,则【单例模式】会是很好的解决方案。一般来讲,设计模式具有以下特征:与具体编程语言无关是经过大量工程实践的经验总结可以用来进行系统架构设计恰当使用能够让应用程序更加灵活、可维护性高、代码可重用性高3、设计模式分类创建型设计模式 工厂模式 抽象工原创 2017-07-14 09:53:28 · 250 阅读 · 0 评论 -
微服务架构探索
多客户端的应用场景中,采用服务拆分的方式更加有效,每个服务具有单独的数据库以降低耦合原创 2017-06-03 17:17:38 · 215 阅读 · 0 评论