logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

JAVA微服务脚手架项目详解(一)

为了满足业务需求,Java提供了一些内置的异常类,但是它们并不一定能够满足我们的具体业务需求,所以我们需要自定义异常类。核心设计给出一份自定义异常模板,项目可按自身需求扩展更多异常类型。继承自 RuntimeException,异常一般在运行阶段抛出。核心字段:状态码 + 提示信息,具体可随项目调整。提供异常捕获:微服务和网关全局异常处理中应该应该分别提供自定义异常的捕获和处理三种构造方式:传入标

文章图片
#微服务#架构#java
JAVA微服务脚手架项目详解(三)

与传统文件系统(如块存储或文件存储)不同,对象存储将数据存储为独立的“对象”,每个对象包含数据本身、元数据以及唯一的全局标识符(如对象ID),结合元数据和唯一的标识符可以进行数据检索。对象存储通常用于存储大量非结构化数据,如图片、视频、日志文件、备份数据等。这种方式提供一个独立的文件微服务,文件微服务向业务微服务提供统一的上传、下载、查看接口,不同的业务微服务调用方式相同,并且屏蔽了底层调用OSS

文章图片
#大数据#java#微服务
JAVA微服务脚手架项目详解(四)

就好比我们的身份证,之所以能标识一个人的身份,是因为它不能被篡改,而不是因为内容加密。在本项目中,C端用户的CRUD操作主要放在fw-admin模块下,而fw-portal里主要写一些用户行为的接口,比如登录注册,退出等用户操作的功能。还有一点需要注意,在涉及到一些敏感的信息时,比如用户电话或者账号密码之类的,肯定是不能明文传输的,所以我们就需要对这些字段进行加密。字典服务:通常是管理员在后台配置

文章图片
#微服务#架构#云原生 +2
JAVA微服务脚手架项目详解(二)

/ 问题3:A线程释放了B线程的锁,可能当t1线程获取锁proKey后这种执行减库操作时卡住了,然后时间超过了锁过期时间,此时t2线程也过来成功拿到锁,结果还没执行完任务,t1线程恢复了并执行了finally里的解锁操作,就把t2线程的锁给解开了。redis相关配置,这里要对redisTemplate进行序列化配置,不然redisTemplate会以16进制存储key-value,虽然对于redi

文章图片
#java#微服务#开发语言 +2
JAVA微服务脚手架项目详解(一)

为了满足业务需求,Java提供了一些内置的异常类,但是它们并不一定能够满足我们的具体业务需求,所以我们需要自定义异常类。核心设计给出一份自定义异常模板,项目可按自身需求扩展更多异常类型。继承自 RuntimeException,异常一般在运行阶段抛出。核心字段:状态码 + 提示信息,具体可随项目调整。提供异常捕获:微服务和网关全局异常处理中应该应该分别提供自定义异常的捕获和处理三种构造方式:传入标

文章图片
#微服务#架构#java
JAVA微服务脚手架项目详解(四)

就好比我们的身份证,之所以能标识一个人的身份,是因为它不能被篡改,而不是因为内容加密。在本项目中,C端用户的CRUD操作主要放在fw-admin模块下,而fw-portal里主要写一些用户行为的接口,比如登录注册,退出等用户操作的功能。还有一点需要注意,在涉及到一些敏感的信息时,比如用户电话或者账号密码之类的,肯定是不能明文传输的,所以我们就需要对这些字段进行加密。字典服务:通常是管理员在后台配置

文章图片
#微服务#架构#云原生 +2
SpringCloud:Eureka和负载均衡

在最初的架构体系中,集群的概念还不那么流行,且机器数量也比较少,此时直接使用 DNS + Nginx 就可以满足几乎所有服务的发现。相关的注册信息直接配置在 Nginx。但是随着微服务的流行与流量的激增,机器规模逐渐变大,并且机器会有频繁的上下线行为,这种时候需要运维手动地去维护这个配置信息是一个很麻烦的操作。所以开发者们开始希望有这么一个东西,它能维护一个服务列表,哪个机器上线了,哪个机器宕机了

文章图片
#spring cloud#eureka#负载均衡 +1
《mysql篇》--索引事务

我们先来举一个例子,假如我们现在要去银行把钱转账给另一个人,那么把这个操作简化为MySQL语句的话,就是我的账户删除一条数据,另一个人的账户插入一条数据,那么假如中间出现了错误,我的账户少了,另一个人的账户没有变,这样的场景显然是不合理的。事务就是将多条sql语句打包为一个整体,要么都执行,要么都不执行,事务把多个sql打包为一个整体来执行,称之为“原子性”(意为不可再拆分)。

文章图片
#mysql#数据库#java +2
到底了