系统架构
懒惰的毛毛虫
这个作者很懒,什么都没留下…
展开
-
Maven+SpringMVC+Dubbo 简单的入门demo配置
该demo是基于maven搭建的,项目架构基于SpringMVC,这里忽略spring的基本配置,着重介绍下dubbo部分的配置,以及dubbo后台管理系统一、软件环境 1、zookeeper 下载地址:https://zookeeper.apache.org/releases.html 下载最新版的zookeeper,我这里使用的版本是 zookeeper-3.4.8(当前最新版转载 2017-06-24 19:37:18 · 553 阅读 · 0 评论 -
AtomicStampedReference解决ABA问题
在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:现有一个用单向链表实现的堆栈,栈顶为A,这时线程T1已经知道A.next为...转载 2018-10-20 09:23:14 · 1183 阅读 · 0 评论 -
Spring.profile实现开发、测试和生产环境的配置和切换
软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等。为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spring的profile功能来进行配置参数的切换。以我用到的项目的实际情况为例,首先可以在resources文件夹下分别为每个环境建立单独的文件夹(也可以额外建立一个common文件夹,用于存放公共的...转载 2018-10-26 10:43:21 · 584 阅读 · 0 评论 -
深入浅出一致性Hash原理
一、前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用...转载 2018-12-03 09:59:21 · 622 阅读 · 0 评论 -
分布式事务之-tcc-transaction(Dubbo版)
一、背景有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了能够快速迭代上线,往往不太注重产品/项目/系统的高可靠性、高性能与高扩展性,采用单体应用和单实例数据库的架构方式快速迭代开发;当产品/项目/系统做到一定规模的时候,原有的系统架构则不足以支撑义务发展需要,往往相同的业务则需要重复写很多次,导致代码大量冗余,难以维护和扩展,这时不得不对原有产品/项目/系统进行拆分,引入分布式的系统...原创 2018-12-20 10:22:57 · 3919 阅读 · 3 评论 -
tcc-transaction 分布式事务-完整代码实现
1、说明 这里给出完整实现代码,关于使用方法具体介绍请参考上一篇博文: 分布式事务之-tcc-transaction(Dubbo版):https://blog.csdn.net/u013278314/article/details/851123142、系统介绍 实现一个订单、红包的分布式系统,在生成订单的时候,调用红包服务,同时保持数据到红包...原创 2018-12-20 10:46:36 · 9600 阅读 · 8 评论 -
自定义注解实现 查询redis缓存
一、注解的基础1.注解的定义:Java文件叫做Annotation,用@interface表示。2.元注解:@interface上面按需要注解上一些东西,包括@Retention、@Target、@Document、@Inherited四种。3.注解的保留策略: @Retention(RetentionPolicy.SOURCE) // 注解仅存在于源码中,在class字节码...原创 2018-12-20 16:31:35 · 1655 阅读 · 1 评论 -
使用Docker部署MySQL(数据持久化)
原文链接:http://walterinsh.github.io/2015/01/17/use-mysql-with-docker.html 本文简述如何使用Docker部署mysql,同时持久化数据.我们会用到tutum-docker-mysql 这个项目来搭建一个mysql,省去重...转载 2018-12-28 19:46:24 · 2638 阅读 · 0 评论 -
Spring后置处理器之-BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor
BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的参考博客:Spring后置处理器之-BeanPostProcessorBeanFactoryPostProcessor是什么:beanFactory的后置处理器; *    &转载 2019-01-09 17:08:09 · 1164 阅读 · 0 评论 -
基于redis 实现布隆过滤器
简介Redis中有一个数据结构叫做Bitmap(下方有官网详解),它提供一个最大长度为512MB(2^32)的位数组。我们可以把它提供给布隆过滤器做位数组。根据《数学之美》中给出的数据,在使用8个哈希函数的情况下,512MB大小的位数组在误报率万分之五的情况下可以对约两亿的url去重。而若单纯的使用set()去重的话,以一个url64个字节记,两亿url约需要128GB的内存空间,不敢想象...原创 2018-10-12 15:23:41 · 4039 阅读 · 1 评论 -
设置cas sso单点登录地址从properties读取
查看单点登录源码发现,casServerLoginUrl地址 会先从 FilterConfig 中获取,也就是全局配置文件中获取,当然我们也可以在web.xml中用<param-name>casServerLoginUrl</param-name><param-value>http://127.0.0.1:8080/cas/login<...原创 2018-09-27 14:45:53 · 3235 阅读 · 2 评论 -
spring整合rocketMq使用(完整代码,适合小白)
pom.xml:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd...原创 2018-09-07 15:21:48 · 14176 阅读 · 4 评论 -
spring 整合activeMQ
环境准备工具 JDK1.6或1.7 Spring4.1.0 ActiveMQ5.11.1 Tomcat7.x 目录结构 所需jar包项目的配置配置ConnectionFactoryconnectionFactory是Spring用于创建到JMS服务器链接的,Spring提供了多种connectionFactory,我们介...转载 2017-06-26 21:05:18 · 285 阅读 · 0 评论 -
手写tomcat 加手写线程池结合
一介绍:前面的介绍copy别人的:很多初学或将学java web的朋友总是被一系列异于常规java project的流程结构所困惑,搞不清事情的本质,这里就以最简单的方式来让初出茅庐的新手对java web项目有个清晰明了的认识。学java web的必定先行学过java基础,众所周知,java项目运行于一个public类中的一个pulblic static void main(St原创 2017-10-26 15:38:02 · 812 阅读 · 0 评论 -
zookeeper入门系列-理论基础-paxos协议
paxos算法是由大牛lamport发明的,关于paxos算法有很多趣事。比如lamport论文最初由故事描述来引入算法,以至于那班习惯数学公式的评委将该论文打回,导致该论文延误了8年才公开发表。另外,google的chubby的作者Mike Burrows说过,世界上只有一种一致性算法,那就是paxos。两将军问题为了引入该算法,首先提出一种场景,即两将军问题(见文献1):[plain] vie...转载 2018-03-14 17:41:55 · 240 阅读 · 0 评论 -
webservice-axis2方式 maven + spring
首先建议阅读官方文档http://axis.apache.org/axis2/java/core/docs/spring.html然后就是实践了1、maven的pom.xml中关于axis2的配置[html] view plain copy<dependency> <groupId>org.apache.axis2</groupId> ...转载 2018-05-09 18:43:44 · 3652 阅读 · 0 评论 -
单点登录之CAS原理和实现
1.开源单点登录系统CAS入门1.1 什么是单点登录单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。1.2 ...转载 2018-06-11 17:20:30 · 249 阅读 · 0 评论 -
windows环境下使用jenkins自动部署发布项目部署到tomcat webapps文件夹下
1、首先在windows环境下安装好jenkins(在此之前首先做到此项目是maven项目,并且已经可通过eclipse上传和更新svn仓库代码),在浏览器输入localhost:8080/ (jenkins默认端口号是8080,tomcat有时也是这个,不要冲突) 看能否正常访问,否则参考jenkins在windows下的安装先完成这一步;2、2.1在jenkins/secrets/init...原创 2018-07-24 10:12:31 · 10175 阅读 · 1 评论 -
Spring-boot 入门之第一个demo
环境约束–jdk1.8:Spring Boot 推荐jdk1.7及以上;java version "1.8.0_112"–maven3.x:maven 3.3以上版本;Apache Maven 3.3.9–IntelliJIDEA2017:IntelliJ IDEA 2017.2.2 x64、STS–SpringBoot 1.5.9.RELEASE:1.5.9;1、MAVEN设...原创 2018-07-29 19:06:37 · 19281 阅读 · 1 评论 -
SpringBoot 全局配置和静态资源配置
1、配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好; 2、YAML语法:### 1、基本语法k:(空格)v:表示一对键值对(空格必须有);以**空格**的缩进来控...原创 2018-07-29 22:43:11 · 4513 阅读 · 0 评论 -
SSO之CAS单点登录详细搭建教程
SSO之CAS单点登录详细搭建教程 原贴: https://www.cnblogs.com/zhoubang521/p/5200407.html 本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助...转载 2018-08-08 22:25:59 · 421 阅读 · 0 评论 -
centos6.4 安装redis单机版
Redis是c语言开发的,安装c语言需要c语言的编译环境检查虚拟机是否安装gcc说明没有安装执行安装命令:yum install gcc-c++安装完成后再次输入gcc命令,显示如下,则安装成功首先上传安装包到服务器:解压:tar zxf redis-3.0.0.tar.gz 进入解压文件夹,编译redis: cd redis-3.0.0 执行 m...原创 2018-09-11 20:37:30 · 255 阅读 · 0 评论 -
sharding-jdbc之——分库分表实例
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79368021一、概述之前,我们介绍了利用Mycat进行分库分表操作,Mycat分表操作是利用分库来进行的,单个库中的分表操作可结合MySQL的分区进行,这也是Mycat官方提倡的方式。那么,如何利用Mycat真正实现数据库的分库分表,可以私信我。今天,我们来看看shardi...原创 2019-01-15 15:15:39 · 2481 阅读 · 0 评论