10 2021 档案

摘要:测试发送Object类型消息 在SpringAMQP的发送方法中,接收消息的类型是Object,也就是说我们可以发送任意对象类型的消息,SpringAMQP会帮我们序列化为字节后发送。 consumer中利用@Bean声明一个队列 @Bean public Queue objectQueue(){ 阅读全文
posted @ 2021-10-29 13:32 一杯水M 阅读(250) 评论(0) 推荐(0) 编辑
摘要:TopicExchange与DirectExchange类似,区别在于routingKey必须是多个单词的列表,并且以 . 分割。Queue与Exchange指定BindingKey时可以使用通配符:#:代指0个或多个单词*:代指一个单词 TopicExchange的使用 实现思路如下: 在cons 阅读全文
posted @ 2021-10-29 10:39 一杯水M 阅读(106) 评论(0) 推荐(0) 编辑
摘要:Direct Exchange 会将接收到的消息根据规则路由到指定的Queue,因此称为路由模式(routes)。 每一个Queue都与Exchange设置一个BindingKey 发布者发送消息时,指定消息的RoutingKey Exchange将消息路由到BindingKey与消息Routing 阅读全文
posted @ 2021-10-29 10:15 一杯水M 阅读(140) 评论(0) 推荐(0) 编辑
摘要:实现思路如下:在consumer服务中,利用代码声明队列、交换机,并将两者绑定在consumer服务中,编写两个消费者方法,分别监听fanout.queue1和fanout.queue2在publisher中编写测试方法,向fanout发送消息 在consumer服务声明FanoutExchange 阅读全文
posted @ 2021-10-28 17:09 一杯水M 阅读(111) 评论(0) 推荐(0) 编辑
摘要:发布订阅模式:将同一消息发送给多个消费者。实现方式是加入了exchange(交换机) 注意:exchange负责消息路由,而不是存储,路由失败则消息丢失 常见exchange类型包括: Fanout:广播 Direct:路由 Topic:话题 阅读全文
posted @ 2021-10-28 16:57 一杯水M 阅读(65) 评论(0) 推荐(0) 编辑
摘要:Work queue,工作队列,可以提高消息处理速度,避免队列消息堆积 模拟WorkQueue,实现一个队列绑定多个消费者 基本思路如下: 在publisher服务中定义测试方法,每秒产生50条消息,发送到simple.queue 在consumer服务中定义两个消息监听者,都监听simple.qu 阅读全文
posted @ 2021-10-28 16:44 一杯水M 阅读(73) 评论(0) 推荐(0) 编辑
摘要:SpringAMQP的官方地址:https://spring.io/projects/spring-amqp AMQP:Advanced Message Queuing Protocol,用于在应用程序之间传递业务消息的开放标准,该协议与语言和平台无关,更符合微服务中独立性的要求。 SpringAM 阅读全文
posted @ 2021-10-28 16:01 一杯水M 阅读(243) 评论(0) 推荐(0) 编辑
摘要:官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色: publisher:消息发布者,将消息发送到队列queue queue:消息队列,负责接受并缓存消息 consumer:订阅队列,处理队列中的消息 工程搭建 创建父工程(依赖版本管理、添加子工程共用依赖) 添加依赖(sp 阅读全文
posted @ 2021-10-28 14:20 一杯水M 阅读(53) 评论(0) 推荐(0) 编辑
摘要:RabbitMQ安装 官网地址:https://www.rabbitmq.com/ 单机部署 下载镜像 方式一:在线拉取 进入docker hub镜像仓库地址:https://hub.docker.com/ 搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们选择带有“mangem 阅读全文
posted @ 2021-10-28 10:47 一杯水M 阅读(77) 评论(0) 推荐(0) 编辑
摘要:同步通讯 同步通讯相当于打电话,两个人建立通话连接后,可以实时获取信息,并且别人无法介入此次通话。 同步调用的问题 微服务间基于Feign的调用就属于同步方式 耦合度高:每次加入新的需求,都要修改原来的代码 性能下降:调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和。 资 阅读全文
posted @ 2021-10-28 10:09 一杯水M 阅读(45) 评论(0) 推荐(0) 编辑
摘要:搭建私有镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址:https://hub.docker.com/_/registry 简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能 阅读全文
posted @ 2021-10-27 10:42 一杯水M 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:需求:访问user-service,user-service需要启动nacos服务,mysql服务 项目地址: 链接:https://pan.baidu.com/s/1Kx33bT_ngkoi731QE4gkPQ提取码:25f5 Nacos服务 https://hub.docker.com/ MyS 阅读全文
posted @ 2021-10-25 16:19 一杯水M 阅读(255) 评论(0) 推荐(0) 编辑
摘要:镜像结构 BaseImage层:包含基本的系统函数库、环境变量、文件系统 Entrypoint:入口,是镜像中应用启动的命令 其它:在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置 Dockerfile语法 Dockerfile就是一个文本文件,其中包含一个个的指令(Instr 阅读全文
posted @ 2021-10-25 14:18 一杯水M 阅读(164) 评论(0) 推荐(0) 编辑
摘要:容器与数据耦合的问题 不便于修改:当我们要修改Nginx的html内容时,需要进入容器内部修改,很不方便。 数据不可复用:在容器内的修改对外是不可见的。所有修改对新创建的容器是不可复用的。 升级维护困难:数据在容器内,如果要升级容器必然删除旧容器,所有数据都跟着删除了 数据卷(volume)是一个虚 阅读全文
posted @ 2021-10-22 17:10 一杯水M 阅读(124) 评论(0) 推荐(0) 编辑
摘要:docker exec 进入容器执行命令 docker logs 查看容器运行日志 -f 参数可以持续查看日志 docker ps 查看所有运行的容器及状态 docker rm 删除指定容器 创建运行一个Nginx容器 去docker hub查看Nginx的容器运行命令 docker run --n 阅读全文
posted @ 2021-10-22 15:14 一杯水M 阅读(48) 评论(0) 推荐(0) 编辑
摘要:镜像名称一般分两部分组成:[repository]:[tag]。在没有指定tag时,默认是latest,代表最新版本的镜像 镜像操作 获取镜像三种方式: jar文件通过Dockerfile构建镜像 加载压缩包为镜像 从镜像服务器拉取镜像 从DockerHub中拉取一个nginx镜像并查看 首先去镜像 阅读全文
posted @ 2021-10-22 15:10 一杯水M 阅读(69) 评论(0) 推荐(0) 编辑
摘要:官方文档:https://docs.docker.com/engine/install/centos/ 卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ d 阅读全文
posted @ 2021-10-22 14:00 一杯水M 阅读(709) 评论(0) 推荐(0) 编辑
摘要:项目部署的问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 Docker如何解决依赖的兼容问题的? 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包 将每个应用放到一个隔离容器去运行,避免互相干扰 Doc 阅读全文
posted @ 2021-10-22 13:45 一杯水M 阅读(60) 评论(0) 推荐(0) 编辑
摘要:跨域:域名不一致就是跨域,主要包括: 域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com 域名相同,端口不同:localhost:8080和localhost8081 跨域问题:浏览器禁止请求的发起者与服务端发生跨域 阅读全文
posted @ 2021-10-21 15:35 一杯水M 阅读(374) 评论(0) 推荐(0) 编辑
摘要:GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理 Spring提供了31种不同的路由过滤器工厂 名称 说明 AddRequestHeader 给当前请求添加一个请求头 RemoveRequestHeader 移除请求中的一个请求头 AddRespons 阅读全文
posted @ 2021-10-21 10:56 一杯水M 阅读(1629) 评论(0) 推荐(0) 编辑
摘要:网关路由可以配置的内容包括: 路由id:路由唯一标示 uri:路由目的地,支持lb和http两种 predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地 filters:路由过滤器,处理请求或响应 配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factor 阅读全文
posted @ 2021-10-21 10:31 一杯水M 阅读(431) 评论(0) 推荐(0) 编辑
摘要:网关的作用 在没学习网关之前我们的项目搭建框架如图,客户端可以直接访问微服务,微服务之间通信通过Feign远程调用访问服务,真实微服务开发中,不可能是任何人都可以访问所有微服务,就要在访问微服务之前,添加一些过滤和认证授权的功能 网关作用: 对用户请求做身份认证、权限校验 将用户请求路由到微服务,并 阅读全文
posted @ 2021-10-20 13:44 一杯水M 阅读(377) 评论(0) 推荐(0) 编辑
摘要:方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准 问题: 服务紧耦合 父接口参数列表中的映射不会被继承 方式二(抽取):将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用 阅读全文
posted @ 2021-10-18 15:03 一杯水M 阅读(810) 评论(0) 推荐(0) 编辑
摘要:Feign底层的客户端实现: URLConnection:默认实现,不支持连接池 Apache HttpClient :支持连接池 OKHttp:支持连接池 因此优化Feign的性能主要包括: 使用连接池代替默认的URLConnection 日志级别,最好用basic或none 连接池配置 Feig 阅读全文
posted @ 2021-10-18 11:17 一杯水M 阅读(680) 评论(0) 推荐(0) 编辑
摘要:Feign运行自定义配置来覆盖默认配置,可以修改的配置如下 类型 作用 说明 feign.Logger.Level 修改日志级别 包含四种不同的级别:NONE、BASIC、HEADERS、FULL feign.codec.Decoder 响应结果的解析器 http远程调用的结果做解析,例如解析jso 阅读全文
posted @ 2021-10-18 10:40 一杯水M 阅读(596) 评论(0) 推荐(0) 编辑
摘要:Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign 其作用:帮助我们优雅的实现http请求的发送 Feign的使用步骤 添加依赖 <dependency> <groupId>org.springframework.cloud</gr 阅读全文
posted @ 2021-10-18 10:00 一杯水M 阅读(535) 评论(0) 推荐(0) 编辑
摘要:Nacos集群的思想:一个Nacos请求通过Nginx的反向代理完成负载均衡获取Nacos集群节点,通过数据库集群完成Nacos数据同步 Nacos集群的结构: Nacos集群搭建 搭建集群的基本步骤: 下载Nacos 搭建数据库,初始化数据库表结构 配置nacos 启动nacos集群 nginx反 阅读全文
posted @ 2021-10-15 16:38 一杯水M 阅读(2510) 评论(0) 推荐(0) 编辑
摘要:Nacos注册中心提供服务注册发现,在真实开发中一个项目会有很多微服务实例,每个微服务实例中都有自己独立的配置,如果有一个配置是多个微服务中都需要使用的话,就需要配置每一个微服务实例,并且还要重启这些微服务实例。 Nacos不仅有注册中心还有配置管理,Nacos配置管理可以完成统一配置、配置热更新 阅读全文
posted @ 2021-10-15 11:18 一杯水M 阅读(533) 评论(0) 推荐(0) 编辑
摘要:服务消费者通过定期服务拉取和服务列表变更的消息推送模式,服务列表更新更及时,并缓存 临时实例 服务启动后默认是临时实例 服务提供者通过心跳方式做健康检测 临时实例不正常会被剔除 非临时实例 修改配置 spring.cloud.nacos.discovery.ephemeral: false #是否是 阅读全文
posted @ 2021-10-14 10:39 一杯水M 阅读(274) 评论(0) 推荐(0) 编辑
摘要:nacos服务分级存储模型 namespace:相当于环境,开发环境 测试环境 生产环境 ,每个空间里面的配置是独立的 (默认是 public) group:这个类似我们的项目,比如 风控系统 ,交易系统, 就是不同的项目 创建namespace,用来隔离不同环境 配置application.yml 阅读全文
posted @ 2021-10-14 09:58 一杯水M 阅读(425) 评论(0) 推荐(0) 编辑
摘要:服务分级存储模型 服务:开发子模块(相当于Object) 实例:启动子模块(相当于new Object) 在没有服务分级存储模型之间,假设所有的实例都在一个服务器机房中,如果服务器机房出现问题,整个服务就无法使用,再来看服务分级存储模型就会有一个直观的认识,服务分级存储模型目的是为了容灾,其思想就是 阅读全文
posted @ 2021-10-14 08:45 一杯水M 阅读(434) 评论(0) 推荐(0) 编辑
摘要:创建maven项目,父工程 File=>New => Project... pom配置 使用SpringBoot,需要添加父级:SpringBoot:2.3.9.RELEASE Nacos依赖管理 <dependency> <groupId>com.alibaba.cloud</groupId> < 阅读全文
posted @ 2021-10-13 10:05 一杯水M 阅读(129) 评论(0) 推荐(0) 编辑
摘要:Windows下安装Nacos 下载 GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载页:https://github.com/alibaba/nacos/releases 解压 目录说明: - bin:启动脚本- conf:配置文 阅读全文
posted @ 2021-10-12 16:35 一杯水M 阅读(195) 评论(0) 推荐(0) 编辑
摘要:负载均衡策略 Ribbon的负载均衡规则是一个叫做IRule的接口来定义的,每一个子接口都是一种规则: RoundRobinRule 简单轮询服务列表来选择服务器 AvailabilityFilteringRule 对以下两种服务器进行忽略 (1)在默认情况下,这台服务器如果3次连接失败,这台服务器 阅读全文
posted @ 2021-10-12 14:09 一杯水M 阅读(805) 评论(1) 推荐(0) 编辑
摘要:@Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } RestTemplate对象加上LoadBalanced注解就是作了个标记,标记着RestTemplate对象发起的Http请求 阅读全文
posted @ 2021-10-12 11:16 一杯水M 阅读(226) 评论(0) 推荐(0) 编辑
摘要:服务远程调用问题 public Order queryById(Long id){ Order order = orderMapper.findById(id); String url = "http://localhost:8081/user/"+order.getUserId(); User u 阅读全文
posted @ 2021-10-11 17:20 一杯水M 阅读(330) 评论(0) 推荐(0) 编辑
摘要:服务拆分注意事项 单一职责:不同微服务,不要重复开发相同业务 数据独立:不要访问其它微服务的数据库 面向服务:将服务暴露为接口,供其它微服务调用 简单项目 需求:查询订单信息时将用户信息也查询 微服务分析: 需要两个服务UserService(操作用户信息)、OrderService(操作订单信息) 阅读全文
posted @ 2021-10-11 09:00 一杯水M 阅读(541) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示