辛集市住房和城乡建设局网站,集团门户网站建设策划,专题网站搭建,网站定制建设哪里好目录 一、域名系统DNS二、LVS#xff08;Linux Virtual Server#xff09;,Linux虚拟服务器三、CDN静态资源四、Nginx反向代理服务器1、Nginx的主要作用体现在以下几个方面#xff1a;2、Nginx静态资源服务和CDN静态资源服务#xff0c;如何选择#xff1f; 五、Gateway网… 目录 一、域名系统DNS二、LVSLinux Virtual Server,Linux虚拟服务器三、CDN静态资源四、Nginx反向代理服务器1、Nginx的主要作用体现在以下几个方面2、Nginx静态资源服务和CDN静态资源服务如何选择 五、Gateway网关六、注册中心Nacos七、Redis缓存1、在微服务架构中Redis的作用主要体现在以下几个方面2、竞态条件3、Redis会话管理如何实现 八、Elasticsearch全文搜索引擎九、感觉Redis和Elasticsearch很像微服务中Redis和Elasticsearch的区别微服务 Spring Cloud系列 大家好我是哪吒。
很多人都说现在是云原生、大模型的时代微服务已经过时了但现实的是很多人开发多年都没有在实际的开发中用过微服务更别提搭建微服务框架和技术选型了。
面试的时候都会问怎么办
今天分享一张微服务的丐版架构图让你可以和面试官掰扯掰扯~
脑中有图口若悬河一套组合拳下来面试官只能拍案叫好大呼快哉HR更是惊呼我勒个乖乖完全听不懂。
话不多说直接上图。 由此可见Spring Cloud微服务架构是由多个组件一起组成的各个组件的交互流程如下。
浏览器通过查询DNS服务器获取可用的服务实例的网络位置信息从而实现服务的自动发现和动态更新通过CDN获取静态资源提高访问速度解决跨地域请求速度慢的问题通过LVS负载均衡器实现负载均衡和网络协议通过Nginx反向代理服务器将请求转发到gateway做路由转发和安全验证访问注册中心和配置中心Nacos获取后端服务和配置项通过Sentinel进行限流通过Redis进行缓存服务、会话管理、分布式锁控制通过Elasticsearch进行全文搜索存储日志配合Kibana对ES中的数据进行实时的可视化分析。
一、域名系统DNS
在微服务中域名系统DNS的作用主要是进行服务发现和负载均衡。
每个微服务实例在启动时将自己的IP地址和端口号等信息注册到DNS服务器浏览器通过查询DNS服务器获取可用的服务实例的网络位置信息从而实现服务的自动发现和动态更新。DNS服务器可以根据一定的策略比如轮询、随机等将请求分发到不同的负载均衡器LVS上提高系统的并发处理能力和容错性。
二、LVSLinux Virtual Server,Linux虚拟服务器
LVS是一个开源的负载均衡软件基于Linux操作系统实现。它在Linux内核中实现负载均衡的功能通过运行在用户空间的用户进程实现负载均衡的策略。
LVS支持多种负载均衡算法例如轮询、随机、加权轮询、加权随机等。LVS支持多种网络协议例如TCP、HTTP、HTTPS可以满足不同应用的需求。LVS具有高可用和可扩展性。它支持主从备份和冗余配置当主服务器出现故障时备份服务器可以自动接管负载确保服务的连续性。此外LVS还支持动态添加和删除服务器节点方便管理员进行扩容和缩容的操作。
三、CDN静态资源
CDN静态资源图片、视频、JavaScript文件、CSS文件、静态HTML文件等。这些静态资源的特点是读请求量极大对访问速度的要求很高并占据了很高的宽带。如果处理不当可能导致访问速度慢宽带被占满进而影响动态请求的处理。
CDN的作用是将这些静态资源分发到多个地理位置的机房的服务器上。让用户就近选择访问提高访问速度解决跨地域请求速度慢的问题。
四、Nginx反向代理服务器
1、Nginx的主要作用体现在以下几个方面
反向代理Nginx可以作为反向代理服务器接收来自客户端的请求然后将请求转发到后端的微服务实例。负载均衡Nginx可以根据配置将请求分发到微服务不同的实例上实现负载均衡。服务路由Nginx可以根据不同的路径规则将请求路由到不同的微服务上。静态资源服务Nginx可以提供静态资源服务如图片、视频、JavaScript文件、CSS文件、HTML静态文件等减轻后端服务的压力提高系统的响应速度和性能。
2、Nginx静态资源服务和CDN静态资源服务如何选择
在选择Nginx静态资源服务和CDN静态资源服务时可以根据以下几个因素进行权衡和选择
性能和速度CDN静态资源服务通常具有更广泛的分布式节点和缓存机制可以更快地响应用户的请求并减少传输距离和网络拥塞。如果静态资源的加载速度和性能是首要考虑因素CDN可能是更好的选择。控制和自定义能力Nginx静态资源服务提供更高的灵活性和控制能力可以根据具体需求进行定制和配置。如果需要更精细的控制和自定义能力或者在特定的网络环境下进行部署Nginx可能更适合。成本和预算CDN静态资源服务通常需要支付额外的费用而Nginx静态资源服务可以自行搭建和部署成本相对较低。在考虑选择时需要综合考虑成本和预算的因素。内容分发和全球覆盖如果静态资源需要分发到全球各地的用户CDN静态资源服务的分布式节点可以更好地满足这个需求提供更广泛的内容分发和全球覆盖。
选择Nginx静态资源服务还是CDN静态资源服务取决于具体的需求和场景。如果追求更好的性能和全球覆盖可以选择CDN静态资源服务如果更需要控制和自定义能力且对性能要求不是特别高可以选择Nginx静态资源服务。
五、Gateway网关
在微服务架构中Gateway的作用如下
统一入口Gateway作为整个微服务架构的统一入口所有的请求都会经过Gateway这样做可以隐藏内部微服务的细节降低后台服务受攻击的概率路由和转发Gateway根据请求的路径、参数等信息将请求路由到相应的微服务实例。这样可以让服务解耦让各个微服务可以独立的开发、测试、部署安全和认证Gateway通常集成了身份验证和权限验证的功能确保只有经过验证的请求才能访问微服务。Gateway还具备防爬虫、限流、熔断的功能协议转换由于微服务架构中可以使用不同的技术和协议Gateway可以作为协议转换中心实现不同协议之间的转换和兼容性日志和监控Gateway可以记录所有的请求和响应日志为后续的故障排查、性能分析、安全审计提供数据支持。Gateway还集成了监控和报警功能实时反馈系统的运行状态服务聚合在某些场景中Gateway可以将来自多个微服务的数据进行聚合然后一次性返回给客户端减少客户端和微服务之间的交互次数提高系统性能
六、注册中心Nacos
在微服务架构中Nacos的作用主要体现在注册中心、配置中心、服务健康检查等方面。
注册中心Nacos支持基于DNS和RPC的服务发现微服务可以将接口服务注册到Nacos中客户端通过nacos查找和调用这些服务实例。配置中心Nacos提供了动态配置服务可以动态的修改配置中心中的配置项不需要重启后台服务即可完成配置的修改和发布提高了系统的灵活性和可维护性。服务健康检查Nacos提供了一系列的服务治理功能比如服务健康检查、负载均衡、容错处理等。服务健康检查可以阻止向不健康的主机或服务实例发送请求保证了服务的稳定性和可靠性。负载均衡可以根据一定的策略将请求分发到不同的服务实例中提高系统的并发处理能力和性能。
七、Redis缓存
1、在微服务架构中Redis的作用主要体现在以下几个方面
缓存服务Redis可以作为高速缓存服务器将常用的数据存储在内存中提高数据访问速度和响应时间减轻数据库的访问压力并加速后台数据的查询会话管理Redis可以存储会话信息并实现分布式会话管理。这使会话信息可以在多个服务之间共享和访问提供一致的用户体验分布式锁Redis提供了分布式锁机制可以确保微服务中多个节点对共享资源的访问的合理性和有序性避免竞态条件和资源冲突消息队列Redis支持发布订阅模式和消息队列模式可以作为消息中间件使用。微服务之间可以通过Redis实现异步通信实现解耦和高可用性
2、竞态条件
竞态条件是指在同一个程序的多线程访问同一个资源的情况下如果对资源的访问顺序敏感就存在竞态条件。竞态条件可能会导致执行结果出现各种问题例如计算机死机、出现非法操作提示并结束程序、错误的读取旧的数据或错误的写入新数据。在串行的内存和存储访问能防止这种情况当读写命令同时发生的时候默认是先执行读操作的。
竞态条件也可能在网络中出现当两个用户同时试图访问同一个可用信道的时候就会发生系统同意访问之前没有计算机能得到信道被占用的提示。统计上说这种情况通常是发生在有相当长的延迟时间的网络里比如使用地球同步卫星。为了防止这种竞态条件发生需要制定优先级列表比如用户的用户名在字母表里排列靠前可以得到相对较高的优先级。黑客可以利用竞态条件这一弱点来赢得非法访问网络的权利。
竞态条件是由于多个线程或多个进程同时访问共享资源而引发的问题它可能会导致不可预测的结果和不一致的状态。解决竞态条件的方法包括使用锁、同步机制、优先级列表等。
3、Redis会话管理如何实现
Redis会话管理的一般实现步骤
会话创建当用户首次访问应用时可以在Redis中创建一个新的会话会话可以是一个具有唯一标识符的数据结构例如哈希表或字符串会话信息存储将会话信息关联到会话ID存储到Redis中会话信息可以包括用户身份、登录状态、权限等。会话过期时间设置为会话设置过期时间以确保会话在一定时间后自动失效。Redis提供了设置键值对过期时间的机制可以通过EXPIRE命令为会话设置过期时间会话访问和更新在每次用户访问应用时通过会话ID获取相应的会话信息并对其进行验证和更新。如果会话已过期可以要求用户重新登录会话销毁当用户主动退出或会话到期后需要销毁会话通过删除Redis中存储的会话信息即可。
八、Elasticsearch全文搜索引擎
在微服务架构中Elasticsearch全文搜索引擎的应用主要体现在如下几个方面
全文搜索引擎ES是一个分布式的全文搜索引擎它可以对海量的数据进行实时的全文搜索返回与关键词相关的结果分布式存储ES提供了分布式的实时文件存储功能每个字段都可以被索引并可被搜索这使得数据在ES中的存储和查询都非常高效数据分析配合Kibana对ES中的数据进行实时的可视化分析为数据决策提供数据支持日志和监控ES可以作为日志和监控数据的存储和分析平台。通过收集系统的日志信息存入ES可以实现实时的日志查询、分析、告警、展示扩展性ES具有很好的扩展性可以水平扩展到数百台服务器处理PB级别的数据使得ES能够应对海量数据的挑战。
九、感觉Redis和Elasticsearch很像微服务中Redis和Elasticsearch的区别
数据存储和查询方式Redis是一种基于键值对的存储系统它提供高性能的读写操作适用于存储结构简单、查询条件同样简单的应用场景。而Elasticsearch是一个分布式搜索和分析引擎适用于全文搜索、数据分析等复杂场景能够处理更复杂的查询需求数据结构与处理能力Redis支持丰富的数据结构如字符串、哈希、列表、集合等并提供了原子性的操作适用于实现缓存、消息队列、计数器等功能。而Elasticsearch则是基于倒排索引的数据结构提供了强大的搜索和分析能力。但相对于RedisElasticsearch的写入效率较低实时性和一致性Redis提供了很高的实时性Redis将数据存储到内存中能够很快的进行读写操作而Elasticsearch是一个近实时的搜索平台实时性不如Redis扩展性Redis是通过增加Redis实例的形式实现扩展对非常大的数据集可能要进行数据分片而Elasticsearch具有水平扩展的能力可以通过添加更多的节点来提高系统的处理能力适用于大量数据的场景 微服务 Spring Cloud系列
微服务 Spring Cloud 1服务如何拆分使用微服务的注意事项
微服务 Spring Cloud 2一文讲透微服务核心架构注册中心、服务通信、服务监控、服务追踪、服务治理
微服务 Spring Cloud 3如何对微服务进行有效的监控
微服务 Spring Cloud 4分布式系统如何进行数据分区 哪吒多年工作总结Java学习路线总结搬砖工逆袭Java架构师。 华为OD机试 2023B卷题库疯狂收录中刷题点这里 刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。