Java项目是不是分布式,真有那么重要吗?

简介: 大概不知道从什么时候,「微服务」「分布式」这两个词又再次频繁出现在我的视线里。「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。

大概不知道从什么时候,「微服务」「分布式」这两个词又再次频繁出现在我的视线里。
「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。
那时候觉得懂「分布式」「微服务」是关键,什么SSM/SSH这不是谁都会吗,靠SSH/SSM我怎么有竞争力找工作啊。
后来工作以后,对这块技术栈就没怎么深入去看过了,毕竟我不是在公司里搞RPC框架组件的,把时间都专注于自己的业务系统里去了。
工作了之后,有的同事跳槽去了阿里/字节,我看他们简历也没写自己懂「微服务」「分布式」,也没见他们在简历上有Dubbo和SpringCloud这种技术栈,但这也没影响他们跳去字节和阿里这种公司。
同理,我在去年跳槽的时候,我的简历也没有这块内容。面试下来,也仅仅只有一个面试官随口提了下我懂不懂SpringCloud的原理。我跟他说我对这块了解不深,只知道大致的过程,他也没为难我,直接就跳过了。
而我现在工作的内容也没有大量涉及到Dubbo/SpringCloud这种技术栈的组件去使用,所以跟大家比起来,我这块技术栈还是很薄弱。可能等我下次跳槽的时候,这块东西我还是写不上简历去。
回到正题上吧,最近「微服务」「分布式」这两个词又再次频繁出现在我的视线里,最主要的可能是我做了个开源项目「Austin」,有挺多人问我这个项目是不是分布式的。
开源项目消息推送平台austin仓库地址:

消息推送平台🔥推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。

gitee.com/zhongfuchen…
github.com/ZhongFuChen…

可以明确地告诉大家,它并不是「分布式」「微服务」的项目。目前到此为止,它核心就只有一个发送的接口,而且只能通过HTTP的方式去调用。
那他能做成一个「分布式」项目吗?答案也是可以的,只要把「服务治理」相关的组件引入就可以问题了。现在是项目是分开module模块的,austin-web(管理后台)/austin-cron(定时任务)/austin-api和austin-api-impl(接入层)/austin-handler(下发逻辑处理层)这几个都可以单独抽出来部署。

(实际上在线上环境里,也是这么干的)
单独部署了以后,再通过「服务治理」的组件进行管理,那系统就是「分布式」的架构了。听着听不难,对不对?实际上也确实不难。
既然如此,为什么我一直都没去变动我的系统呢?最核心的点在于:我认为以我这类系统来说,功能的完整性比「分布式」这种架构模式更加重要。
又因为我的工作历程导致我一直在生产环境下就没有很多条件去深入接触这些「服务治理」的组件,我对它们是不熟悉的。而且我个人对此类框架又没有很浓厚的兴趣,我喜欢把重点放在存储的组件上(更愿意把时间花在Redis/MySQL/HBase/Elasticsearch这些)
最近,我看股东群有好多都是在备战校招的,也见证了整个校招环境确实是越来越卷了,在这我给个小tips吧。
其实吧,我觉得作为应届生在面试的时候是不太需要过于在意「分布式」。以我做面试官的角度而言,在正式工作之前,能有啥场景给你深入去做「分布式」系统。
除非你简历真的写了挺多的分布式内容,不然我是不会把「分布式」作为面试校招生的重点(如果你都真的懂了,那确实是可以拉开差距的,前提是你的基础知识表现都不错)。如果你没写,那我真的就不会去问这块内容。
简历上写的技术栈最好是自己比较熟悉的,只是用过但不懂原理的可以去掉,简历上的技术栈并不是越多越好
祝愿备战的小伙伴都能早日上岸!

相关文章
|
1月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
1月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
16天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
89 26
|
28天前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
46 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
27天前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
1月前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
44 4
|
1月前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
45 3
|
1月前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
56 1
|
2月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
402 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
1月前
|
存储 NoSQL Java
Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
【10月更文挑战第29天】Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
100 1