10 2022 档案
摘要:1 准备工作 RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。 下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.
阅读全文
摘要:1 为什么要用MQ ? 消息队列是一种“先进先出”的数据结构 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验
阅读全文
摘要:1 JavaSE 黑马程序员全套Java教程_Java基础入门视频教程,零基础小白自学Java入门教程_哔哩哔哩_bilibili stage1 day01-java基础语法 day02-java基础语法 day03-switch&循环语句 day04-IDEA工具&数组 day05-方法 day0
阅读全文
摘要:1 Optional介绍 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。 Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值
阅读全文
摘要:回顾之前《JavaSE-23.2》: https://www.cnblogs.com/yppah/p/14900824.html https://www.cnblogs.com/yppah/p/14900829.html https://www.cnblogs.com/yppah/p/1490083
阅读全文
摘要:回顾之前《JavaSE-23.3》: https://www.cnblogs.com/yppah/p/14875254.html https://www.cnblogs.com/yppah/p/14875479.html https://www.cnblogs.com/yppah/p/1487549
阅读全文
摘要:注意端口开放 1 ZK集群Leader选举 Leader选举: Serverid:服务器ID 比如有三台服务器,编号分别是1,2,3。 编号越大在选择算法中的权重越大。 Zxid:数据ID 服务器中存放的最大数据ID.值越大说明数据 越新, 在选举算法中数据越新权重越大。 在Leader选举的过程中
阅读全文
摘要:1 分布式锁 1.1 概念 1.2 原理 2 案例:模拟12306售票 2.1 Curator实现分布式锁API 在Curator中有五种锁方案: InterProcessSemaphoreMutex:分布式排它锁(非可重入锁) InterProcessMutex:分布式可重入排它锁 InterPr
阅读全文
摘要:# 1 概念  > 1 数据模型 2 命令操作 2.1 服务端 2.2 客户端 启动客户端 注意:连接本机时可以省略后边两部分,直接./zkCli.sh即可 命令quit退
阅读全文
摘要:1 集群容错 官方文档:集群容错 | Apache Dubbo 集群容错模式: Failover Cluster:失败重试。默认值。当出现失败,重试其它服务器 ,默认重试2次,使用 retries 配置。一般用于读操作 Failfast Cluster :快速失败,只发起一次调用,失败立即报错。通常
阅读全文
摘要:1 多版本 灰度发布:当出现新功能时,会让一部分用户先使用新功能,用户反馈没问题时,再将所有用户迁移到新功能。 dubbo 中使用version 属性来设置和调用同一个接口的不同版本 package com.yppah.service.impl; import com.yppah.pojo.User
阅读全文
摘要:1 what is Fegin ? Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。 Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegi
阅读全文
摘要:1 负载均衡介绍 通俗的讲, 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。 根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡 而客户端负载均衡指的是发生在服务请求
阅读全文
摘要:1 服务治理介绍 先来思考一个问题 通过上一章的操作,我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址(ip,端口)等硬编码到了代码中,这种做法存在许多问题: 一旦服务提供者地址变化,就需要手工修改代码 一旦是多个服务提供者,无法实现负载均衡功能 一旦服务变得越来越多,人工维护调用关
阅读全文
摘要:1 微服务调用 订单微服务是服务消费者;商品微服务是服务提供者 1.1 完善商品查询相关代码 package com.yppah.dao; import com.yppah.domain.Product; import org.springframework.data.jpa.repository.
阅读全文
摘要:1. 案例准备 以电商项目中的商品、订单、用户为案例进行学习 1.1 技术选型 maven:3.3.9 数据库:MySQL 5.7 持久层: SpingData Jpa 其他: SpringCloud Alibaba 技术栈 1.2 模块设计 springcloud-alibaba 父工程 shop
阅读全文
摘要:1 课程介绍 https://www.bilibili.com/video/BV1R7411774f 2 系统架构演变 3 微服务架构介绍 3.1 微服务架构的常见问题 这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除]) 这么多小服务,他们之间如何通讯?(restful rp
阅读全文
摘要:1 地址缓存 2 超时 2.1 2.2 package com.yppah.service.impl; import com.yppah.pojo.User; import com.yppah.service.UserService; import org.apache.dubbo.config.a
阅读全文
摘要:1 理论 消费者A和消费者B分别部署在两台机器上 一般将User类定义为独立模块,A模块和B模块都通过maven依赖于该模块即可 dubbo 内部已经将序列化和反序列化的过程内部封装了 只需要在定义pojo类时实现Serializable接口即可 一般会定义一个公共的pojo模块,让生产者和消费者都
阅读全文
摘要:https://www.wenjuan.com/assess/exam/exam_result/619b366ffd631ed4d9b16cef?pid=619b366ffd631ed4d9b16cef&rid=6348ed16174d2392f88a2f76&from_source=answer
阅读全文
摘要:1 dubbo-admin简介 dubbo官方的monitor不太好用,apache的dubbo-admin项目具备monitor功能,在此学习一下 dubbo-admin 管理平台,是图形化的服务管理页面 从注册中心中获取到所有的提供者 / 消费者进行配置管理 路由规则、动态配置、服务降级、访问控
阅读全文
摘要:框架 提供者和消费者理论上是两个项目,此处用同一项目中两个模块进行模拟 实现步骤 ①创建服务提供者Provider模块 ②创建服务消费者Consumer模块 ③在服务提供者模块编写 UserServiceImpl 提供服务 ④在服务消费者中的 UserController 远程调用UserServi
阅读全文
摘要:1 Dubbo概念 Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。 致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。 官网:http://dubbo.apache.org 2 Dubbo架构 节点角色说明: Provider**:**暴
阅读全文
摘要:> zk课程详细教程:https://github.com/yub4by/zkmd/blob/main/zk.md # 1 Zookeeper - Dubbo官方推荐使用Zookeeper作为注册中心 - [Zookeeper | Apache Dubbo](https://dubbo.apache
阅读全文