摘要:
迪米特法则建议“只和朋友说话,不要陌生人说话”,以此来减少类之间的耦合。
阅读全文
posted @ 2020-06-21 09:02
咔啡
阅读(375)
推荐(0)
摘要:
OAuth 代表开放授权协议。这允许通过在 HTTP 服务上启用客户端应用程序(例 如第三方提供商 Facebook,GitHub 等)来访问资源所有者的资源。因此,您可 以在不使用其凭据的情况下与另一个站点共享存储在一个站点上的资源。32、康威定律是什么? “任何 设计 系统 的组 织( 广泛 定
阅读全文
posted @ 2020-06-21 08:56
咔啡
阅读(554)
推荐(0)
摘要:
想了解 ES 集群的底层原理,不再只关注业务层面了。 前置前提: 1、只有候选主节点(master:true)的节点才能成为主节点。 2、最小主节点数(min_master_nodes)的目的是防止脑裂。 这个我看了各种网上分析的版本和源码分析的书籍,云里雾里。 核对了一下代码,核心入口为 find
阅读全文
posted @ 2020-06-21 08:51
咔啡
阅读(736)
推荐(0)
摘要:
kill -3 [java pid] 不会在当前终端输出,它会输出到代码执行的或指定的地方去。比如,kill -3 tomcat pid, 输出堆栈到 log 目录下。 Jstack [java pid] 这个比较简单,在当前终端显示,也可以重定向到指定文件中。 -JvisualVM:Thread
阅读全文
posted @ 2020-06-21 08:42
咔啡
阅读(629)
推荐(0)
摘要:
享元模式通过共享对象来避免创建太多的对象。为了使用享元模式,你需要确保 你的对象是不可变的,这样你才能安全的共享。JDK 中 String 池、Integer 池 以及 Long 池都是很好的使用了享元模式的例子。
阅读全文
posted @ 2020-06-21 08:41
咔啡
阅读(294)
推荐(0)
摘要:
有联合查询和嵌套查询。联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先查 一个表,根据这个表里面的 结果的外键 id,去再另外一个表里面查询数据,也是通过 配置 collection,但另外一个表的查询通过 s
阅读全文
posted @ 2020-06-21 08:00
咔啡
阅读(3415)
推荐(0)
摘要:
java 客户端:zk 自带的 zkclient 及 Apache 开源的 Curator。
阅读全文
posted @ 2020-06-21 07:50
咔啡
阅读(139)
推荐(0)
摘要:
存根 一个有助于运行测试的虚拟对象。 在某些可以硬编码的条件下提供固定行为。 永远不会测试存根的任何其他行为。 例如,对于空堆栈,您可以创建一个只为 empty()方法返回 true 的存根。因此, 这并不关心堆栈中是否存在元素。 一个虚拟对象,其中最初设置了某些属性。 此对象的行为取决于 set
阅读全文
posted @ 2020-06-21 07:49
咔啡
阅读(106)
推荐(0)
摘要:
Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加 载,association 指的就是一对一,collection 指的就是一对多查询。在 Mybatis 配置文件中,可以配置是否启用延迟加载 lazyLoadingEnabled=true|fa
阅读全文
posted @ 2020-06-21 07:38
咔啡
阅读(771)
推荐(0)
摘要:
解答:索引数据的规划,应在前期做好规划,正所谓“设计先行,编码在后”, 这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户 检索或者其他业务受到影响。 如何调优,正如问题 1 所说,这里细化一下: 3.1 动态索引层面 基于模板+时间+rollover api 滚动创建索引,举例
阅读全文
posted @ 2020-06-20 19:43
咔啡
阅读(970)
推荐(0)
摘要:
Reactive Extensions 也称为 Rx。这是一种设计方法,我们通过调用多个服务来 收集结果,然后编译组合响应。这些调用可以是同步或异步,阻塞或非阻塞。Rx 是分布式系统中非常流行的工具,与传统流程相反。
阅读全文
posted @ 2020-06-20 19:28
咔啡
阅读(160)
推荐(0)
摘要:
Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不 同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放 数据而目录节点不行。 Zookeeper 为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这 种特性使得 Zookeeper 不能
阅读全文
posted @ 2020-06-20 19:25
咔啡
阅读(174)
推荐(0)
摘要:
1)一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就 将清空,默认打开一级缓存。 2)二级缓存与一级缓存其机制相同,默认也是采用 Perpe
阅读全文
posted @ 2020-06-20 19:04
咔啡
阅读(126)
推荐(0)
摘要:
客户端 SendThread 线程接收事件通知,交由 EventThread 线程回调 Watcher。 客户端的 Watcher 机制同样是一次性的,一旦被触发后,该 Watcher 就失效了。
阅读全文
posted @ 2020-06-20 19:02
咔啡
阅读(163)
推荐(0)
摘要:
容器是管理基于微服务的应用程序以便单独开发和部署它们的好方法。您可以将 微服务封装在容器映像及其依赖项中,然后可以使用它来滚动按需实例的微服务, 而无需任何额外的工作。
阅读全文
posted @ 2020-06-20 18:40
咔啡
阅读(232)
推荐(0)
摘要:
持续集成(CI)是每次团队成员提交版本控制更改时自动构建和测试代码的过程。 这鼓励开发人员通过在每个小任务完成后将更改合并到共享版本控制存储库来共 享代码和单元测试。
阅读全文
posted @ 2020-06-20 18:38
咔啡
阅读(355)
推荐(0)
摘要:
Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员 可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机 制,可以非常方便的构建一系列分布式应用中年都会涉及的核心功能,如: 1、数据发布/
阅读全文
posted @ 2020-06-20 17:57
咔啡
阅读(207)
推荐(0)
摘要:
Java 中的 Semaphore 是一种新的同步类,它是一个计数信号。从概念上讲,从 概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release()添加一个许可,从而可能释放一个 正在阻塞的获取者。但是,不使用实际的许可对象,
阅读全文
posted @ 2020-06-20 17:24
咔啡
阅读(334)
推荐(0)
摘要:
面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大 规模的索引设计、规划、调优。 解答: 如实结合自己的实践场景回答即可。 比如:ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日 递增 20+,索引:10 分片,每日递增 1 亿+数据, 每个通道每
阅读全文
posted @ 2020-06-20 17:15
咔啡
阅读(413)
推荐(0)
摘要:
Dubbo 框架在初始化和通信过程中使用了多种设计模式,可灵活控制类加载、权 限控制等功能。 工厂模式 Provider 在 export 服务时,会调用 ServiceConfig 的 export 方法。ServiceConfig 中有个字段: private static final Prot
阅读全文
posted @ 2020-06-20 17:08
咔啡
阅读(158)
推荐(0)
摘要:
早期的 Memcached 内存管理方式是通过 malloc 的分配的内存,使用完后通过 free 来回收内存,这种方式容易产生内存碎片,并降低操作系统对内存的管理效 率。加重操作系统内存管理器的负担,最坏的情况下,会导致操作系统比 memcached 进程本身还慢,为了解决这个问题,Slab Al
阅读全文
posted @ 2020-06-20 16:49
咔啡
阅读(170)
推荐(0)
摘要:
UGO(User/Group/Others) 目前在 Linux/Unix 文件系统中使用,也是使用最广泛的权限控制方式。是一种粗 粒度的文件系统权限控制模式。 ACL(Access Control List)访问控制列表 包括三个方面: 权限模式(Scheme) 1、IP:从 IP 地址粒度进行权
阅读全文
posted @ 2020-06-20 13:00
咔啡
阅读(803)
推荐(0)
摘要:
推荐使用 Zookeeper 作为注册中心,还有 Redis、Multicast、Simple 注册中心,但不推荐。
阅读全文
posted @ 2020-06-20 12:40
咔啡
阅读(464)
推荐(0)
摘要:
根据微服务架构在各方面的要素,看看 Spring Cloud 和 Dubbo 都提供了哪些支持。 Dubbo Spring Cloud 服务注册中心 Zookeep er Spring Cloud Netflix Eureka 服务调用方式 RPC REST API 服务网关 无 Spring Cl
阅读全文
posted @ 2020-06-20 12:39
咔啡
阅读(563)
推荐(0)
posted @ 2020-06-20 12:38
咔啡
阅读(302)
推荐(0)
摘要:
接口服务层(Service):该层与业务逻辑相关,根据 provider 和 consumer 的 业务设计对应的接口和实现 配置层(Config):对外配置接口,以 ServiceConfig 和 ReferenceConfig 为 中心 服务代理层(Proxy):服务接口透明代理,生成服务的客户
阅读全文
posted @ 2020-06-20 12:37
咔啡
阅读(324)
推荐(0)
摘要:
chubby 是 google 的,完全实现 paxos 算法,不开源。zookeeper 是 chubby的开源实现,使用 zab 协议,paxos 算法的变种。
阅读全文
posted @ 2020-06-20 12:08
咔啡
阅读(527)
推荐(0)
摘要:
集群容错方案 说明 Failover Cluster 失败自动切换,自动重试其它服务器(默认) Failfast Cluster 快速失败,立即报错,只发起一次调用 Failsafe Cluster 失败安全,出现异常时,直接忽略 Failback Cluster 失败自动恢复,记录失败请求,定时重
阅读全文
posted @ 2020-06-20 12:06
咔啡
阅读(457)
推荐(0)
摘要:
配置 配置说明 dubbo:service 服务配置 dubbo:reference 引用配置 dubbo:protocol 协议配置 dubbo:applicatio n 应用配置 dubbo:module 模块配置 dubbo:registry 注册中心配置 dubbo:monitor 监控中心
阅读全文
posted @ 2020-06-20 11:57
咔啡
阅读(170)
推荐(0)
摘要:
其实就是水平扩容了,Zookeeper 在这方面不太好。两种方式: 全部重启:关闭所有 Zookeeper 服务,修改配置之后启动。不影响之前客户端的 会话。 逐个重启:在过半存活即可用的原则下,一台机器重启不影响整个集群对外提供 服务。这是比较常用的方式。 3.5 版本开始支持动态扩容。
阅读全文
posted @ 2020-06-20 11:19
咔啡
阅读(161)
推荐(0)
摘要:
推荐使用 Hessian 序列化,还有 Duddo、FastJson、Java 自带序列化。
阅读全文
posted @ 2020-06-20 11:10
咔啡
阅读(229)
推荐(0)
摘要:
可以用版本号(version)过渡,多个不同版本的服务注册到注册中心,版本号不同的服务相互间不引用。这个和服务分组的概念有一点类似。
阅读全文
posted @ 2020-06-20 10:58
咔啡
阅读(216)
推荐(0)
摘要:
为了提高数据访问的速度。Dubbo 提供了声明式缓存,以减少用户加缓存的工作量 <dubbo:reference cache="true" /> 其实比普通的配置文件就多了一个标签 cache="true"
阅读全文
posted @ 2020-06-20 10:55
咔啡
阅读(456)
推荐(0)
摘要:
关于二进制最好的信息当然是二进制协议规范: 二进制协议尝试为端提供一个更有效的、可靠的协议,减少客户端/服务器端因处 理协议而产生的 CPU 时间。 根据 Facebook 的测试,解析 ASCII 协议是 memcached 中消耗 CPU 时间最多的 环节。所以,我们为什么不改进 ASCII 协
阅读全文
posted @ 2020-06-20 10:43
咔啡
阅读(302)
推荐(0)
摘要:
dubbo 服务发布之后,我们可以利用 telnet 命令进行调试、管理。 Dubbo2.0.5 以上版本服务提供端口支持 telnet 命令 连接服务 telnet localhost 20880 //键入回车进入 Dubbo 命令模式。 查看服务列表 dubbo>ls com.test.Test
阅读全文
posted @ 2020-06-20 10:39
咔啡
阅读(172)
推荐(0)
摘要:
JDK SPI JDK 标准的 SPI 会一次性加载所有的扩展实现,如果有的扩展吃实话很耗时,但 也没用上,很浪费资源。 所以只希望加载某个的实现,就不现实了 DUBBO SPI 1,对 Dubbo 进行扩展,不需要改动 Dubbo 的源码 2,延迟加载,可以一次只加载自己想要加载的扩展实现。 3,
阅读全文
posted @ 2020-06-20 10:26
咔啡
阅读(1247)
推荐(0)
摘要:
Dubbo 必须依赖 JDK,其他为可选。
阅读全文
posted @ 2020-06-20 10:22
咔啡
阅读(193)
推荐(0)
摘要:
解答:通俗解释一下就可以。 传统的我们的检索是通过文章,逐个遍历找到对应关键词的位置。 而倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典+映射表 即为倒排索引。 有了倒排索引,就能实现 o(1)时间复杂度的效率检索文章了,极大的提高了 检索效率。 学术的解答方式: 倒排索引,相反于一
阅读全文
posted @ 2020-06-20 10:21
咔啡
阅读(514)
推荐(0)
摘要:
Dubbox 是继 Dubbo 停止维护后,当当网基于 Dubbo 做的一个扩展项目,如 加了服务可 Restful 调用,更新了开源组件等。
阅读全文
posted @ 2020-06-20 10:20
咔啡
阅读(209)
推荐(0)
摘要:
别的还有 spring 的 spring cloud,facebook 的 thrift,twitter 的 finagle 等
阅读全文
posted @ 2020-06-20 10:18
咔啡
阅读(111)
推荐(0)