Java中的一些基础代码片段_3

=Start=

缘由:

在学习Java的过程中不断用文章进行整理总结(常用功能的Java实现),争取早日能较为熟练的使用Java进行开发。

正文:

参考解答:
7. Java中 文件操作 的方法总结

8. Java中 MySQL 的操作总结

&

现在一般都是通过Maven管理的jar包依赖了,所以,根据本机的实际情况,在项目的pom.xml进行相应的添加,以避免「java.lang.ClassNotFoundException: com.mysql.jdbc.Driver」错误:

9. Java中 redis 的操作总结

 

参考链接:
  • 如上

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3978.html

《Java中的一些基础代码片段_3》上有6条评论

  1. 对高并发流量控制的一点思考
    http://blog.51cto.com/zhangfengzhe/2066683

    限流的常用处理手段有:计数器、滑动窗口、漏桶、令牌。

    限流神器:Guava RateLimiter
    Guava不仅仅在集合、缓存、异步回调等方面功能强大,而且还给我们封装好了限流的API!
    Guava RateLimiter基于令牌桶算法,我们只需要告诉RateLimiter系统限制的QPS是多少,那么RateLimiter将以这个速度往桶里面放入令牌,然后请求的时候,通过tryAcquire()方法向RateLimiter获取许可(令牌)。

    上面所说的限流的一些方式,都是针对单机而言的,其实大部分的场景,单机的限流已经足够了。分布式下限流的手段常常需要多种技术相结合,比如Nginx+Lua,Redis+Lua等去做。本文主要讨论的是单机的限流,这里就不在详细介绍分布式场景下的限流了。

  2. Java中如何将日期字符串转换成ms的形式
    https://stackoverflow.com/questions/8826270/how-to-convert-hhmmss-sss-to-milliseconds
    https://www.mkyong.com/java/how-do-get-time-in-milliseconds-in-java/

    private static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    private static SimpleDateFormat sdf = new SimpleDateFormat(TIME_FORMAT);

    private long datetimeToLong(String datetime) {
    Date date = null;
    try {
    date = sdf.parse(datetime);
    return date.getTime();
    } catch (ParseException e) {
    e.printStackTrace();
    return -1;
    }
    }

  3. 你应该知道的缓存进化史
    https://mp.weixin.qq.com/s/wnPrE4MglmCFxyAwtTh_5A

    第一阶段:数据同步加redis
    通过消息队列进行数据同步至redis,然后Java应用直接去取缓存 这个阶段优点是:由于是使用的分布式缓存,所以数据更新快。缺点也比较明显:依赖Redis的稳定性,一旦redis挂了,整个缓存系统不可用,造成缓存雪崩,所有请求打到DB。

    第二,三阶段:JavaMap到Guava cache
    这个阶段使用进程内缓存作为一级缓存,redis作为二级。优点:不受外部系统影响,其他系统挂了,依然能使用。缺点:进程内缓存无法像分布式缓存那样做到实时更新。由于java内存有限,必定缓存得设置大小,然后有些缓存会被淘汰,就会有命中率的问题。

    第四阶段:Guava Cache刷新
    为了解决上面的问题,利用Guava Cache可以设置写后刷新时间,进行刷新。解决了一直不更新的问题,但是依然没有解决实时刷新。

    第五阶段:外部缓存异步刷新
    这个阶段扩展了Guava Cache,利用redis作为消息队列通知机制,通知其他java应用程序进行刷新。

  4. 自己写分布式限流组件-基于Redis的RateLimter
    http://wuwenliang.net/2018/10/27/%E8%87%AA%E5%B7%B1%E5%86%99%E5%88%86%E5%B8%83%E5%BC%8F%E9%99%90%E6%B5%81%E7%BB%84%E4%BB%B6-%E5%9F%BA%E4%BA%8ERedis%E7%9A%84RateLimter/

    1. 原理
    2. 需求
    3. 为何使用Lua
    4. 正式开发
    4.1. 1. 工程定义
    4.2. 2. Redis整合
    4.2.1. 2.1 坐标引入
    4.2.2. 2.2 注入CacheManager及RedisTemplate
    4.2.3. 2.3 调用方application.propertie需要增加Redis配置
    4.3. 3. 定义注解
    4.4. 4. 解析注解
    4.5. 5. Lua脚本
    5. 测试
    6. 总结

发表评论

电子邮件地址不会被公开。 必填项已用*标注