• Java8 中 joda-time 时间操作工具常用常用 API

    Java8 中 joda-time 时间操作工具常用常用 API

    前言最近公司要对一个老系统进行重构、服务拆分,老系统毕竟是几年前的项目了,在重构的过程中发现代码里对日期的操作还是用的Date、Calendar、SimpleDateFormatter 等API,甚至某些地方还存在线程安全问题。 重构项目采用的是 Java8 的最新版本,所以可以使用其新特性 joda-time 来操作日期,使代码更简洁、优雅、安全。 Joda-Time在 Java8 之前,...
  • Optional 练习、实战

    Optional 练习、实战

    前言Optional 类位于 java.util 包下,是 Java8 新增的类,使用它并结合 Lambda 表达式可以帮住我们进行优雅的判空,接下来通过实战来深入地学习它吧。 Optional使用静态方法构造 OptionalOptional.of(T value)123public static <T> Optional<T> of(T value) {...
  • 读书:《Java程序员职场全攻略:从小工到专家》

    读书:《Java程序员职场全攻略:从小工到专家》

    前言最近读了一本书,书名:《Java程序员职场全攻略:从小工到专家》,豆瓣链接https://book.douban.com/subject/4323628/ 由大佬吴亚峰所著,我看完后觉得对我有不少帮助,本书主要以菜鸟“蔡佳娃”和技术大牛“牛开复”对话的方式,来阐述程序员在职场上必将面临的情形以及处理方式,书中既有入职前的行业探秘、误区排除,也有入职后的口诀传授和江湖新锐兵器介绍。不仅与...
  • MQTT 协议学习

    MQTT 协议学习

    前言最近项目里采用了 MQTT 来做长连接,实现即时通信和 APP 推送的功能,特此总结记录下。 什么是 MQTT?MQTT是一个轻量的、发布订阅模式的消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计,它可以实现机器之间通信,在物联网方面有着巨大的优势,同时在app推送、即时通信也都有应用(我们公司就是在这两个场景上使用了 MQTT)。 MQTT官网: http://mqtt.o...
  • Kafka 笔记整理

    Kafka 笔记整理

    前言前阵子做了个车联网的项目,用到了kafka,今晚回来的早,写一篇对 Kafka 的笔记整理和总结吧。 Kafka 概述Kafka 是一个由 Scala 语言实现的开源、轻量、分布式、具有分区和副本能力的,基于 ZK 实现分布式协调的高性能,高吞吐的分布式消息订阅消息中间件。与传统的消息队列相比,Kafka 可以更好地处理活跃的流数据。可处理每秒几十万、上百万的请求,非常适用于行为跟踪、日...
  • 用 Spring Security Oauth2 + JWT 搭建一个认证中心

    用 Spring Security Oauth2 + JWT 搭建一个认证中心

    前言在很多微服务分布式项目架构中,一般都会有一个独立的认证中心服务,负责用户身份认证和授权,正好近期公司的一个项目用到了,记录总结下。 在此之前,先了解一些概念。 第三方认证互联网项目经常需要访问外部资源,同样本地系统也经常需要访问外部资源,比如用户使用我们的 APP,但是用户嫌手机号 + 验证码方式注册登录太麻烦,为了用户体验,集成了QQ,微信授权登录。 流程如下: 由图可知,微信不属于...
  • 配置 Fegin 拦截器解决微服务之间需要认证才能访问得问题

    配置 Fegin 拦截器解决微服务之间需要认证才能访问得问题

    项目背景Spring Cloud 项目,有前端,有后端,后端服务整合了 Cloud Security OAuth2 ,请求后端的服务需要携带认证信息,即请求头中需要携带” Authorization Bearer …“ 的Token 头信息。 后台微服务还存在服务之间采用 Fegin 的调用,在前端请求后端时,是携带 Token,可以正常请求响应的,但是当微服务之间调用时,报: 1234&#...
  • 使用 Canal + 责任链模式实现 Mysql 和 Redis 同步

    使用 Canal + 责任链模式实现 Mysql 和 Redis 同步

    前言现在公司的项目实际场景中,当数据库的内容变更时,需要刷新缓存。当前的情况,经常把操作 Redis 缓存的代码耦合到了核心业务代码中,为了使之解耦,引入了 Canal 中间件。当数据库发生写入操作时,缓存可以自动刷新,实现刷新缓存的操作对核心业务代码的零侵入。 Canal 介绍Canal 是Alibaba 开源的一个由 java 开发,基于数据库增量 binlog 日志解析,提供增量数据订...
  • 降级和限流

    降级和限流

    前言高并发三把利器:缓存、降级、限流 缓存可以用来解决访问速度的问题,提高系统的吞吐量,减少数据库压力,分布式系统中,常用的缓存有 Redis、MongoDB 等。 本篇主要总结下降级和限流相关知识点笔记,用以提醒自己看到这些点后知道去哪里翻代码。 降级 人工降级 针对核心服务,配置相应开关 自动降级 ​ 通过熔断实现,如SpringCloud中的hystrix,dubbo 的 moc...
  • SpringBoot简单整合Netty实现一个聊天室

    SpringBoot简单整合Netty实现一个聊天室

    今天花了点时间研究下 SpringBoot 整合 Netty,因为现在公司用的框架就有 SpringBoot,感觉我现在依赖上了 SpringBoot……. 在 SpringBoot整合 Netty 的基础上实现一个聊天室这么个小东西。废话不多说直接开始。 Maven 依赖12345678910111213141516171819<dependency> <group...
1234511