2024年java基础538讲解

java基础538讲解技术学习总结 学习技术一定要制定一个明确的学习路线 这样才能高效的学习 不必要做无效功 既浪费时间又得不到什么效率 大家不妨按照我这份路线来学习 最后面试分享 大家不妨直接在牛客和力扣上多刷题 同时 我也拿了一些面试题跟大家分享 也是从一些大佬那里获得的

大家好,我是讯享网,很高兴认识大家。



技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

对于水平伸缩应用程序(如Elastic、Cassanda、Kafka等)可以使用容器。他们能够承受数据库集群内的节点丢失以及数据库应用可以自行恢复均衡。

通常情况下,你应该容器化分布式数据库,从而利用冗余的存储技术并且能够处理数据库集群内的节点丢失(ElasticSearch是一个很好的例子)。

Kubernetes软件组件


现代软件开发的目标之一是保证各类应用程序在相同的主机或集群上可以彼此隔离。虚拟机是解决该问题的一个方案。但虚拟机需要他们自己的操作系统,所以他们的规模通常是千兆字节。

容器则恰恰相反,它可以隔离应用程序的执行环境但共享底层操作系统。所以,容器就像一个盒子,我们可以在其中保存一切运行应用程序所需要的:代码、运行时、系统工具、系统仓库、设置等。它们通常仅需要几兆字节即可运行,远远少于虚拟机所需资源,并且可以立即启动。

Pod是一组容器。在Kubernetes中,最小的单位是Pod。一个pod可以包含多个容器,但通常情况下我们在每个pod中仅使用一个容器,因为在Kubernetes中最小复制单位是pod。如果我们想要为每个容器单独扩容,我们添加一个容器到Pod中即可。

Java程序员14个K8S必备基础概念,你知道哪些

Deployments


Deployment的最初功能是为pod和ReplicaSet(相同Pod在其中会被复制很多次)提供声明式更新。使用deployment,我们可以指定有多少相同pod的副本应该随时运行。Deployment类似于pod的管理器,它可以自动启动所需数量的pod、监控pod并在出现故障时重新创建Pod。Deployment极其有用,因为你不需要单独创建和管理每个pod。

我们通常为无状态应用程序使用deployment。然而,你可以通过给他附加一个持久卷来残存deployment的状态并使其变得有状态。

Stateful Sets

java基础538讲解


StatefulSet是Kubernetes中的一个新概念并且它是用于管理有状态应用的资源。它管理deployment和一组pod的扩展,并且确保这些pod的顺序以及独特性。它与deployment类似,唯一的区别是deployment创建一组任意名称的pod,并且pod的顺序对它来说并不重要,而StatefulSet创建的pod都有独一无二的名称以及顺序。所以,如果你想为名为example的pod创建3个副本,那么StatefulSet将会创建为:example-0、example-1、example-2。因此,这一创建方式最重要的好处就是你可以通过pod的名称就了解大致的情况。

DaemonSets


DaemonSet可以确保pod运行在集群的所有节点上。如果从集群中添加/移除了一个节点,DaemonSet会自动添加/删除该pod。这对于监控以及日志十分重要,因为你可以监控每个节点并且不需要手动监控集群。

Services


Deployment负责保持一组Pod处于运行状态,那么Service负责为一组Pod启动网络访问。Services可以跨集群提供标准化的特性:负载均衡、应用间的服务发现以及零宕机应用程序deployment。每个服务都有独一无二的IP地址以及DNS主机名称。可以为需要使用服务的应用程序手动配置相应的IP地址或主机名称,然后流量将会被负载均衡到正确的pod。在外部流量的部分,我们会了解到更多的服务类型以及我们如何在内部服务和外部世界间进行通信。

Java程序员14个K8S必备基础概念,你知道哪些

ConfigMaps


如果你想部署到多个环境中,如staging、开发环境和生产环境,bake配置到应用程序中并不是一个好的操作,因为环境之间存在差异性。理想状况下,你会希望每个部署环境对应不同的配置。于是,ConfigMap应运而生。ConfigMaps可以让你从镜像中解耦配置工件以保持容器化应用程序的便携性。

外部流量


既然你已经了解运行在集群中的服务,那么你如何获取外部流量到你的集群中呢?有三种服务类型可以处理外部流量:ClusterIP、NodePort以及LoadBalancer。还有第4种解决方案:再添加一个抽象层,称为Ingress Controller。

ClusterIP


ClusterIP是Kubernetes中默认的服务类型,它可以让你在集群内部与其他服务进行通信。虽然ClusterIP不是为外部访问而设计的,但只要使用代理进行了一些改动,外部流量就可以访问我们的服务。不要在生产环境中采用这一解决方案,但可以用其来进行调试。声明为ClusterIP的服务不应该可以从外部直接可见。

NodePort


正如我们在本文第一部分中所看到的那样,pod正在节点上运行。节点可以是各种不同的设备,如笔记本电脑或虚拟机(但在云端运行时)。每个节点有一个固定的IP地址。通过将一个服务声明为NodePort,服务将会暴露节点IP地址,以便你可以从外部访问它。你可以在生产环境中使用NodePort,但对于拥有许多服务的大型应用程序来说,手动管理所有不同的IP地址十分麻烦。

Java程序员14个K8S必备基础概念,你知道哪些

LoadBalancer


声明一个LoadBalancer类型的服务,就可以使用云提供商的LoadBalancer向外部公开。外部load balancer如何将流量路由到服务Pod取决于集群提供程序。有了这个解决方案,你不必管理集群中每个节点的所有IP地址,但你将为每个服务配备一个load balancer。缺点是,每个服务都有一个单独的load balancer,你将按照load balancer实例付费。

Java程序员14个K8S必备基础概念,你知道哪些

这一解决方案适用于生产环境,但它有些昂贵。接下来,我们来看看稍微便宜一些的解决方案。

总结

机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。

对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。

你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:

请转发本文支持一下

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ffa03fab5e56a57acb)收录

小讯
上一篇 2024-12-30 12:46
下一篇 2024-12-28 23:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/6190.html