- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 设计细节-----适配粒度权限设计
不积跬步无以至千里,在这里,总结一下自己最近的工作积累。前言:CRM&OA类系统的设计负责度往往是在业务上,而业务上的复杂度,通常是由不同用户在不同业务场景下的各种可操作性决定的。就是说理清了系统用户在不同场景下的操作权限,业务脉络就很清晰了。记录下,针对最近做的一套管理系统的权限设计方案,复杂性体现在下面的描述当中:1.这里说的权限是指数据权限以及数据特权,并非菜单权限。2.默认数据权限...
2018-06-30 16:02:58 545
原创 dubbo源码分析之provider启动流程分析
前置概念:容器(来自百度百科):Spring 提供容器功能,容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。...
2018-06-18 15:24:37 524
转载 TCP/IP协议与Http协议的区别
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己...
2018-06-17 22:25:34 478
原创 dubbo源码分析之getExtension
官方解读:返回指定名字的扩展。如果指定名字的扩展不存在,则抛异常 {@link IllegalStateException}.我理解的此类主要用作adaptive自动适配的时候,根据url的type获取实现的扩展点。getExtension方法的主要思路是-->.从cachedInstances缓存中获取,有则返回-->缓存中没有则调用 createExtension(name);--...
2018-06-17 12:52:48 472
原创 dubbo源码分析之getAdaptiveExtension
得到spi接口的适配类核心实现方法是createAdaptiveExtension(),当前对象缓存cachedAdaptiveInstance中没有实例时,调用 -->createAdaptiveExtension()-->(T) getAdaptiveExtensionClass().newInstance() 得到该类型的适配实例 -->getExtensionClasse...
2018-06-17 12:51:17 704
原创 分布式缓存管理系统测试
前置内容:https://blog.csdn.net/yangxiaobo118/article/details/80716709资源地址:https://download.csdn.net/download/yangxiaobo118/10482990测试内容一. 测试前准备110.109.104三台linux服务器启动zookeeper集群启动activitymq集群当前master为109启...
2018-06-17 09:40:16 1047
原创 大数据缓存管理系统设计与实现
大数据缓存管理系统系统介绍:系统结构:此套系统为分布式系统业务处理系统: 数据支持系统: 系统采用的技术:zookeeper,memcached,activitymq消息中间件,webservice,springmvc,mybatis,boostrap设计思路:这套解决方案做了对memcached的集群,以及一致性hash解决数据冗余,对高并发提供了支持;通过zookeeper对activitym...
2018-06-17 09:15:13 4446
转载 dubbo调用链/过滤器链的创建分析
前言使用Dubbo时,当调用方法,会通过过滤器对调用进行一些处理。例如超时记录(TimeoutFilter),异常(ExceptionFilter),token(TokenFilter)等处理。这个功能的实现是通过Dubbo内置的Filter或用户自定义的Filter来创建调用链完成。当发起方法调用时,会执行调用链各个结点的方法,以完成一些处理工作。调用链/过滤器链的创建分析调用链的构建是通过下面...
2018-06-16 23:23:05 1038
转载 BeanNameAware接口和BeanFactoryAware接口
迄今为止,所接触到的Bean都是“无知觉”的,就像黑客帝国中机械工厂里面“养殖”的人类,他们虽然能完成一定的功能,但是根本不知道自己在工厂(BeanFactory)中的代号(id),或者自己是在哪个工厂(BeanFactory的引用)中沉睡。所以,本节的目的就是要创造出一个尼奥一样的Bean,让他知道自己在工厂中的id和自己原来躺在哪个工厂中。这里,称之为,Bean对Spring有知觉。但是有言在...
2018-06-16 09:09:41 527
转载 ApplicationContextAware接口的作用
在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的依赖注入即可。但在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借...
2018-06-16 09:04:52 244
转载 springmvc工作原理以及源码分析(基于spring3.1.0)
springmvc是一个基于spring的web框架.本篇文章对它的工作原理以及源码进行深入分析. 一、springmvc请求处理流程 二、springmvc的工作机制 三、springmvc核心源码分析 四、谈谈springmvc的优化一、springmvc请求处理流程 引用spring in action上的一张图来说明了springmvc的核心组件和请求处理流程: ...
2018-06-15 23:23:22 326
转载 Dubbo扩展机制:ExtensionLoader
一、前言 Dubbo的ExtensionLoader是实现“微内核+插件式”的重要组件,它基于java spi机制却又提供了如下扩展:jdk spi仅仅通过接口类名获取所有实现,而ExtensionLoader则通过接口类名和key值获取一个实现Adaptive实现,就是生成一个代理类,这样就可以根据实际调用时的一些参数动态决定要调用的类了自动包装实现,这种实现的类一般是自动激活的,常用于...
2018-06-14 18:37:42 2706
转载 自定义Spring配置标签
引言:在Sping中,一般使用<bean>这样的元素来配置一个bean,Spring在创建容器的时候会扫描这些配置,根据配置创建对象存放于容器中,然后我们再从容器中取出,或者在配置其他bean的时候作为属性注入。使用bean配置的一个限制是我们必须遵循配置文件的XML Schema定义,这在大多数情况下不会出现问题。但是在一些情况下,我们希望实现更为灵活的bean配置。Spring为此...
2018-06-14 17:34:11 329
转载 dubbo的IOC机制
转自:https://blog.csdn.net/qq_25235807当@Adaptive注解没有注解在扩展点实现类上,而是在扩展点实现类的方法上的时候则会生成一个<扩展点接口名>$Adpative的代理类。 private Class<?> createAdaptiveExtensionClass() { String code = createAdapt...
2018-06-14 16:41:39 766
转载 RPC协议底层原理与实现
RPC协议基本组成在一个典型RPC的使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中RPC协议就指明了程序如何进行网络传输和序列化 。也就是说一个RPC协议的实现就等于一个非透明的RPC调用,如何做到的的呢?Client 客户端Server 服务端协议基本组成: 1. 地址:服务提供者地址;2. 端口:协议指定开放的端口;3. 运行服务:1. netty(...
2018-06-13 13:52:35 4597
转载 dubbo通信协议之对比
对dubbo的协议的学习,可以知道目前主流RPC通信大概是什么情况,本文参考dubbo官方文档http://dubbo.incubator.apache.org/books/dubbo-user-book/http://dubbo.incubator.apache.org/books/dubbo-admin-book/dubbo共支持如下几种通信协议:dubbo://rmi://hessian:/...
2018-06-13 00:39:32 302
转载 Spring容器初始化过程都做了哪些事儿
1.ClassPathXmlApplicationContext为入口构造方法中有个refresh()方法用来初始化Spring refresh运行的大致流程: ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();—-2 invokeBeanFactoryPostProcessors(beanFactory)...
2018-06-12 23:39:21 855
转载 dubbo官网文档+一点笔记
总体介绍分层 左边是“服务消费者”使用的接口和类,右边是“服务提供者”使用的接口和类,在中间的是双方都用到的接口和类。 总体分成Business层,RPC层,Remoting层其中,1)Business层是平时写的业务逻辑的接口和实现类;2)RPC层是这次的重点:里面又分: A)config配置层:使用这一层提供的@注解,xml配置等方法来 暴露写好的接口实现类成服务 和 ...
2018-06-12 23:26:07 517
转载 Dubbo源码分析系列---扩展点加载
Dubbo源码分析系列---扩展点加载阅读目录扩展点配置:扩展点自动包装:扩展点自动装配:扩展点自适应回到顶部扩展点配置:约定:在扩展类的jar包内,放置扩展点配置文件:META-INF/dubbo/接口全限定名,内容为:配置名=扩展实现类全限定名,多个实现类用换行符分隔。(摘自dubbo文档)示例:假如我现在想使用自己定义的协议Myprotocol,在resources目录下新建META-INF...
2018-06-12 23:15:03 306
转载 Kubernetes权威指南学习笔记(一)
概念Kubernetes是谷歌严格保密十几年的秘密武器——Borg的一个开源版本,是Docker分布式系统解决方案。名词Borg Borg是谷歌内部使用的大规模集群管理系统,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化;Endpoint(IP+Port) 标识服务进程的访问点;Master 集群控制节点,负责整个集群的管理和控制,基本上Kubernetes所有的...
2018-06-12 13:08:37 875
转载 如何更好地学习dubbo源代码
Dubbo的官方首页在这里:http://code.alibabatech.com/wiki/display/dubbo/Home很荣幸,作为这样一款业界使用率和好评率出众的RPC框架的维护者,今天这个文章主要是想帮助那些热爱开源的同学,更好的来研究dubbo的源代码。一、Dubbo整体架构1、Dubbo与Spring的整合Dubbo在使用上可以做到非常简单,不管是Provider还是Consum...
2018-06-12 12:00:37 269
转载 精通Dubbo——dubbo2.0源码中的设计模式与SPI介绍
Dubbo源码包介绍当我们从github把Dubbo源码下载下来之后有如下源码包 下面来说明每个包的作用,以便我们有目的的阅读代码 dubbo-admin dubbo管理平台源码包,用来管理dubbo服务的启动、禁用、降权、接口测试等,操作界面如下 dubbo-cluster 集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由...
2018-06-12 11:59:37 310
转载 学习kubernetes中遇见的一些坑
一、权限问题通过rc配置文件起pod,rc中配置了privileged为true,发现pod状态一直Running不起来,查看pod详情发现 [root@docker tmp]# kubectl describe pods nfs-rc-acbo1 Name: nfs-rc-acbo1 Namespace: default Node: dun...
2018-06-09 13:57:31 813
转载 Markdown数学符号&公式
符号代码描述∑∑$\sum$求和公式∑ni=0∑i=0n$\sum_{i=0}^n$求和上下标y={xαy={xα$$y =\begin{cases} x\\ \alpha \end{cases}$$大括号××$\times$乘号±±$\pm$正负号÷÷$\div$除号∣∣$\mid$竖线⋅⋅$\cdot$点∘∘$\circ$圈∗∗$\ast $星号⨂⨂$\bigotimes$克罗内克积⨁⨁$\b...
2018-06-04 23:13:18 6932
大数据缓存处理
2018-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人