会员
商店
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
架构师,我的梦想
项目经理,我的最爱
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
20
下一页
2017年9月10日
自动化测试:behave
摘要: 在系统开发过程中,我们一般个人参与的开发都是局部的,自己负责的一部分与其它团队成员的成果组合在一起才能实现用户的完整行为。比如常见的电商系统就有几个主要的流程 商品搜索 购物车 订单 支付 物流 这些模块复杂的足以形成各自的团队,不同团队相互之间依据一定的接口来配合协作。在开发阶段可以基于接口各自独
阅读全文
posted @ 2017-09-10 10:55 min.jiang
阅读(5876)
评论(0)
推荐(0)
编辑
2017年8月6日
dubbo源码分析(二):超时原理以及应用场景
摘要: 本篇主要记录dubbo中关于超时的常见问题,实现原理,解决的问题以及如何在服务降级中体现作用等。 超时问题 为了检查对dubbo超时的理解,尝试回答如下几个问题,如果回答不上来或者不确定那么说明此处需要再多研究研究。 我只是针对个人的理解提问题,并不代表我理解的就是全面深入的,但我的问题如果也回答不
阅读全文
posted @ 2017-08-06 02:16 min.jiang
阅读(17575)
评论(3)
推荐(7)
编辑
2017年7月2日
简单RPC框架-业务线程池
摘要: Netty 线程模型 Netty的线程模型主要是基于React,因为考虑到应用场景的不同所以演化出多种版本。 单线程模式 即接收服务请求以及执行IO操作都由一个线程来完成,由于采用的是IO多路复用这类无阻塞IO操作,所以在请求量不大的情况下单线程模式也是可以解决一部分场景问题的。 单接收多工作线程模
阅读全文
posted @ 2017-07-02 19:15 min.jiang
阅读(6574)
评论(0)
推荐(1)
编辑
2017年5月22日
简单RPC框架-基于Consul的服务注册与发现
摘要: 一般我们常见的RPC框架都包含如下三个部分: 注册中心,用于服务端注册远程服务以及客户端发现服务 服务端,对外提供后台服务,将自己的服务信息注册到注册中心 客户端,从注册中心获取远程服务的注册信息,然后进行远程过程调用 上面提到的注册中心其实属于服务治理,即使没有注册中心,RPC的功能也是完整的。之
阅读全文
posted @ 2017-05-22 23:58 min.jiang
阅读(22225)
评论(2)
推荐(1)
编辑
2017年5月16日
简易RPC框架-学习使用
摘要: 基于netty4,protostuff的出于学习目的的RPC框架,后续会完善功能。 背景 做微服务有不短时间了,单纯RPC框架呢生产环境上之前主要使用dubbo,出于学习了解过Spring Cloud以及其它的比如Finagle,grpc,thrift。看过dubbo部分源码,了解过RPC的基本原理
阅读全文
posted @ 2017-05-16 00:53 min.jiang
阅读(9200)
评论(3)
推荐(2)
编辑
2017年4月23日
统一配置中心2
摘要: 统一配置中心方案 统一配置中心1中记录了我之前项目中如何处理多系统中的配置问题,对于统一配置中心组件一般分为两种做法: 自建 它的好外与缺点都非常明确。 好处 设计以及代码实现都由自己把控,可形成自己的知识积累 设计可以足够简化,无需考虑过多场景 能够快速适应项目的需求,无需考虑开源的是否支持 缺点
阅读全文
posted @ 2017-04-23 12:15 min.jiang
阅读(3887)
评论(0)
推荐(0)
编辑
2017年4月14日
dubbo+zipkin调用链监控
摘要: 分布式环境下,对于线上出现问题往往比单体应用要复杂的多,原因是前端的一个请求可能对应后端多个系统的多个请求,错综复杂。 对于快速问题定位,我们一般希望是这样的: 从下到下关键节点的日志,入参,出差,异常等。 关键节点的响应时间 关键节点依赖关系 而这些需求原来在单体应用中可以比较容易实现,但到了分布
阅读全文
posted @ 2017-04-14 17:27 min.jiang
阅读(24029)
评论(6)
推荐(1)
编辑
2017年3月6日
Spring Cache扩展:注解失效时间+主动刷新缓存
摘要: Spring Cache 两个需求 缓存失效时间支持在方法的注解上指定 Spring Cache默认是不支持在@Cacheable上添加过期时间的,可以在配置缓存容器时统一指定: @Bean public CacheManager cacheManager( @SuppressWarnings("r
阅读全文
posted @ 2017-03-06 19:29 min.jiang
阅读(58339)
评论(5)
推荐(6)
编辑
2017年3月3日
转:深入理解Java G1垃圾收集器
摘要: 本文首先简单介绍了垃圾收集的常见方式,然后再分析了G1收集器的收集原理,相比其他垃圾收集器的优势,最后给出了一些调优实践。 一,什么是垃圾回收 首先,在了解G1之前,我们需要清楚的知道,垃圾回收是什么?简单的说垃圾回收就是回收内存中不再使用的对象。 垃圾回收的基本步骤 回收的步骤有2步: 1,查找内
阅读全文
posted @ 2017-03-03 14:15 min.jiang
阅读(29371)
评论(0)
推荐(3)
编辑
2017年3月2日
dubbo源码分析(一)
摘要: 阅读源码的作用 提取设计思路,增强设计能力 理解运行机制,便于快速解决问题以及功能扩展 常见有关dubbo的问题 dubbo的负载均衡是在哪个组件中处理的? dubbo默认的负载均衡算法是什么? 如果注册中心挂掉了客户端是否能够继续调用dubbo? 一个请求从调用端到服务端的处理流程是什么? 如果你
阅读全文
posted @ 2017-03-02 19:53 min.jiang
阅读(28001)
评论(0)
推荐(1)
编辑
2017年2月25日
理解WEB API网关
摘要: 隐藏细节 现实生活中有很多隐藏细节的案例,比如我们平时用的电脑,当我们按电源按钮后电脑就自动开始启动了,对用户来讲很简单只需要知道按按钮就行。但电脑内部的工作原理其实是很复杂的一个流程,这里不多说。 如果不隐藏细节会怎样? 我想可能的结果就是电脑只能是特别特别的专业人员才能操作,永远无法像现在一样成
阅读全文
posted @ 2017-02-25 19:27 min.jiang
阅读(8382)
评论(2)
推荐(4)
编辑
2017年2月20日
理解zookeeper选举机制
摘要: zookeeper集群 配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的。 这篇主要分析leader的选择机制,zookeeper提供了三种方式: Leade
阅读全文
posted @ 2017-02-20 21:35 min.jiang
阅读(66930)
评论(20)
推荐(14)
编辑
2017年2月18日
从头开始搭建一个Spring boot+RabbitMQ环境
摘要: 消息队列在目前分布式系统下具备非常重要的地位,如下的场景是比较适合消息队列的: 跨系统的调用,异步性质的调用最佳。 高并发问题,利用队列串行特点。 订阅模式,数据被未知数量的消费者订阅,比如某种数据的变更会影响多个系统的数据,订单数据就是比较好理解的。 之前有一个场景是商品数据在修改后需要推送到el
阅读全文
posted @ 2017-02-18 21:23 min.jiang
阅读(37343)
评论(1)
推荐(3)
编辑
2017年2月15日
理解redis高可用方案
摘要: 理解并从头搭建redis集群 部分开发人员工作当中只是在应用中使用redis,比如用来做数据结果的缓存。而且现在有很多不错的redis客户端工具(redisson),基本上可以不用关注redis命令就可以完成相当部分的功能。所以可能会对如下这些问题关注点不够: 如何容灾?即某个redis节点出了问题
阅读全文
posted @ 2017-02-15 12:21 min.jiang
阅读(2819)
评论(1)
推荐(8)
编辑
2017年2月12日
理解volatile
摘要: 理解volatile 平时工作中对于多线程的应用并不太多,但是不能说工作中不应用就可以对此不去了解,至少要做的知道有这么个东西,主要是作什么的,这样有助于看其它人写的代码。提到这个volatile,一般都会想到并发,同步,锁之类,但要想搞清楚需要看看下面一些知识。 处理器,高速缓存,主内存之间的关系
阅读全文
posted @ 2017-02-12 17:56 min.jiang
阅读(901)
评论(2)
推荐(1)
编辑
上一页
1
2
3
4
5
6
···
20
下一页