单体guava

Spring Boot和 Spring Cloud的区别;单体架构与微服务架构的区别以及优缺点

Spring Boot 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(r ......
架构 Spring 单体 优缺点 Cloud

Java中单体应用锁的局限性&分布式锁

互联网系统架构的演进 在互联网系统发展之初,系统比较简单,消耗资源小,用户访问量也比较少,我们只部署一个Tomcat应用就可以满足需求。系统架构图如下: 一个Tomcat可以看作是一个JVM进程,当大量的请求并发到达系统时,所有的请求都落在这唯一的一个Tomcat上,如果某些请求方法是需要加锁的,比 ......
单体 局限性 分布式 Java amp

互联网项目架构演变过程(单体架构-模块化架构-微服务架构)

1. 单体架构 1. 传统的架构分为三层架构:web控制层,业务控制层,数据库访问层 2. 业务没有拆分,所有的代码写在一个项目工程中 3. 一旦有一个模块导致服务不可用,可能会影响整个项目 2. 模块化架构 模块化项目就是把传统架构的项目进行业务拆分成多个app,最终打包成一个项目进行部署 3. ......
架构 单体 模块 过程 互联网

Guava的Multimap类型无法被序列化和反序列化的解决方法

出现原因: 当一个接口使用Multimap或者接口返回对象使用Multimap类型时会被jackson序列化成类似{empty:false}的格式 解决方法 pom文件中引入jackson-datatype-guava依赖 <dependency> <groupId>com.fasterxml.ja ......
序列 Multimap 类型 方法 Guava

Guava Cache 异步刷新技巧,你值得拥有!

Guava Cache是一款非常优秀的本地缓存框架,提供简洁易用的 API 供开发者使用。 这篇文章,我们聊聊如何使用 Guava Cache 异步刷新技巧带飞系统性能 。 1 基本用法 首先,在 Java 应用中添加 maven 依赖: <dependency> <groupId>com.goog ......
技巧 Guava Cache

Guava集合

Table - 双键Map BiMap - 双向Map Multimap - 多值Map RangeMap - 范围Map ClassToInstanceMap - 实例Map 总结 Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多 ......
Guava

Google Guava:EventBus

EventBus是Guava中对于事件发布订阅功能的实现,是设计模式中的发布/订阅模式的一种实现方案。 功能概括: 通过eventBus.register注册订阅者,通过eventBus.post方法发布事件,然后根据发布事件的类型(classType),执行所有订阅者中被@Subcribe注解标记 ......
EventBus Google Guava

安利一个java开发利器——guava

前言 工欲善其事必先利其器,一个好的工具让你花更少的时间,干更多的活,一定程度上比较高效地解放了你的的生产力,让你可以有更多的时间搞事情(摸鱼、划水呀),作为java后端开发人员,guava对我们而言,就是这样的工具,今天我们就来了解下这把利器。 guava guava是什么 Guava是Googl ......
利器 guava java

(转载)bs/cs架构,三层架构,单体架构,垂直架构,SOA架构,微服务.

原文地址:https://coder55.com/article/24713 前言 在过去的学习中,我们经常了解到各种关于结构之类的问题,什么三层架构,mvc设计模式,bs,cs模式.等等.那么这些东西,到底是个什么意思,到底有什么联系呢.之间又有什么关系,它们的发展历程是怎么样的,这次,就以这篇文 ......
架构 单体 SOA bs cs

Guava本地环境设置

Guava本地环境设置 这部分指导如何下载和设置Java在机器上。请按照以下步骤来设置环境。 Java SE免费提供链接:下载Java。所以,根据操作系统下载对应版本。 按照说明下载java和运行.exe 在机器上,并按说明安装Java。一旦机器上安装了Java,还需要设置环境变量指向正确的JAVA ......
环境 Guava

并发设计类分析(Guava/Netty)

1. 限流器 1.1 限流器 常见限流算法: 计数器算法 计数器算法是一种简单的限流方法,通过对请求进行计数,当请求达到一定的阈值时,进行限制。这种方法适用于简单场景,但不够灵活。容易出现临界时间点限流失效问题。 滑动窗口算法 滑动窗口算法维护一个时间窗口内的请求数量,通过动态调整窗口大小,可以更灵 ......
设计类 Guava Netty

Guava Preconditions类的各种用法

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 Guava Preconditions类 提供静态方法列表,用于检查是否使用有效参数值调用方法或构造函数。如果前提条件失败,则会抛出指定的异常。 前置依赖 引入 pom <dependency> <groupId>com. ......
Preconditions Guava

使用 Guava Retry 优雅的实现重试机制

大家好,我是王有志。前两天,我们在项目优化的过程中,引入了重试框架 Guava Retry,今天就来和大家分享一下我们的使用心得。 ......
机制 Guava Retry

Guava---Cache

Cache 概述 A semi-persistent mapping from keys to values. Cache entries are manually added using {@link #get(Object, Callable)} or {@link #put(Object, O ......
Guava Cache

pigx 单体 首页跳转

<template> <div class="layout-padding"> <div class="layout-padding-auto layout-padding-view" > <div :style="'display:'+ panalVisible.zkt1"><zkt1 /></d ......
单体 pigx

为什么要用Redis做缓存?为什么用Redis而不用map和Guava?

从请求数据的性能和并发角度来回答这两个问题, 假如用户是第一次访问数据库中的某些数据,第一次访问当然会比较慢,因为是直接从硬盘上读取的,数据通过磁盘IO从磁盘上来到内存中,然后通过网络通信传输给用户,假如我们在第一次读取数据时,将数据存储到内存中,然后第二次以后都从内存中直接读取,那么用户请求数据的 ......
Redis 缓存 不用 Guava map

设计模式 - Immutable 模式(Java不变集合类 vs Google Guava不变集合类)

总结 JDK中的unmodifiableList的构造函数是对原始集合的浅拷贝, 而Guava.ImmutableList.copyOf是对原始集合的深拷贝 public class ImmutableDemo { public static void main(String[] args) { L ......
模式 设计模式 Immutable Google Guava

Guava 工具类之 Splitter的使用

Splitter可以对字符串进行分割,在分割时的方式有2种, 1.按字符/字符串分割 2.按正则进行分割 Splitter在分割完成时可以转换成list和map 一.按字符进行分割 //1.用指定字符切分字符串,并转换成list String s1 = "hello|hihi"; String s2 ......
Splitter 工具 Guava

Guava中的增强Map - Table、BiMap、Multimap、RangeMap、ClassToInstanceMap

1. 简介 日常开发中使用Map时经常会遇到很多复杂的处理场景,例如:多个键的Map、不仅可以根据键获取值也可以根据值获取键且不用遍历、重复键的Map、数字等范围内映射相同的值、内存中缓存对象等,Guava提供了以上场景的解决方案。 场景 解决方案 具体实现 多个键的Map Table HashBa ......

guava 缓存刷新 代码记录 刷新缓存,未完成代码

private static AtomicBoolean refreshCaching = new AtomicBoolean(false); private static LoadingCache<String, String> cache1 = CacheBuilder.newBuilder() ......
缓存 代码 guava

使用Guava的ListenableFuture完成异步多线程任务并返回结果

private static ExecutorService executors = new ThreadPoolExecutor(5, 20, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10), new ThreadF ......
ListenableFuture 线程 任务 结果 Guava

使用Guava实现单体应用限流

一、概述 服务器流量控制一直都是一个非常重要的问题。因为服务器是有性能瓶颈的,所以后台的接口也有其性能瓶颈,当辛辛苦苦的把多级缓存做好后,觉得可以承受高并发了的时候,服务突然就蹦了,可能是缓存爆掉了,也可能是数据库宕机了。造成这些问题的大多数原因就是流量太高了的问题。当然我们也可以进行服务的分布式部 ......
单体 Guava

SpringBoot单体用户登录校验

一、概述 要做一个有私有空间的单体的SpringBoot项目,用户的权限校验是必须得。需要指定哪些接口需要权限才能访问,哪些接口不需要权限就能访问。 目标: 1.用户登录、注册不需要权限校验,获取用户信息需要权限校验 2.获取用户信息通过token来获取(从token中取出用户id) 3.使用JWT ......
单体 SpringBoot 用户

Guava---概述

概述 https://guava.dev/ Guava is a set of core Java libraries from Google that includes new collection types (such as multimap and multiset), immutable ......
Guava

ChatGPT 问答00022 Guava Retryer使用

使用Guava Retryer进行方法异常重试的步骤如下: 1. 添加Guava Retryer依赖:在项目的构建文件(如pom.xml)中添加以下依赖项: ```xml com.github.rholder guava-retrying 2.0.0 ``` 2. 在Java代码中引入必要的类: ` ......
ChatGPT Retryer 00022 Guava

若依-Vue 单体版本 更换mybatisPlus

1、`单体模块在pom.xml ; 多模块版本在ruoyi-common\pom.xml、`模块添加整合依赖 ```xml com.baomidou mybatis-plus-boot-starter 3.4.1 ``` 2、`单模块在修改主题的application.yml ; 多模块在ruoyi ......
单体 mybatisPlus 版本 Vue

若依单体Vue版本新增多环境配置

若依框架是一个简单的web后台管理脚手架,基于SpringBoot+Vue开发的。本次更改版本为3.8.7截止2023年8月14日,最新版本! 若依自带只有 application.yml 与 application-druid.yml 两个配置文件。本次需要增加 dev 开发环境 ; prod 正 ......
单体 版本 环境 Vue

微前端的优势在哪里?为何能够打败单体应用架构

微前端是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。有一个基座应用(主应用),来管理各个子应用的加载和卸载。所以微前端不是指具体的库,不是指具体的框架,不是指具体的工具, ......
单体 前端 架构 优势

k8s实战案例之运行Java单体服务-jenkins

Jenkins通过k8s上的pv/pvc来连接外部存储,通过svc的方式向外暴露服务,在集群内部通过直接访问svc就可以正常访问到jenkins,对于集群外部成员,通过外部负载均衡器来访问Jenkins; ......
单体 实战 案例 jenkins Java

是什么推动了单体应用到微服务架构的演进?

单体应用向微服务架构的演进是由多种因素推动的。以下是一些主要的推动因素: 1. 灵活性和可扩展性:微服务架构允许将应用程序拆分为较小的、独立的服务单元,每个服务单元可以独立开发、测试、部署和扩展。这样可以提高系统的灵活性和可扩展性,使团队能够更快地交付新功能和更新。 2. 技术多样性:微服务架构鼓励 ......
单体 架构