随笔分类 -  SpringCloud微服务

摘要:一、 MQ (MessageQueue):消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。 RabbitMQ是基于Erlang语言开发的开源消息通信中间件。 二、 安装RabbitMQ 拉取RabbitMQ镜像:docker pull rabbitmq:3-manageme 阅读全文
posted @ 2023-06-25 19:52 佛系粥米 阅读(17) 评论(0) 推荐(0)
摘要:一、同步调用 同步调用的调用链: 调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和 调用链中的每个服务在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系统资源 如果服务提供者出现问题,所有调用方都会跟着出问题,如同多米诺骨牌一样,迅速导致整个微服务群故障 阅读全文
posted @ 2023-06-25 19:32 佛系粥米 阅读(342) 评论(0) 推荐(0)
摘要:一、 镜像仓库( Docker Registry )有公共的和私有的两种形式: 1、公共仓库:例如Docker官方的 Docker Hub,国内也有一些云服务商提供类似于 Docker Hub 的公开服务,比如 网易云镜像服务、DaoCloud 镜像服务、阿里云镜像服务等。 2、私有仓库:用户还可以 阅读全文
posted @ 2023-06-25 17:23 佛系粥米 阅读(753) 评论(0) 推荐(0)
摘要:Docker Compose基本介绍 Docker Compose可以基于Compose文件帮助快速的部署分布式应用,而无需手动一个个创建和运行容器! Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 Compose文件类似于多个docker run命令集合来指导容器运行。 阅读全文
posted @ 2023-06-25 16:59 佛系粥米 阅读(34) 评论(0) 推荐(0)
摘要:一、镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 镜像是分层结构,每一层称为一个Layer: 入口(Entrypoint): 镜像运行入口,一般是程序启动的脚本和参数 层( Layer):在BaseImage基础上添加安装包、依赖、配置等,每次操作都形成新的一层。 基础 阅读全文
posted @ 2023-06-23 20:44 佛系粥米 阅读(30) 评论(0) 推荐(0)
摘要:在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录: docker run \ --name mn \ -v html:/root/html \ -p 8080:80 nginx \ docker run :就是创建并运行容器 -- name mn :给容器起个名字叫mn -v htm 阅读全文
posted @ 2023-06-22 17:14 佛系粥米 阅读(32) 评论(0) 推荐(0)
摘要:容器与数据耦合的问题 1、不便于修改:当要修改Nginx的html内容时,需要进入容器内部修改,很不方便。 2、数据不可复用:在容器内的修改对外是不可见的。所有修改对新创建的容器是不可复用的。 3、升级维护困难:数据在容器内,如果要升级容器必然删除旧容器,所有数据都跟着删除了。 一、数据卷:数据卷( 阅读全文
posted @ 2023-06-22 16:22 佛系粥米 阅读(28) 评论(0) 推荐(0)
摘要:容器相关命令: (1)docker run:创建容器并让容器处于运行状态 (2)docker pause:运行到暂停 (3)docker unpause:从暂停到运行 (4)docker stop:运行到停止 (5)docker start:停止到运行 【暂停是挂起,停止是杀死进程】 (6)dock 阅读全文
posted @ 2023-06-22 16:12 佛系粥米 阅读(33) 评论(0) 推荐(0)
摘要:一、镜像相关命令 镜像名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是latest,代表最新版本的镜像 镜像操作命令:docker --help查看docker命令 构建镜像:将本地的DockerFile文件使用docker build构建成镜像 查看镜像:d 阅读全文
posted @ 2023-06-21 21:43 佛系粥米 阅读(58) 评论(0) 推荐(0)
摘要:虚拟机Linux操作系统中安装Docker Docker CE支持64位版本CentOS 7,并且要求内核版本不低于3.10,CentOS 7满足最低内核要求,所以在CentOS 7中安装Docker。 (1)如果之前安装过旧版本的Docker,可以使用下面命令卸载: yum remove dock 阅读全文
posted @ 2023-06-21 21:23 佛系粥米 阅读(16) 评论(0) 推荐(0)
摘要:一、镜像和容器 镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。 容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。 二、Docker和DockerHub【镜像共享】 Docker 阅读全文
posted @ 2023-06-21 20:53 佛系粥米 阅读(18) 评论(0) 推荐(0)
摘要:虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。 Docker和虚拟机的差异: 1、docker是一个系统进程;虚拟机是在操作系统中的操作系统 2、docke 阅读全文
posted @ 2023-06-21 20:43 佛系粥米 阅读(28) 评论(0) 推荐(0)
摘要:一、项目部署的问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 Docker如何解决依赖的兼容问题的? 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包 将每个应用放到一个隔离容器去运行,避免互相干扰。 阅读全文
posted @ 2023-06-21 20:41 佛系粥米 阅读(19) 评论(0) 推荐(0)
摘要:跨域:域名不一致就是跨域,主要包括: 域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com 域名相同,端口不同:localhost:8080和localhost8081 跨域问题:浏览器禁止请求的发起者与服务端发生跨域 阅读全文
posted @ 2023-06-21 19:56 佛系粥米 阅读(142) 评论(0) 推荐(0)
摘要:请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter 请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器 每一个过滤器都必须指定一个int类型的order值,or 阅读全文
posted @ 2023-06-21 19:41 佛系粥米 阅读(141) 评论(0) 推荐(0)
摘要:GatewayFilter:是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理: 过滤器工厂 GatewayFilterFactory,Spring提供了31种不同的路由过滤器工厂。 例:给所有进入userservice的请求添加一个请求头:Truth=itcast is fre 阅读全文
posted @ 2023-06-21 19:36 佛系粥米 阅读(63) 评论(0) 推荐(0)
摘要:网关路由可以配置的内容包括: 1、路由id:路由唯一标示 2、uri:路由目的地,支持lb和http两种 3、predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地 4、filters:路由过滤器,处理请求或响应 在配置文件中写的断言规则只是字符串,这些字符串会被Predica 阅读全文
posted @ 2023-06-21 17:11 佛系粥米 阅读(37) 评论(0) 推荐(0)
摘要:搭建网关服务步骤: 1、创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖: <!--网关依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring- 阅读全文
posted @ 2023-06-21 17:02 佛系粥米 阅读(116) 评论(0) 推荐(0)
摘要:不是所有的微服务都会让用户直接访问,因此需要添加一个网关。 网关功能: 1、身份认证和权限校验 2、服务路由【将请求转发给具体的微服务处理】、负载均衡 3、请求限流 【防止系统过载崩溃】 网关的技术实现 在SpringCloud中网关的实现包括两种:gateway、zuul Zuul是基于Servl 阅读全文
posted @ 2023-06-21 16:38 佛系粥米 阅读(49) 评论(0) 推荐(0)
摘要:Feign的最佳实践 方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。 orderservice中的UserClient和userservice的Controller中的queryById基本相同,因此可以定义父接口作为统一标准 但是Feign 阅读全文
posted @ 2023-06-21 16:04 佛系粥米 阅读(138) 评论(0) 推荐(0)