
(完)Java教学课程
文章平均质量分 95
无论你是Java初学者还是有一定基础的开发者,Java教学课程专栏都能为你提供全面深入的学习资源和支持。通过本专栏的学习,你将能够掌握Java编程的核心技能,为未来的软件开发事业打下坚实的基础。
愚公搬代码
《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
展开
-
【愚公系列】2023年12月 Java教学课程 220-微服务保护(Sentinel的授权规则和规则持久化)
微服务保护是指在微服务架构中为了确保服务的稳定性和安全性而采取的一系列保护措施。这些保护措施包括:限流:通过设置并发请求、QPS(每秒请求数)等限制,防止服务因过多请求导致崩溃或响应缓慢。熔断:在服务出现异常或超时的情况下,自动切换到备用服务或返回默认值,防止服务雪崩。降级:当服务出现异常或超时时,自动降级,返回较为简单或者不完整的结果,保证服务的可用性。容错:对于服务的异常情况,进行处理,尽量避免对其他服务或系统产生影响,确保整个系统的稳定性。原创 2023-12-10 08:00:00 · 68757 阅读 · 54 评论 -
【愚公系列】2023年12月 Java教学课程 219-微服务保护(Sentinel的隔离和降级)
微服务保护是指在微服务架构中为了确保服务的稳定性和安全性而采取的一系列保护措施。这些保护措施包括:限流:通过设置并发请求、QPS(每秒请求数)等限制,防止服务因过多请求导致崩溃或响应缓慢。熔断:在服务出现异常或超时的情况下,自动切换到备用服务或返回默认值,防止服务雪崩。降级:当服务出现异常或超时时,自动降级,返回较为简单或者不完整的结果,保证服务的可用性。容错:对于服务的异常情况,进行处理,尽量避免对其他服务或系统产生影响,确保整个系统的稳定性。原创 2023-12-10 04:00:00 · 67638 阅读 · 15 评论 -
【愚公系列】2023年12月 Java教学课程 218-微服务保护(Sentinel的流量控制)
微服务保护是指在微服务架构中为了确保服务的稳定性和安全性而采取的一系列保护措施。这些保护措施包括:限流:通过设置并发请求、QPS(每秒请求数)等限制,防止服务因过多请求导致崩溃或响应缓慢。熔断:在服务出现异常或超时的情况下,自动切换到备用服务或返回默认值,防止服务雪崩。降级:当服务出现异常或超时时,自动降级,返回较为简单或者不完整的结果,保证服务的可用性。容错:对于服务的异常情况,进行处理,尽量避免对其他服务或系统产生影响,确保整个系统的稳定性。原创 2023-12-10 01:00:00 · 67561 阅读 · 2 评论 -
【愚公系列】2023年12月 Java教学课程 217-微服务保护(Sentinel的概念和基本使用)
微服务保护是指在微服务架构中为了确保服务的稳定性和安全性而采取的一系列保护措施。这些保护措施包括:限流:通过设置并发请求、QPS(每秒请求数)等限制,防止服务因过多请求导致崩溃或响应缓慢。熔断:在服务出现异常或超时的情况下,自动切换到备用服务或返回默认值,防止服务雪崩。降级:当服务出现异常或超时时,自动降级,返回较为简单或者不完整的结果,保证服务的可用性。容错:对于服务的异常情况,进行处理,尽量避免对其他服务或系统产生影响,确保整个系统的稳定性。原创 2023-12-09 10:44:26 · 68578 阅读 · 24 评论 -
【愚公系列】2023年12月 Java教学课程 218-分布式事务(Seata的高可用搭建)
高可用性和异地容灾是两个与系统稳定性和可靠性相关的概念。高可用性是指系统可以在故障发生时,快速地恢复运行,并且可以持续为用户提供服务,系统在发生故障时,不会影响到用户的正常使用,即使某个部件损坏或发生故障,系统仍然可以保持运转。异地容灾是指在一定范围内,系统可以在主机故障或网络中断等意外事故发生时,立即切换到备份设备上,保证服务的连续性和有效性。通常来说,异地容灾需要设置备用数据中心,这个数据中心应该与主站点隔离一段距离,以防灾害同时影响两个数据中心。原创 2023-12-04 15:27:33 · 68083 阅读 · 14 评论 -
【愚公系列】2023年12月 Java教学课程 217-分布式事务(Seata的四种事务模式)
Seata事务的作用是保证系统中的数据操作具有原子性、一致性、隔离性和持久性(ACID)。在分布式系统中,多个服务之间需要共享数据并保证数据一致性,Seata提供了一个分布式事务管理解决方案,可以有效地解决分布式事务的难题,确保所有操作都能够按照预期顺序执行,并在必要时回滚事务。使用Seata可以将分布式服务中各个服务的本地事务进行协调合并,形成一个全局事务,从而保证全局事务的一致性。同时,Seata还可以进行分布式事务的监控和追踪,方便排查问题。原创 2023-12-02 16:39:07 · 68461 阅读 · 34 评论 -
【愚公系列】2023年11月 Java教学课程 216-分布式事务(Seata的安装和集成)
分布式事务是指在分布式系统中涉及到的多个节点之间进行的事务处理。在分布式系统中,由于节点之间的通信是通过网络进行的,因此节点之间无法像单机系统一样进行直接的事务处理。因此,分布式系统中的事务处理需要特殊的处理方式,保障数据的一致性和可靠性。常见的分布式事务处理方式包括:两阶段提交、三阶段提交、消息队列等。分布式事务的实现需要考虑多个节点之间的数据同步、锁定机制、数据备份等因素,以保障事务的可靠性。原创 2023-11-29 14:01:37 · 68087 阅读 · 10 评论 -
【愚公系列】2023年11月 Java教学课程 215-分布式事务(理论基础)
事务是指一组操作序列,在这个序列中,要么所有操作都成功完成并且对数据进行了正确的更新,否则所有操作都应该无效,以保持数据的一致性。事务类型描述单机架构中的事务(ACID)保证事务原子性、一致性、隔离性和持久性基于XA协议的分布式事务XA协议是一种两阶段提交协议,保证跨多个数据库的事务的一致性TCC事务TCC即Try-Confirm-Cancel,根据预留资源的情况,尝试执行事务,确认执行事务或者取消事务Saga事务。原创 2023-11-29 11:31:04 · 67963 阅读 · 9 评论 -
【愚公系列】2023年11月 Java教学课程 214-ElasticSearch(集群)
Elasticsearch集群是指一组运行Elasticsearch服务器的计算机集合。每个节点都是独立的Elasticsearch进程,它们共享数据并一起处理搜索请求。集群的规模可以根据需要进行扩展和收缩,并且可以在节点故障时自动进行故障转移。Elasticsearch集群可以提供高可用性、可伸缩性和分布式搜索等功能。ElasticSearch集群是指多个ElasticSearch节点组成的一个分布式系统。每个节点都是相互独立的,都能够接受客户端请求并处理数据。原创 2023-11-23 16:18:03 · 62427 阅读 · 18 评论 -
【愚公系列】2023年12月 Java教学课程 213-ElasticSearch(数据聚合、数据补全、数据同步)
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。原创 2023-12-08 14:53:10 · 69232 阅读 · 26 评论 -
【愚公系列】2023年11月 Java教学课程 212-ElasticSearch(批量操作和查询详解)
ElasticSearch的操作指令和描述来源于官方文档和社区中使用广泛的ElasticSearch操作手册。下面这些操作指令是ElasticSearch的基本操作,可以帮助用户进行数据的增删改查等常见操作,以及索引、映射和集群管理等高级操作。操作描述获取指定 ID 的文档创建或更新指定 ID 的文档创建一个新文档删除指定 ID 的文档查询文档批量操作列出所有索引创建或更新映射获取映射创建或更新别名获取别名PUT /index创建索引删除索引获取索引状态优化索引。原创 2023-11-23 14:24:46 · 62791 阅读 · 6 评论 -
【愚公系列】2023年11月 Java教学课程 211-ElasticSearch(Spring整合ES)
Spring整合ES的作用是使得开发人员可以在Spring应用程序中使用ES进行数据存储和检索操作。Spring Data Elasticsearch提供了对ES的访问支持,让开发人员可以使用Spring框架中的ORM技术对ES进行管理,通过提供仓库接口和实体类映射,简化了CRUD操作的编写和查询条件的创建,提高了业务开发效率。另外,Elasticsearch的Java API也支持直接使用,可以在需要的场景下直接调用API,完成更加复杂的操作。原创 2023-11-23 09:30:21 · 62510 阅读 · 10 评论 -
【愚公系列】2023年11月 Java教学课程 210-ElasticSearch(ik分词器)
分词器是一种程序,用于将文本字符串分割成具有独立含义的单元。在自然语言处理中,分词器通常用于将连续的一段文本划分为句子、词语或字符。分词器的主要作用是将非结构化的文本数据转换为结构化的数据,以便进行各种形式的文本分析和处理,如文本搜索、信息检索、自然语言理解等。分词器可以基于规则、统计模型或深度学习等技术实现。IKAnalyzer是一种开源的中文分词器,是Java语言编写的,并且是Lucene搜索引擎的中文分词器插件。原创 2023-11-22 14:42:17 · 62660 阅读 · 22 评论 -
【愚公系列】2023年11月 Java教学课程 209-ElasticSearch(脚本操作)
REST(Representational State Transfer)是一种架构风格,同时也是一种设计原则。RESTful API指符合REST设计原则的API接口。RESTful风格的API设计需要遵循以下几个原则:资源:API的基本设计单位是资源。每个资源都有一个唯一的标识符(URI),客户端通过该URI访问资源。URI应该具有清晰的结构和语义,通常使用名词来表示资源。动作:API对资源的操作应该通过HTTP中的标准方法来完成,包括GET、POST、PUT和DELETE。原创 2023-11-22 13:47:35 · 62331 阅读 · 10 评论 -
【愚公系列】2023年11月 Java教学课程 208-ElasticSearch(初识和安装)
Elasticsearch是一个开源的分布式搜索引擎和数据分析引擎,它是建立在Lucene搜索引擎库之上的。ElasticSearch被用于搜索、分析、存储、处理和可视化大量数据,其提供了丰富的查询语言、API和工具,可以快速准确地搜索和分析任意类型和大小的数据,而无需在存储或搜索方面做出任何妥协。Elasticsearch的主要特点包括高可靠性、可扩展性、实时性、全文搜索、多语言支持、聚合分析、自然语言处理和地理空间搜索等功能。原创 2023-11-22 11:22:26 · 62425 阅读 · 14 评论 -
【愚公系列】2023年11月 Java教学课程 207-RabbitMQ(集群搭建)
集群是将多个计算机或服务器连接在一起,作为单个系统运行的集合。这些计算机或服务器之间通过网络进行通信,共同承担系统的工作负载。集群的目的是提高可用性、故障容错能力、性能和可扩展性。通过将任务分配到多个计算机或服务器上,集群可以提高系统的处理能力并减少单台计算机或服务器的负载,从而提高系统的稳定性、可靠性和可用性。在集群内部,如果任意一台计算机或服务器出现故障,其他计算机或服务器可以自动接管其任务,保持整个系统的正常运行。原创 2023-11-22 08:48:32 · 62452 阅读 · 20 评论 -
【愚公系列】2023年11月 Java教学课程 206-RabbitMQ(消息可靠性保障)
消息可靠性保障是指在分布式系统中,确保消息在传输过程中不会丢失或重复处理,能够被正确地投递和处理的一种机制。在一个分布式系统中,消息可能需要经过多个节点传输和处理,但由于网络不可靠性、硬件故障等原因,消息的传输和处理很可能会出现失误,如果没有应对措施,就会导致丢失消息和重复处理消息等问题,从而对系统的可靠性和稳定性带来影响。为了保证消息的可靠性,需要采用一些机制来保障消息的传输和处理,例如消息的确认机制、持久化机制、幂等性机制等。原创 2023-11-21 17:18:44 · 62389 阅读 · 14 评论 -
【愚公系列】2023年11月 Java教学课程 205-RabbitMQ(高级特性)
RabbitMQ是一个功能强大的开源消息中间件,除了基础的消息队列功能,还提供了许多高级特性原创 2023-11-21 15:25:59 · 62682 阅读 · 2 评论 -
【愚公系列】2023年11月 Java教学课程 204-RabbitMQ(Spring整合RabbitMQ)
Spring整合RabbitMQ的主要目的是提供一个可靠、灵活的消息队列解决方案,以支持分布式应用程序的消息传递。RabbitMQ是一个开源的消息代理,它使用AMQP(高级消息队列协议)来提供可靠的消息传递。与其他消息代理相比,RabbitMQ具有以下优点:可靠性:RabbitMQ使用确认机制来确保消息的可靠传递。发送者可以轻松地检查消息是否已被正确地发送到接收者。灵活性:RabbitMQ支持多种消息传递模式,包括点对点和发布/订阅模式。这使开发人员能够选择最适合他们的应用程序的传递模式。原创 2023-11-21 09:27:13 · 62616 阅读 · 16 评论 -
【愚公系列】2023年11月 Java教学课程 203-RabbitMQ(SpringAMQP)
消息队列(Message Queue)是一种在软件系统中应用广泛的通信机制,用于在不同的模块或系统之间传递消息。消息队列的基本思想是将消息按照一定的规则存放在一个队列中,然后由接收方从队列中取走消息进行处理。消息队列介绍语言支持应用ActiveMQ开源的消息队列解决方案,支持多种协议和语言JavaJMS、Spring等RabbitMQ基于AMQP协议的开源消息队列,支持多种语言编写的客户端ErlangCelery、Django等Kafka。原创 2023-11-20 14:22:49 · 62967 阅读 · 34 评论 -
【愚公系列】2023年11月 Java教学课程 202-RabbitMQ(初识和快速入门)
消息队列(Message Queue)是一种在软件系统中应用广泛的通信机制,用于在不同的模块或系统之间传递消息。消息队列的基本思想是将消息按照一定的规则存放在一个队列中,然后由接收方从队列中取走消息进行处理。消息队列介绍语言支持应用ActiveMQ开源的消息队列解决方案,支持多种协议和语言JavaJMS、Spring等RabbitMQ基于AMQP协议的开源消息队列,支持多种语言编写的客户端ErlangCelery、Django等Kafka。原创 2023-11-20 11:04:08 · 62504 阅读 · 6 评论 -
【愚公系列】2023年11月 Java教学课程 201-Docker(Docker-Compose)
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以在单个文件中定义多个容器应用程序,然后使用单个命令启动所有容器。Compose 还允许您管理应用程序的配置和数据卷。Compose 使用一个 YAML 文件来定义组成应用程序的容器、网络和卷。YAML 文件包括每个容器的配置选项,例如要使用的 Docker 映像、要设置的环境变量和要挂载的卷。一旦您使用 Compose 定义了应用程序,就可以使用命令启动所有容器,以及任何必要的网络和卷。原创 2023-11-20 09:57:49 · 62781 阅读 · 14 评论 -
【愚公系列】2023年11月 Java教学课程 200-Docker(Dockerfile)
Dockerfile是Docker中的一个文件,它是用来定义Docker镜像的构建过程的文本文件。Dockerfile包含了一系列指令和参数,描述了如何构建Docker镜像以及在运行容器时需要执行的操作,例如安装软件包、配置环境变量、设置工作目录等等。通过Dockerfile,我们可以将应用程序和其依赖项打包成一个可移植、易于部署和跨平台的Docker镜像。Dockerfile是用于构建Docker镜像的文本文件,其中包含创建镜像所需的所有指令和命令。原创 2023-11-19 23:39:18 · 62334 阅读 · 0 评论 -
【愚公系列】2023年11月 Java教学课程 199-Docker(基本操作)
组件相关命令Docker客户端和服务端Docker镜像Docker容器Docker仓库Docker网络Docker数据卷**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。原创 2023-11-19 23:46:05 · 62618 阅读 · 16 评论 -
【愚公系列】2023年11月 Java教学课程 198-Docker(介绍和安装)
容器化是一种虚拟化技术,可以将应用程序和它们的依赖项打包成一个可移植的容器中,以便在各种环境中进行部署和运行。容器化技术将应用程序和依赖项打包在一个独立的单元中,与底层操作系统和硬件解耦,从而使应用程序能够在任何地方运行,并且具有高度可移植性和兼容性。容器化技术主要由Docker提供支持,它已成为现代软件开发和部署的主流技术之一。微服务架构中的服务拆分和部署是一个复杂而且需要高度协调的过程。随着服务数量的增加,需要管理的服务也会变得更加复杂。原创 2023-11-18 16:01:44 · 63294 阅读 · 40 评论 -
【愚公系列】2023年11月 Java教学课程 197-SpringCloud(Sleuth+Zipkin 链路追踪基本使用)
链路追踪(tracing)是指跟踪一个分布式系统中特定请求的路径和性能,以便诊断和优化系统中的问题。在链路追踪中,每个服务请求都会被分配一个唯一的标识符(例如 Trace ID),该标识符贯穿整个系统,跨越多个服务,用于标记一个请求的整个生命周期。通过观察每个服务请求中的 Trace ID,可以了解整个请求的流程和性能,并快速定位问题。链路追踪通常与分布式系统中的其他工具(例如日志聚合、实时监控和度量)一起使用,以提供全面的性能分析和故障排除。原创 2023-11-17 14:46:30 · 62723 阅读 · 12 评论 -
【愚公系列】2023年11月 Java教学课程 196-SpringCloud(Spring Cloud Stream消息驱动)
分布式消息总线是一种基于消息传递的架构,用于在分布式系统中传递消息和事件。它允许不同的应用程序和服务通过消息的方式进行通信,实现松散耦合和高度可伸缩性的应用程序。分布式消息总线通常采用发布/订阅模型,其中发布者将消息发布到主题,订阅者只接收与其订阅的主题相关的消息。与传统的点对点通信不同,分布式消息总线支持多个订阅者和广播式消息传递,从而提高了可伸缩性和弹性。常见的分布式消息总线包括Apache Kafka、RabbitMQ、ActiveMQ等。原创 2023-11-15 11:09:15 · 60538 阅读 · 10 评论 -
【愚公系列】2023年11月 Java教学课程 195-SpringCloud(Spring Cloud Config/Bus 分布式配置组件和消息总线)
在微服务架构中,每个服务都需要一些配置信息,例如数据库连接、日志级别、端口号等等。这些配置信息通常存储在配置文件中,但是在分布式的环境下,如何管理和更新这些配置文件呢?一种解决方案是使用分布式配置文件。分布式配置文件是一种可以在多个应用程序之间共享的配置文件。这些文件通常存储在配置中心,例如 ZooKeeper、Consul、etcd 等等。使用分布式配置文件的优点包括:集中管理:所有的配置信息都存储在配置中心中,管理员可以方便地对其进行修改和更新。原创 2023-11-14 17:07:15 · 60316 阅读 · 24 评论 -
【愚公系列】2023年11月 Java教学课程 194-SpringCloud(Gateway服务网关)
微服务网关是一个用于管理和控制微服务的入口,它通常实现了一系列功能,比如路由、负载均衡、安全认证、流量控制等。微服务网关的主要作用是隐藏微服务的细节,同时提供一个统一的入口,使得客户端可以方便地访问和使用微服务。微服务网关将客户端请求转发给不同的微服务,并将多个微服务的响应组装成一个完整的响应返回给客户端。因此,微服务网关也扮演着集成多个微服务的角色,它可以实现多个微服务之间的相互协作,从而为客户端提供高质量的服务。原创 2023-11-08 10:11:30 · 60330 阅读 · 12 评论 -
【愚公系列】2023年11月 Java教学课程 193-SpringCloud(Hystrix服务监控)
微服务架构中的服务监控是非常重要的一环,它可以帮助我们保持系统的稳定性、可用性和性能。服务监控主要包括以下几个方面:健康检查:每个微服务都需要提供一个健康检查接口,用于检查其是否正常运行。通常可以通过HTTP请求或者TCP连接来检查服务的健康状态。日志监控:日志监控能够帮助我们实时监控日志信息,以便及时发现系统中的异常情况。通常采用ELK等日志收集和分析系统来实现。指标监控:指标监控是实时监控系统各种性能指标的一种方式,可以帮助我们及时发现系统中的性能瓶颈和问题。原创 2023-11-14 16:01:21 · 60041 阅读 · 2 评论 -
【愚公系列】2023年11月 Java教学课程 192-SpringCloud(Hystrix服务限流)
微服务中的熔断器是一种模式,旨在提高应用程序的可靠性和可用性。它是一种机制,用于监视应用程序的运行状况,识别异常情况并在必要时自动断开对不可用服务的访问,以保护整个系统免受失败服务的影响。熔断器通过设置一个阈值来实现自动断开服务,当服务的错误率超过这个阈值时,熔断器将打开,并快速断开对这个服务的访问,以避免问题蔓延到整个系统。在断开服务的同时,熔断器会向系统发送警报,以通知管理员采取必要的措施。熔断器在微服务中的作用非常重要,它可以保证应用程序的可用性,在面对故障和异常情况时,保护系统免受影响。原创 2023-11-13 22:57:12 · 60146 阅读 · 16 评论 -
【愚公系列】2023年11月 Java教学课程 191-SpringCloud(Hystrix服务熔断)
微服务中的熔断器是一种模式,旨在提高应用程序的可靠性和可用性。它是一种机制,用于监视应用程序的运行状况,识别异常情况并在必要时自动断开对不可用服务的访问,以保护整个系统免受失败服务的影响。熔断器通过设置一个阈值来实现自动断开服务,当服务的错误率超过这个阈值时,熔断器将打开,并快速断开对这个服务的访问,以避免问题蔓延到整个系统。在断开服务的同时,熔断器会向系统发送警报,以通知管理员采取必要的措施。熔断器在微服务中的作用非常重要,它可以保证应用程序的可用性,在面对故障和异常情况时,保护系统免受影响。原创 2023-11-13 22:55:49 · 60172 阅读 · 0 评论 -
【愚公系列】2023年11月 Java教学课程 190-SpringCloud(Hystrix熔断器介绍和服务降级)
微服务中的熔断器是一种模式,旨在提高应用程序的可靠性和可用性。它是一种机制,用于监视应用程序的运行状况,识别异常情况并在必要时自动断开对不可用服务的访问,以保护整个系统免受失败服务的影响。熔断器通过设置一个阈值来实现自动断开服务,当服务的错误率超过这个阈值时,熔断器将打开,并快速断开对这个服务的访问,以避免问题蔓延到整个系统。在断开服务的同时,熔断器会向系统发送警报,以通知管理员采取必要的措施。熔断器在微服务中的作用非常重要,它可以保证应用程序的可用性,在面对故障和异常情况时,保护系统免受影响。原创 2023-11-12 22:09:26 · 60485 阅读 · 22 评论 -
【愚公系列】2023年11月 Java教学课程 189-SpringCloud(Consul注册中心)
Consul是一种开源的服务发现和配置管理工具,可以作为分布式系统的注册中心。它提供了一个中心化的服务注册和发现机制,使得服务之间的通信更加容易和可靠。Consul可以自动检测服务的状态和健康情况,并将其信息提供给其他服务使用。同时,它也提供了一些高级功能,例如分布式锁、数据中心间的服务发现和故障转移等。通过使用Consul注册中心,可以大大简化分布式系统的开发和管理工作。原创 2023-11-12 22:05:32 · 60060 阅读 · 4 评论 -
【愚公系列】2023年11月 Java教学课程 188-SpringCloud(Feign远程调用)
微服务架构中,不同的服务之间需要相互通信来完成任务。其中一种常见的通信方式是远程调用。远程调用是指在不同的服务之间进行函数调用,而这些服务运行在不同的计算机、进程或容器中。常见的微服务远程调用方式有:REST API:基于 HTTP 协议实现,通过发送 HTTP 请求来调用服务,并通过 JSON 或 XML 等格式传递数据。gRPC:基于 Google 的开源 RPC 框架实现,支持多种语言,并使用 Protocol Buffers 作为数据格式,提供了更高效的数据传输和更简单的接口定义。原创 2023-11-07 09:14:24 · 60577 阅读 · 37 评论 -
【愚公系列】2023年11月 Java教学课程 187-SpringCloud(Nacos配置管理)
微服务配置管理指的是管理微服务应用程序中使用的各种配置信息的过程,包括端口号、数据库连接、认证和授权信息等。在一个典型的微服务架构中,不同的微服务可能需要使用各自不同的配置信息,这些信息需要在应用程序中动态加载和更新,以确保各个微服务之间的协作能够顺畅进行。微服务配置管理的目标是为了简化应用程序的部署和管理过程,并提高应用程序的可维护性和可扩展性。一般来说,微服务配置管理需要实现以下几个方面的功能:集中管理:将应用程序所有的配置信息统一管理,例如使用配置中心等技术实现。原创 2023-11-06 15:28:17 · 60380 阅读 · 20 评论 -
【愚公系列】2023年11月 Java教学课程 186-SpringCloud(Nacos注册中心)
微服务注册中心是一个管理微服务的工具,可以帮助微服务在分布式系统中发现、注册和协调服务之间的交互。它是微服务架构的核心组件之一,负责维护服务注册表,提供服务发现、负载均衡、故障恢复等功能,使得微服务能够更好地运行和协作。常见的微服务注册中心有Consul、Eureka、Zookeeper等。原创 2023-11-05 19:44:43 · 60416 阅读 · 44 评论 -
【愚公系列】2023年11月 Java教学课程 185-SpringCloud(Ribbon负载均衡)
微服务负载均衡是指在微服务架构中,将请求分发给多个服务实例,以平衡负载和提高可靠性的技术。在微服务架构中,一个应用通常由多个微服务组成,每个微服务都是独立的、可扩展的,并且可以部署多个实例以处理更多的请求。微服务负载均衡通过将请求分配给最合适的服务实例来实现负载均衡,并通过健康检查和自动故障转移来提高可靠性。常见的微服务负载均衡算法包括轮询、随机、哈希和最少连接等。SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。原创 2023-11-05 19:43:42 · 60048 阅读 · 2 评论 -
【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心)
微服务注册中心是一个管理微服务的工具,可以帮助微服务在分布式系统中发现、注册和协调服务之间的交互。它是微服务架构的核心组件之一,负责维护服务注册表,提供服务发现、负载均衡、故障恢复等功能,使得微服务能够更好地运行和协作。常见的微服务注册中心有Consul、Eureka、Zookeeper等。原创 2023-11-04 17:29:00 · 60975 阅读 · 34 评论 -
【愚公系列】2023年11月 Java教学课程 183-SpringCloud(服务拆分和远程调用)
服务拆分是指将一个大型的服务系统拆分为多个小的服务子系统,每个子系统负责独立的功能模块。这样做有助于提高服务系统的灵活性、可维护性和可扩展性,因为每个子系统都可以独立部署、升级和扩展。远程调用是指在分布式系统中,不同的服务子系统之间通过网络通信实现函数或方法调用的过程。在远程调用中,调用者通过网络发送请求消息给远程服务,远程服务接收到请求后调用本地函数或方法执行,并将执行结果返回给调用者。服务拆分和远程调用是分布式系统中常见的技术手段,可以帮助开发人员构建灵活、高效和易于维护的分布式应用程序。服务拆分原则是原创 2023-11-04 16:45:05 · 60266 阅读 · 4 评论