
架构设计
公子
这个作者很懒,什么都没留下…
展开
-
ZK生成全局id
优点:可靠,不会重复缺点:只能分配32位序列号;效率不高依赖: com.github.adyliu zkclient 2.1.1准备zk:连接zkCli,建立节点seq,命令:create /seq data1 (删除命令 rmr /seq)代码实现:package com.xx.x原创 2017-02-27 17:12:18 · 2928 阅读 · 0 评论 -
Redis实现简单版本分布式锁
原理:执行时获得指定名称key是否存在,如果存在不能获得key,如果不存在为该key赋值,然后设置失效时间;解锁的逻辑即删除该key。1.自定义类package com.xxx.cloud.assets.redis.lock;import java.util.Collections;import java.util.UUID;import java.util.con原创 2017-03-22 18:06:59 · 3259 阅读 · 0 评论 -
elasticsearch安装记录
一、ES安装1. 下载安装包,并解压官网地址:https://www.elastic.co/下载后安装:$ unzip elasticsearch-2.3.2.zip2. 启动进入bin目录$ ./elasticsearch -d 注:./elasticsearch --help 查看其它选项如果启动不成功, 报错“add -XX原创 2016-06-17 14:51:02 · 25735 阅读 · 0 评论 -
MacOS brew安装mysql
1.安装msyql brew install mysql2.启动mysqlbrew services start mysql3.登录mysql默认root密码为空。新版mysql数据库user表没有password字段,取而代之的是authentication_string字段mysql -uroot回车,即可登录4.修改密码mysql>update mysql.u原创 2017-03-29 18:44:13 · 859 阅读 · 0 评论 -
spring整合elasticsearch
1. 配置类@Configurationpublic class ESFactory { @Value("${es.ip}") private String ES_IP; @Value("${es.port}") private int ES_PORT; /** * 注入的ElasticSearch实例 * @author xdc * @date 2016年原创 2016-06-14 15:50:33 · 5945 阅读 · 3 评论 -
spring、junit测试用例配置与写法
1.spring配置文件test-spring-service.xml<?xml version="1.0" encoding="utf-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...原创 2017-04-24 17:18:49 · 2373 阅读 · 0 评论 -
各种全局主键生成策略对比
1.数据库自增主键优点:简单;唯一;递增;增幅固定缺点:写性能决定每秒生成数量上限,扩展差;分布式数据库,主节点挂掉,主备上时可能有问题(主节点写入成功,日志未同步到备节点,导致id重复)备注:可有一个写库变成多个库同时写,如1、2、3三个库同时写,初始id分别为1、2、3,自增幅度都为3。这种方式可保证id不重复。但导致id不是绝对递增,而是整体趋势上递增;其次是写入的压力仍然很大,原创 2017-02-27 19:22:10 · 6596 阅读 · 0 评论 -
ELK搭建记录
一.版本软件版本备注jdk1.8至少1.8elasticsearch2.3.2 logstash2.3.2 kibana4.5.0 redis3原创 2016-06-17 15:05:05 · 1301 阅读 · 0 评论 -
tcc-transaction分布式TCC型事务框架搭建与使用记录
首先感谢框架作者。本文只介绍框架使用,并不分析源码。介绍:tcc-transaction是开源的TCC补偿性分布式事务框架,git地址:https://github.com/changmingxie/tcc-transactionTCC为Try、Confirm、Cancel的缩写:try阶段预留资源尝试提交,confirm阶段确定提交,cancel取消提交释放资源。1.2.x项...原创 2017-06-15 15:46:12 · 27803 阅读 · 11 评论 -
mvc:resource静态资源拦截处理
1. xml配置<mvc:resources location="/WEB-INF/excel/" mapping="/download/excel/**" />不赘述2.资源拦截处理package com.xxx.calculator.webapp.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;...原创 2018-05-09 17:44:48 · 1743 阅读 · 1 评论 -
urlrewrite -- url重写
urlrewrite:地址重写,将请求url进行处理1.pom.xml添加依赖 <!-- URL Rewrite --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefi...原创 2018-07-17 20:52:36 · 271 阅读 · 0 评论 -
Spring spel获取自定义注解参数值
1.注解类package com.xxx.mall.order.service.component;import java.lang.annotation.*;/** * 库存不足等信息监控 * Created by xdc on 2019/4/16 15:43 */@Retention(RetentionPolicy.RUNTIME)@Target({ElementTyp...原创 2019-07-04 20:13:46 · 5219 阅读 · 0 评论 -
spring异常处理@ControllerAdvice
1.自定义异常package com.edianzu.finance.common.exception;/** * 异常抽象类 * Created by xdc on 2016/8/3 14:36. */public abstract class FinanceException extends RuntimeException { private ExceptionGr原创 2016-08-22 15:38:28 · 1850 阅读 · 1 评论 -
tomcat启动后修改项目配置文件
作用:启动后修改spring文件配置,动态加载不同的配置文件步骤:1.修改catalina.sh文件,添加如下代码在文件头部:JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128M -Xmx2048m -Xms512m -Dfile.encoding=UTF-8 -Dmode=develop"2.原创 2016-08-08 20:33:05 · 5947 阅读 · 0 评论 -
在Hibernate应用中批量更新和批量删除
批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段:tx = session.beginTransaction();Iterator customers=session.find("from Customer c where c.age>0").iter转载 2014-10-01 15:06:54 · 384 阅读 · 0 评论 -
读取配置文件properties的方法
1. XML中读取配置文件原创 2014-11-05 14:56:20 · 1243 阅读 · 0 评论 -
log4j配置记录
建立log4j.properties文件,文件地址为/config原创 2014-06-12 09:32:26 · 512 阅读 · 0 评论 -
SpringMVC扫描controller配置
配置在springMVC的配置文件中:原创 2015-05-13 10:47:35 · 7185 阅读 · 0 评论 -
servlet流方式上传与下载
1.上传package com.gx.servlet;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintW原创 2015-08-11 14:23:31 · 570 阅读 · 0 评论 -
jsp+servlet上传与下载
一、上传import java.io.File;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletReques原创 2015-08-31 17:15:15 · 523 阅读 · 0 评论 -
java Ftp文件上传
介绍:前台上传控件采用uploadify,后台框架springMVC,FTP为vsftp系统centos6.5。采用sun.net下的ftp相应api。1. Controller中接收上传文件/** * 附件ajax上传处理 * @author xxx * @date 2015-7-10 下午4:30:32 * @param request * @param response原创 2015-10-14 14:39:32 · 1169 阅读 · 0 评论 -
AspectJ aop记录日志
前言使用AspectJ基于schema方式实现aop记录日志。spring版本为3.0。一、实现过程1. 建立Log对象,用于封装日志信息package com.cmcc.sleepgw.aop;import java.io.Serializable;import org.springframework.util.StringUtils;/** * 日志对象原创 2015-01-14 17:17:39 · 1102 阅读 · 0 评论 -
memcached对nginx负载tomcat集群共享session
一.环境准备系统:centos6.5服务与端口:192.168.0.144:8081 tomcat1192.168.0.144:8082 tomcat2192.168.0.144:80 nginx192.168.0.144:11211memcached二.搭建过程1.安装memcached 准备memcached-1.2.0.tar.原创 2016-03-17 14:15:38 · 743 阅读 · 0 评论 -
cronolog安装与配置
1. 下载cronolog安装包 cronolog-1.6.2.tar.gz2. 解压包tar -zxvf cronolog-1.6.2.tar.gz 3.安装./configure makemake install(需要使用root用户,默认安装在/usr/local/sbin下)查看安装后文件路径:$ which cronolog 4.配置t原创 2016-07-11 17:06:57 · 7527 阅读 · 0 评论 -
WebService客户端Axis2调用
1.RPC方式调用RPCServiceClient方式不能携带指定参数,下列为ServiceClient方式:public static void main(String[] args) { try { String soapBindingAddress = "http://192.168.10.1:8080/BillService.asmx?wsd原创 2016-07-22 15:38:22 · 5785 阅读 · 0 评论 -
Twitter的分布式自增ID算法snowflake
结构snowflake的结构如下(每部分用-分开):0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024转载 2017-02-27 18:51:17 · 4153 阅读 · 0 评论 -
ActiveMQ之Ajax调用
前言ActiveMQ支持Ajax,这是应用在实时web应用中的一种异步的Javascript和Xml机制。这意味着你可以利用ActiveMQ的“发布/订阅”的天性,来创建高度实时的web应用。Ajax允许一个常见的DHTML客户端(使用JavaScript和一个第5版及更高版本的现代浏览器)通过互联网收发信息。ActiveMQ对Ajax的支持建立在与REST的ActiveMQ连接器转载 2014-10-24 15:49:42 · 952 阅读 · 0 评论