有了TCP为什么还需要HTTP?再用RPC?这次彻底讲明白了
掘金原文(个人技术文章优先在掘金发布):https://juejin.cn/post/7559981310472470562
记得刚工作那会儿,第一次接触RPC概念时,我内心满是疑惑——明明HTTP用得好好的,为什么要搞出个RPC?直到参与了几个微服务项目后,我才真正能理解它们各自的价值。今天,就让我们一起理清这些协议之间的关系。
从网络基础说起:TC ...
Vaadin:可能你不了解,但值得试一次的企业级Web开发框架
在国内前端生态中,Vue、React、Angular 已经非常成熟了。大部分企业的技术选型也很清晰:后端用 Java/Spring,全栈用前后端分离,表格控件就选择 Element/Ant Design/AG Grid……但有一个国外企业级框架,近两年在全球 Java 圈越来越火,它的名字叫 Vaadin。如果你还不熟悉它,这篇文章可能会让你重新思考一句话:Jav ...
SpringCloud 常见面试题(三)
服务网关
在微服务架构中,网关的作用是什么
在微服务架构中,网关(Gateway)具有以下作用:
统一入口:网关为所有的微服务提供一个唯一的入口点,从而简化了客户端与服务的交互,同时保障了后台服务的安全性。
鉴权校验:网关能够识别每个进来的请求,并根据其权限进行校验,阻止不符合要求的请求通过。
动态路由:根据 ...
50043_基于微信小程序的小区物业管理系统
1.项目包含
项目源码、项目文档、数据库脚本、软件工具等资料;
带你从零开始部署运行本套系统。
2.项目介绍
由于传统依靠微信小程序的小区物业管理系统在信息管理上存在很大难题,比如操作困难,容错率低,管理人员处理数据的效率较低等情况,于是便开发出了这个依托微信小程序的小区物业管理系统。 该系统被引用来有目的 ...
面向对象编程前三次大作业总结
前言
本次大作业是第一个面向对象编程的实操练习,难度从中到难,层层递进。
OOP题目集01
大部分是作为前面Java程序练习的过渡用的练习题,题目简单,题型常见不复杂,能帮助我们学习更多方法运用于Java编程当中。
第一次电梯调度程序也是基础的电梯类设计,初步了解题目的需求,为以后的迭代设计奠定基础。
OOP题目集02
...
Spring Boot自动装配实战:多数据源SDK解决Dubbo性能瓶颈
Spring文章专栏:https://juejin.cn/column/7511884538579877939
明明学了自动装配,却鲜有机会实战?当我面对Dubbo性能瓶颈时,一个自定义Starter的构想让我开启了Spring Boot条件化装配的奇妙之旅。
引言:那些年我们学过的自动装配
记得毕业那会刚开始学习Spring Boot的时候,自动装配机制让我眼前一亮——"约定大于 ...
SpringCloud 常见面试题(二)
配置中心
什么是配置中心?有哪些常见的配置中心?
配置中心是一个用于配置集中化管理目支持动态更新、分发配置文件的工具(服务)。
它实现了配置的统一管理和动态同新,当配置信息发生变化时,配置中心可以自动通知服务实例进行配置更新,这样就可以实例无需重启即可应用最新的配置,从一定程度上减少了系统访问的空窗期,非 ...
SpringCache缓存
一、 SpringCache缓存介绍
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。
Spring Cache只是提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提 ...
Java初尝试:电梯调度迭代开发
前言:
在本学期,我第一次接触到Java这门面向对象的编程语言,此前我已经持续使用了两年多的面向过程的C语言编程,并一直认为掌握好C语言这一门就能解决大部分的问题,但随着这几次从用Java语言实现的电梯调度程序再到每一次的迭代,我逐渐意识到Java这门编程语言确实有它的独到之处,并且在一些复杂问题的实现上与C语言相 ...
剑指offer-40、数组中只出现⼀次的数字
题⽬描述
⼀个整型数组⾥除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现⼀次的数字。
示例
输入:[92,3,43,54,92,43,2,2,54,1]
输出:3,1
思路解答
哈希表统计
使⽤ hashmap 存储数字出现的次数, key 为出现的数字, value 为该数字出现的次数。遍历⾥⾯所有的数字,如果 hashmap 中存在,那么 val ...
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
💡 项目背景
假设你接手了一个电商项目的重构任务:
现状:单体应用,代码20万行,部署一次需要1小时
目标:拆分为微服务架构,支持独立部署和弹性扩展
你会从哪里入手?
按业务域拆分还是按技术层拆分?
如何保证服务间调用的可靠性?
分布式环境下的缓存和事务怎么处理?
本课程以母婴电商平台改造为线索,探讨微服务落 ...
在阿里云上部署Redis
首先确定一个下载目录:
cd /user #进入usr文件夹
mkdir redis #创建redis文件包
下载redis安装包:
wget http://download.redis.io.release.redis-6.0.1.tar.gz
#获取redis安装包
解压安装包
tar -xzvf redis-6.0.1.tar.gz #解压命令
安装与配置:
cd ./redis-6.0.1 #进入安装目录
make #编译
make install #安装
安 ...
剑指offer-39、平衡⼆叉树
题⽬描述
输⼊⼀棵节点数为 n ⼆叉树,判断该⼆叉树是否是平衡⼆叉树。
在这⾥,我们只需要考虑其平衡性,不需要考虑其是不是排序⼆叉树
平衡⼆叉树( Balanced Binary Tree ),具有以下性质:它是⼀棵空树或它的左右两个⼦树的⾼度差的绝对值不超过 1 ,并且左右两个⼦树都是⼀棵平衡⼆叉树。
样例解释:
思路及解答
自 ...
springboot~通过集成测试来理解Accept和Content-Type
🎯 核心区别
Content-Type:告诉服务器我发送的数据是什么格式
Accept:告诉服务器我希望接收什么格式的响应数据
📋 详细说明
1. Content-Type (内容类型)
作用:描述请求体的格式
使用场景:当你的请求有请求体时(如POST、PUT请求)
示例:Content-Type: application/json 表示"我发送的是JSON格式的数据"
// 在MockM ...
PDF处理控件Aspose.PDF教程:如何使用Java从PDF中删除图像
图片会让PDF 文件变得臃肿、杂乱,难以共享。有时,您可能只需要一个不包含照片、图标或图形的干净版本。本指南将教您如何借助Aspose.PDF使用 Java 从 PDF 文件中移除图片。您将学习如何删除所有图片、从选定页面中移除图片、仅删除特定图片,甚至过滤掉灰度图片。
Aspose.PDF官方试用版下载,请联系Aspose官方授权代理商 ...
剑指offer-38、⼆叉树的深度
题⽬描述
输⼊⼀棵⼆叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的⼀条路径,最⻓路径的⻓度为树的深度。
示例1
输⼊:{1,2,3,4,5,#,6,#,#,7}
返回值:4
思路及解答
声明:这⾥的输⼊是⼀个数的根节点,也就是从根节点,我们就可以获取到树的所有节点,⽽类似数组的表达⽅式 {1,2,3,4,5,#,6 ...
SpringCloud 常见面试题(一)
概念
什么是微服务?你是怎么理解微服务的?
微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体 ...
JAVA自定义注解
什么是注解?
注解是一种特殊的接口,用于为Java代码提供元数据。它们不会直接影响代码的执行,但可以被编译器、开发工具或运行时环境读取和使用。
Java内置了一些常用的注解,如:
@Override - 表示方法重写父类方法
@Deprecated - 表示代码已过时
@SuppressWarnings - 抑制编译器警告
注解的基本语法
定义 ...
PPT处理控件Aspose.Slides教程:在Java中将PPTX转换为Markdown
在当今快节奏的数字化环境中,将演示文稿从PPTX转换为Markdown至关重要。许多行业都需要高效的方法将演示文稿转换为文本格式。这种转换便于跨平台编辑和共享。借助Aspose.Slides for Java的强大功能,开发人员可以无缝地将 PowerPoint 文件转换为 Markdown。这种转换不仅简化了内容管理,还增强了团队协作。Aspose.Slides ...
巧用异步监听切面,提高系统性能
使用异步监听切面,提高系统性能
💡 作者:古渡蓝按
💡个人微信公众号:微信公众号(深入浅出谈java)
感觉本篇对你有帮助可以关注一下,会不定期更新知识和面试资料、技巧!!!
摘要: 在构建高并发、高性能的现代Web应用时,如何优雅地记录系统日志、监控API调用而不影响核心业务逻辑的执行效率,是一个至关重要的课题 ...