#ou

spring cloud 学习(10)

对绝大多数程序员而言,写接口文档是一件痛苦的事情,相对文档,他们更愿意写代码。最理想的情况就是:代码即文档!服务开发完成后,部署上去文档就自动生成,没错,这就是springfox+swagger要解决的问题!swagger号称THEWORLD'SMOSTPOPULARAPITOOLING。但swagger默认情况下,仍...
代码星球 ·2020-04-06

spring cloud 学习(9)

turbine是啥就不多解释了,初次接触的可以移步springcloud学习(4)-hystrix服务熔断处理拉到最后看一下,turbinestream默认情况下启动成功后,eureka的注册列表里,看不到该服务。这其实是turbine的一个bug,详情见:https://github.com/spring-clou...
代码星球 ·2020-04-06

spring cloud 学习(8)

业务复杂的微服务架构中,往往服务之间的调用关系比较难梳理,一次http请求中,可能涉及到多个服务的调用(eg:serviceA->serviceB->serviceC...),如果想分析各服务间的调用关系,以及各服务的响应耗时,找出有性能瓶颈的服务,这时zipkin就派上用场,它是Twitter公司开源的一...
代码星球 ·2020-04-06

@Transactional导致AbstractRoutingDataSource动态数据源无法切换的解决办法

上午花了大半天排查一个多数据源主从切换的问题,记录一下:背景:项目的数据库采用了读写分离多数据源,采用AOP进行拦截,利用ThreadLocal及AbstractRoutingDataSource进行数据源切换,数据源代码如下:publicclassRoutingDataSourceextendsAbstractRou...

spring cloud 学习(7)

业务繁忙的系统,原则上是不允许停机的,那么问题来了,如果真有严重的bug要修复,不得不发布,怎么做到不停机发布,对业务无感知呢?eureka提供了一系列resturl,可以对注册实例进行操作,比如:将服务离线/上线,注册/注销,动态修改meta元数据等,详情见本文最后的参考wiki。 不停机发布的思路:通常s...
代码星球 ·2020-04-06

spring cloud 学习(6)

微服务架构体系中,通常一个业务系统会有很多的微服务,比如:OrderService、ProductService、UserService...,为了让调用更简单,一般会在这些服务前端再封装一层,类似下面这样:前面这一层俗称为“网关层”,其存在意义在于,将"1对N"问题转换成了"1对1&rdquo...
代码星球 ·2020-04-06

spring cloud 学习(5)

 分布式环境下的统一配置框架,已经有不少了,比如百度的disconf,阿里的diamand。今天来看下springcloud对应的解决方案:如上图,从架构上就可以看出与disconf之类的有很大不同,主要区别在于:配置的存储方式不同disconf是把配置信息保存在mysql、zookeeper中,而sprin...
代码星球 ·2020-04-06

spring cloud 学习(4)

hystrix是一个专用于服务熔断处理的开源项目,当依赖的服务方出现故障不可用时,hystrix有一个所谓的断路器,一但打开,就会直接拦截掉对故障服务的调用,从而防止故障进一步扩大(类似中电路中的跳闸,保护家用电器)。使用步骤:(仍然在之前的示例代码上加以改造)一、添加hystrix依赖compile'org.spri...
代码星球 ·2020-04-06

spring cloud 学习(3)

feign 是一个让rest服务调用更简洁的开源项目,很多介绍文章或书也称它为声明式REST调用。传统的webservice中,通过引用wsdl来自动生成一些client的代理类(或stub代码),feign跟这个有点类似,但是更灵活。先回顾一下,上节中service-consumer对服务的调用代码:1@G...
代码星球 ·2020-04-06

spring cloud 学习(2)

接上节继续,注册中心单点肯定是不牢靠的,可以参考下面的方案做成注册中心集群:弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可。为了方便在本机弄出这种效果,我们先修改下host文件127.0.0.1 localhostserver1server2server3相当于给本机ip绑了3个h...
代码星球 ·2020-04-06

spring cloud 学习(1)

有过dubbo/dubbox使用经验的朋友,看到下面这张图,一定很熟悉,就是SOA架构的最基本套路。与dubbo对比,上图的3大要素中,springcloud是借助以下组件来实现的:1、注册中心:springcloud默认使用eurekaserver来做注册中心,而dubbo默认使用的是zookeeper。eureka...
代码星球 ·2020-04-06

tomcat 8.5.9.0 解决catalina.out过大的问题

先吐嘈一下tomcat这个项目,日志切割这么常见的功能,tomcat这种知名开源项目默认居然不开启,生产环境跑不了几天,磁盘就满了,而且很多网上流传的方法,比如修改conf/logging.properties文件,将级别设置成OFF,我试了好象并不管用(tomcat8.5.9.0版本+centos6.5+jdk1.8...

thrift中的超时(timeout)坑

最近在项目中采用thrift作为后台服务rpc框架,总体用下来性能还不错,跨语言特性使用起来也还行,但是也遇到了一些坑,其中之一就是超时问题(timeout),如果服务端些的某些业务场景耗时较长,thriftclient几乎毫无意外的会遇到:Readtimedout,当然解决办法也很容易,thriftclient端手动...
代码星球 ·2020-04-06

linux:nohup 不生成 nohup.out的方法

nohupjava-jar/xxx/xxx/xxx.jar>/dev/null2>&1& 关键在于最后的>/dev/null2>&1部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海>/dev/nu...

vue-router 的原理

1.hash修改的时候:history.pushState('名字',null,'/xxx')||location.hash='/xxx'回退的时候:window.addEventListener('statepop'||'hashchange') 2.history修改的时候:history.pushSta...
代码星球 ·2020-04-06
首页上一页...281282283284285...下一页尾页