最全最简单的dubbo教程-配置的覆盖关系《七》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85049938 一种场景,如果一个属性比如超时时间的设置很多地方都有设置,到底按哪一个来呢? 这是官网给出的解释: 这里是官网给出的覆盖关系的图: 从图中可以看出方法级的在最上边,接口级的次之,全局配置的是最后,而且同级别的情况下,消费者的优先级大于服务提供者。 这里是个人给出的总结: (1)精确优先 (2)就近优先(消费者优先) 首先(
分类: 其他 发布时间: 01-28 23:34 阅读次数: 0

最全最简单的dubbo教程-启动时检查《八》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85070784 启动时检查作用 这里是官网给出的说明: 启动时检查分为两个方面,一个是服务注册订阅检查另一个是判断是否有服务提供者,默认都为ture,意思就是服务启动的时候如果没有成功注册订阅,或者服务消费者启动的时候找不到对应的服务器提供者,就会报错阻止项目的启动。官网说了,可以设置为false,意思就是可以想让项目启动起来,发现服务未
分类: 其他 发布时间: 01-28 23:33 阅读次数: 0

最全最简单的dubbo教程-多版本《九》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85071721 多版本作用 多版本主要过渡的时候用,实现灰度发布的一个手段。这里官网给出的解释: 多版本实测 新建多个实体类 这里我给接口做了两个实现类,一个是DefaultServiceImpl,一个是DefaultServiceImpl2: 服务提供者配置 服务消费者配置 配置一 访问结果 配置二 访问结果 当然可以加多少个版本都可以
分类: 其他 发布时间: 01-28 23:33 阅读次数: 0

最全最简单的dubbo教程-直连提供者《十》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85073992 简介 感觉官网说的挺详细的,但是在开发中还是蛮重要的,所以我再提一下,官网给出了三种直连方案,通过 -D 参数指定,通过文件映射,通过 XML 配置,如图: 具体配置方法 通过 -D 参数指定(推荐) 就是项目启动时候设置直连的服务提供者,如图: 通过文件映射(推荐) 服务很多的情况下,可以用文件映射的形式,dubbo2.
分类: 其他 发布时间: 01-28 23:33 阅读次数: 0

最全最简单的dubbo教程-负载均衡策略《十一》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85075572 官网说的也挺详细的,这里dubbo提供了四种负载均衡策略: random(随机), roundRobin(轮询), leastActive(最少活跃调用数), consistentHash (一致性 Hash)。默认为随机模式。 随机 这是默认的,顾名思义,就是按权重随机访问。 轮询 按权重轮询访问 最少活跃调用数 这里越
分类: 其他 发布时间: 01-28 23:33 阅读次数: 0

最全最简单的dubbo教程-本地存根《十二》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85338243 业务场景 远程调用后,有时候服务的提供方也想在服务的消费方执行一些比如,提前验证一些参数,不符合要求的情况下制造一些容错数据返回给用户,避免不必要的远程调用对系统资源的消耗。那么本地存根就是解决这个问题的。 配置方法 定义一个本地存根 该存根必须实现共同的接口,且个人建议放在共同依赖接口定义的位置如图: 我在代码的11行的
分类: 其他 发布时间: 01-28 23:32 阅读次数: 0

最全最简单的dubbo教程-服务降级《十三》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85338676 业务背景 从网上拷贝来的,当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。这个时候可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。 降级策略 服务降级策略分为两种,一种是mock=force:
分类: 其他 发布时间: 01-28 23:32 阅读次数: 0

最全最简单的dubbo教程-集群容错《十四》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85628086 在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。 dubbo提供了以下几种集群容错模式: Failover Cluster 官方解释: 失败自动切换,当出现失败,重试其它服务器 。通常用于读操作,但重试会带来更长延迟。可通过 retries=“2” 来设置重试次数(不含第一次)。 解释说明
分类: 其他 发布时间: 01-28 23:32 阅读次数: 0

最全最简单的dubbo教程-标签解析原理《十五》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85698115 本文主要分析 XML 配置的实现原理和源码。 dubbo解析xml的配置的方式主要是通过spring提供的解析工具解析,dubbo自定义DubboNamespaceHandler 类这个类继承spring提供的NamespaceHandlerSupport类,如图: 这个类在spring启动的时候会调用init方法为每一种
分类: 其他 发布时间: 01-28 23:31 阅读次数: 0

最全最简单的dubbo教程-服务暴露过程《十六》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85713716 服务暴露的总流程 首先将服务的实现封装成一个Invoker,Invoker中封装了服务的实现类。 将Invoker封装成Exporter,并缓存起来,缓存里使用Invoker的url作为key,然后注册到注册中心。 服务端Server启动,监听端口,等待调用。(请求来到时,根据请求信息生成key,到缓存查找Exporter
分类: 其他 发布时间: 01-28 23:31 阅读次数: 0

最全最简单的dubbo教程-服务引入《十七》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85990523 服务引入总流程 创建client客户端,用来连接请求服务消费者。 封装invoker,里面主要包含请求的客户端,服务端地址端口,请求的类以及方法。 服务引入详细流程 在ReferenceBean->getObject()->init()中会调用createProxy()方法用来创建代理对象。 在createProxy()中
分类: 其他 发布时间: 01-28 23:31 阅读次数: 0

最全最简单的dubbo教程-服务调用原理《十八》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/86022541 简单介绍 如果前面都理解的话,并且netty的demo做过的话,这步就很好理解了,主要就是客户端请求服务器的一个过程。下面是官网提供的一个图,用来解释他的调用过程: 从上面的图可以看出代理对象proxy产生之后,如果不做cache(缓存),mock(本地伪装)的话,并且有多个invoker的情况下换根据负载均衡机制选择一个
分类: 其他 发布时间: 01-28 23:31 阅读次数: 0

最全最简单的dubbo教程-实现个简单的RPC《十九》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/86507330 项目案例的结构 服务器端业务处理类 //服务器端业务处理类 public class InvokeHandler extends ChannelInboundHandlerAdapter { //得到某接口下某个实现类的名字 private String getImplClassName(ClassInfo
分类: 其他 发布时间: 01-28 23:30 阅读次数: 0

Ubuntu:基于Anaconda安装Tensorflow(cpu版本)

安装环境:Ubuntu 16.04LTS 一、安装Anaconda 1.下载 到官网https://www.anaconda.com.download/,根据系统下载相应版本的anaconda 可以通过该链接下载:https://repo.anaconda.com/archive/Anaconda3-5.1.0-Linux-x86_64.sh 2.进入下载目录,打开终端,根据版本输入安装命令: bash Anaconda3-5.1.0-Linux-x86_64.sh 3.安装过程,一直回车即可
分类: 其他 发布时间: 01-28 23:30 阅读次数: 0

windows安装xgboost(填坑)

尝试了该博客下的教程自己编译安装,一步步下来没有任何问题,全部执行完毕,当import的时候出现如下错误:winError 127。 尝试了各种,比如:下载vcomp140.dll,下载libgomp-1.dll,放在相应的C:\Windows\System32的路径下,但是还是报错。 最后黄天不负有心人,终于找到了解决方案,完美了解决了xgboost的安装问题。 这就在该链接下的教程,简单翻译步骤如下: 请按照这些说明准备XGBoost以便与Python一起使用。 我将xgboost放在一个
分类: 其他 发布时间: 01-28 23:30 阅读次数: 0

文本相似度-bm25算法原理及实现

原理 BM25算法,通常用来作搜索相关性平分。一句话概况其主要思想:对Query进行语素解析,生成语素qi;然后,对于每个搜索结果D,计算每个语素qi与D的相关性得分,最后,将qi相对于D的相关性得分进行加权求和,从而得到Query与D的相关性得分。 BM25算法的一般性公式如下: 其中,Q表示Query,qi表示Q解析之后的一个语素(对中文而言,我们可以把对Query的分词作为语素分析,每个词看成语素qi。);d表示一个搜索结果文档;Wi表示语素qi的权重;R(qi,d)表示语素qi与文档d
分类: 其他 发布时间: 01-28 23:29 阅读次数: 0

Java 如何确定线程池的大小

线程池的数量=cpu的数量 * cpu的使用率* (1 + 等待时间/计算时间)
分类: 其他 发布时间: 01-28 23:29 阅读次数: 0

js跳转到新的页面打开

self.location.href=”http://www.baidu.com”; //本页面打开 window.location.href=”http://www.baidu.com”; //本页面打开 window.open(“http://www.baidu.com“);//在新的窗口打开页面
分类: 其他 发布时间: 01-28 23:28 阅读次数: 0

js with() 用法

var a = 123; var b = { a : 321}; with(b){ a = 456; console.log(a); // 321 }; alert(a); var a = 123; var b = {}; //这里去掉b中的a属性 with(b){ console.log(a); // 123 }; var url = 123; with(location){ var qs = search.substring(1); var hostName = hostname; var
分类: 其他 发布时间: 01-28 23:28 阅读次数: 0

java中的finalize() 方法解析

public class CanReliveObj { public static CanReliveObj obj; protected void finalize() { System.out.println(“fialize “); try { super.finalize(); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(“obj
分类: 其他 发布时间: 01-28 23:28 阅读次数: 0