加载中
多输入源数据同步的一点经验

数据同步的需求,在日常的开发运维环境中是比较常见的需求,通过不同业务,不同存储之间的数据同步,继而达到满足不同业务场景的诉求。接下来我们借助笔者参与的 《Mysql->ES 数据同步项目》...

2022/06/29 14:48
94
谈谈数据一致性

微服务之后,由于服务数据的分片,达成一致性的要求会变的相对有难度。一个大的业务流程,微服务进行业务领域的划分,会变成多个子域的业务流程,最终达成一个业务动作。因此,我们可以将数据...

2021/07/04 21:23
83
API设计的一点思路

API是模块或者子系统之间交互的接口定义。好的系统架构离不开好的API设计,而一个设计不够完善的API则注定会导致系统的后续发展和维护非常困难。 以下谈一点API设计的原则。 业务层 业务语义...

2020/08/27 11:35
334
稳定性保障的一点总结

业务系统最重要的是什么? “稳定,稳定,还是tm的稳定” 什么样子的系统才算做稳定的系统? 假设一个场景A,你需要上线一个新的需求A,涉及功能B的改动,有依赖于B功能的服务C和D,你上线的...

服务化设计的一点思路

1、服务化是什么? 网上有很多的对于服务化理解,我所理解的服务化,是一种服务粒度的切分,包括本质问题的通用解决方案,以及差异解决方案。服务化的目的就是透过场景看自身,而不是将自身去...

2020/08/05 17:27
1.2K
缓存设计的一点思路

在高并发的场景下,为了提升接口的响应速度,增大系统的吞吐量,我们一般需要增加缓存设计来提升相关的性能。那么对于缓存设计需要注意些什么呢?这便是本博客讨论的内容。 缓存设计需要从多...

2019/05/09 16:21
281
SpringTest+Junit 加载本地Jndi数据源测试

今天写了一个比较长的流程业务,不想启动web容器进行测试,就本地写了一个Junit的测试类进行单元测试,但是由于使用Spring,Junit在使用的时候需要手动加载容器上下文,比较麻烦,所以干脆直...

Redis资源池化技术+Sentinel哨兵模式进行集群通信

redis在线上使用的时候,为了高可用和可扩展性,一般不会是单台或者一组的模式运行,而是按照一个集群的模式运行。一个集群包括多组redis,一组redis包含一个master和多个slave,这样我们为了...

Condition使用的一个小研究

最近发现在项目的框架中,使用了Condition来进行线程间的通信。并且使用的方式是如下的方式。 ...................Thread1........................ try{ Lock.lock(); Condition.await(lon...

2018/11/26 16:42
63
JAVA的SPI和ServiceLoader

SPI即Service Provider Interface,用于提供一些服务给第三方实现或扩展,可以增强框架的扩展或者替换一些组件,其实就是约定的一种规范,可以参考JDBC,不同厂家使用相同的约束去实现不同的...

Redis中的skipList

SkipList是一种有序的数据结构,它通过在每个节点中维持多个指向其它节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN),最坏O(N)负责度的节点查找。还可以通过顺序性操作来批...

2018/10/28 23:45
1.4K
Spark入门学习——要点3

通常在向Spark传递函数的时候,可以使用驱动器程序中定义的变量,但是集群中运行的每个任务都会得到这些变量的一个新的副本,更新这些副本的值也不会影响到驱动器中对应变量。Spark的两个共享...

2018/09/15 15:36
82
Spark入门学习——要点2

1、PairRDD的转换操作 Pair RDD的转化操作(以键值对集合{(1, 2), (3, 4), (3, 6)}为例) 函数名 目的 示例 结果 reduceByKey(func) 合并具有相同键的值 rdd.reduceByKey((x, y) => x + y) {...

简单分析Guava中RateLimiter中的令牌桶算法的实现

令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。 大小固...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部