一.前言 上篇介绍了 Redis 的集成过程,可用于解决热点数据访问的性能问题.随着业务复杂度的提高,单体应用越来越庞大,就好比一个类的代码行数越来越多,分而治之,切成多个类应该是更好的解决方法,所以一个庞大的单体应用分出多个小应用也更符合这种分治的思想.于是乎微服务化的概念油然而生,微服务化的第一步就是选择适用的分布式服务框架,基于团队成员有使用过「 Dubbo 」的经验,我们放弃了完全陌生的「 Spring Cloud 」.本篇将主要介绍在 Spring Boot 中集成 Dubbo 的过程…
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理 Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强. 1…
本文示例源码,请看这里: 如何安装与配置Redis,请看这里 首先添加起步依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 该依赖里默认包含了spring-data-redis和Jedis依赖,见这里 编辑applicatio…
一.前言 上篇介绍了接口文档工具 Swagger 及项目监控工具 JavaMelody 的集成过程,使项目更加健壮.在 JAVA Web 项目某些场景中,我们需要用缓存解决如热点数据访问的性能问题,业界常用的中间件如 Memcached . Redis 等.相比 Memcached ,Redis 支持更丰富的数据结构.本篇将主要介绍在 Spring Boot 中集成 Redis 的过程. 二.集成 Redis 在 Spring Boot 中使用 Redis 有两种方式: 基于 RedisTemp…
一.前言 上篇介绍了 Spring Boot 集成 Dubbo,使我们的系统打下了分布式的基础.随着程序功能的日益复杂,程序的配置日益增多:各种功能开关.参数配置.服务器地址等:对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制等:在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求.分布式配置中心应运而生.本篇将主要介绍分布式配置中心 Apollo 的集成过程. 二.部署 Apollo ① 部署教程见…
一.前言 上篇介绍了 Logback 的集成过程,总体已经达到了基本可用的项目结构.本篇主要介绍两个常用工具,接口文档工具 Swagger .项目监控工具 JavaMelody 的集成步骤. 二.Swagger 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染变成了前端渲染.前后端分离的形态.前后端唯一的联系变成了 API 接口,API 文档成了前后端开发人员联系的纽带,Swagger 就是一款让我们更好书写 API 文档的框架. 2.1 为什么要用 Swagger 在日常开发过程中,…
SpringBoot + Redis +SpringSession 缓存之实战 前言 前几天,从师兄那儿了解到EhCache是进程内的缓存框架,虽然它已经提供了集群环境下的缓存同步策略,这种同步仍然需要消耗一定时间的,就是从某种程度上讲短暂的缓存不一致依旧存在. 所以,我就选择了集中式缓存,在 SpringBoot 工程中使用 Redis 进行缓存. 个人参考案例 个人博客 : https://zggdczfr.cn/ 个人参考案例(如果认可的话,麻烦给颗star) : https://gith…
一.前言 上篇介绍了 Spring Boot Maven 多模块项目的搭建方法以及 MyBatis 的集成.通常在调试接口或者排查问题时我们主要借助于日志,一个设计合理的日志文件配置能大大降低我们的排查难度,本篇主要介绍 Logback 集成步骤. 二.集成 Logback 2.1 引入依赖包 其实 Spring Boot 提供的父工程中已经包含了所依赖的 Logback jar 包,可通过项目父 pom 中的 「spring-boot-starter-parent」>> 「spring-bo…
1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求.现在把大致实现的思路总结一下. 2. MySQL 不合适 遇到需求,首先要想到现有的东西能不能满足,成本如何. MySQL是我首先能够想到的,毕竟大部分数据要持久化到MySQL.但是使用MySQL需要自行计算Geohash.需要使用大量数学几何计算,并且需要学习地理相关知识,门槛较高,短时间内不可能…
一.前言 最近公司项目准备开始重构,框架选定为 Spring Boot ,本篇主要记录了在 IDEA 中搭建 Spring Boot Maven 多模块项目的过程. 二.软件及硬件环境 macOS Sierra 10.12.6 IntelliJ IDEA 2018.2 JDK 1.8 Maven 3.2.1 Spring Boot 2.0.4 三.项目结构 biz 层(业务逻辑层) dao 层(数据持久层) common 层(公用组件层) web 层(请求处理层) 注:biz 层依赖 dao 及…