TangAiYun专栏

资深码农的唠叨

微服务限流器终极大作,年终巨献

啥也不说了,上代码先: https://github.com/tangaiyun/redislimiter-spring-boot 或 https://gitee.com/aiyuntang/redislimiter-spring-boot redislimiter-spring-boot ...

2018-12-07 23:56:04

阅读数 111

评论数 1

一个把PHP开发的Restful API应用集成到Spring Cloud体系中的方案

方案思路: 把php应用部署到openresty + PHP(FPM) 通过openresty的 init_worker_by_lua_block特性,在第一个worker被创建时,读取服务配置文件 把服务配置文件中的信息通过eureka或者consul的rest api,注册服务实例 如...

2018-10-30 23:13:48

阅读数 700

评论数 0

利用Spring Cloud开发微服务并实现动态数据源路由详解

  一个典型的微服务架构中,服务应该是没有状态的,但是对于一个多租户的SAAS类系统来说,每个租户都有自己的配置和业务数据,并且不同租户的之间的数据应该要满足一定程度的隔离性。隔离方案一般有以下三种: 描述优点 缺点独立数据库一个租户一个数据库隔离级别最高,安全性最好成本较高共享数据库,隔离数据架...

2018-07-13 17:38:25

阅读数 2846

评论数 2

Spring Cloud之网关Zuul开启重试

  在Spring Cloud体系中,如果网关要支持重试要配置的点蛮多的,等我一一道来:网关工程pom.xml中要加入org.springframework.retry依赖<dependencies> <dependency&a...

2018-07-03 20:12:17

阅读数 411

评论数 0

Spring Cloud 微服务架构下的全局id生成器,基于tweet的snowflake算法改进

概述SnowFlake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法,它可以满足Twitter每秒上万条消息ID分配的请求,这些消息ID是唯一的且有大致的递增顺序。原理SnowFlake算法产生的ID是一个64位的整型,64个bit位被分成4段:42--5--5--12 42...

2018-06-26 17:58:12

阅读数 1275

评论数 1

API 限流器(三) 在Spring Cloud 微服务体系中集成RedisRateLimiter

  这篇是API限流器这个系列的终章,就是讲述如何在Spring Cloud 微服务开发中应用我发明的先进的限流器。开篇明义,基本思路如下:1. 定义一个annotation - RedisLimiter2. 在RestController 中有URL Mapping 的方法上应用RedisLim...

2018-05-31 09:58:52

阅读数 2373

评论数 3

API 限流器(二)史上最优秀的访问频率控制器的算法设计详解

项目代码地址: https://github.com/tangaiyun/RedisRateLimiter举例如果限制的时间单位为分钟,限制前缀为一个IP(128.9.9.23),则当前有序集合的key的运算规则如下:求出当前时间所处的分钟序号: long index = Long.parseLo...

2018-05-26 17:11:37

阅读数 898

评论数 0

API 限流器(一):基于redis的API访问频率控制器的实现

在open API日益盛行的今天,API的访问频率控制尤为重要。Google开源的Guava中有个类叫RateLimiter,但是此类控制粒度只是秒级别的,没有提供分钟,小时,天级别的限制,而且采取的是阻塞的模式,应用起来不是很方便。 本人依据Redis的有序集合开发了一个访问频率控制器,很好的实...

2016-08-22 17:46:10

阅读数 4181

评论数 1

基于Mycat的多租户分库方案

方案一:租户共享MyCat中的schema,schema中的表会跨越多个datanode,因此每个表应该指定primary key, sharding rule可以解析primary key中包含的租户code,从而进一步确定每个租户对应的datanode.这就要求每个表的主键生成必须要主键生成器...

2018-04-04 11:31:02

阅读数 1468

评论数 1

Spring cloud中的服务自定义路由

 很多情况下我们需要服务自定义路由,比如需要灰度发布时线上验证环境、生产环境的服务实例路由是需要区分的,还有在SAAS化应用中,经常会把租户分成一个个组,每组分配几个服务实例,就是说组内服务实例共享,组间是隔离的。  本文在Spring Cloud的基础上,给出了一个服务分组和自定义路由的方案,并...

2018-02-27 15:10:16

阅读数 1862

评论数 0

基于redis的分布式锁服务实现

一般的分布式锁服务要么是基于zk的,要么是基于redis,github上看了一个人写的基于redis的实现,感觉不够完美,下面是自己重新实现的。 本锁的使用场景如下: 确定锁的key值构建一个锁对象,构造参数有jedis对象(一般从一个pool中get得来),超时毫秒数,锁失效毫秒数调用锁的...

2016-12-18 18:49:52

阅读数 555

评论数 0

cassandra 批量插入

废话不多说, maven依赖:               com.datastax.cassandra               cassandra-driver-core               2.0.3   java编程例子,例子是用cassandra存...

2014-07-25 10:53:43

阅读数 3763

评论数 2

用Jersey和Google protocol buffer 开发REST WebService

<br />环境准备:<br />jersey版本:jersey-archive-1.2-SNAPSHOT<br />pb版本: protobuf-2.3.0<br />tomcat: tomcat6.0<br /> <br /&g...

2010-07-02 19:19:00

阅读数 1561

评论数 0

改进IE的default.xsl,兼容IE和firefox

大家用IE直接打开xml文件,IE会把xml展示成一个比较原汁原味的树,其实IE是用一个名字为default.xsl来转换xml称html的,这个default.xsl是以前微软的一个XML大牛写的,但是这个default.xsl仅限于IE,我稍作改进,当然是在很多高人工作的基础上改进的,内容如下...

2009-01-04 17:54:00

阅读数 1180

评论数 0

关于DOM4J的Namespace的问题

  大家经常运用DOM4J操作XML文档,如果XML文档存在namespace的话,读写XML经常不工作,解决方案很简单的:举个例子吧:比如我一个XML文件头是这样的:        version="1.0"        initialstate="coordin...

2009-01-04 17:16:00

阅读数 3766

评论数 0

Webservice传送文件的实现(AXIS2 MTOM)

工作环境:IDE: Eclipse 3.1.2                    jdk: jdk1.5.0_06                    Tomcat: apache-tomcat-5.5.15                    AXIS2:1.0(war版本和bin版本)...

2006-06-02 17:24:00

阅读数 4064

评论数 2

Tapestry入门(译作)

                                Introduction to Jakarta Tapestry                                                          (Tapestry入门)   by Ro...

2004-05-17 18:20:00

阅读数 2004

评论数 2

Tapestry入门及进阶一

要Tapestry开发一个Web Application,对一个新手来说有点困难的,Tapestry由于不同于以前的Web Presentation Framework,所以不可讳言,学习曲线比较长这是事实。我先讲讲一个Web Application的大体结构:以JBuider9为开发工具,你要先...

2004-05-11 11:24:00

阅读数 1883

评论数 0

Tapestry入门及进阶二

下面来谈谈Tapestry的开发流程。Tapestry的开发主要有两种:一种是控件的开发,一种是页面的开发,其实页面也可以被看成控件。以我的工程为例,我的控件全放在com.ht.components下以我的ToolBar为例,我的ToolBar控件放在com.ht.components.toolb...

2004-05-11 11:23:00

阅读数 1594

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭