微服务学习
文章平均质量分 73
JohnnyLin00
持续输出学习 持续发光 共同进步!
展开
-
Dubbo学习(四) —— Dubbo 原理
RPC 原理一次完整的RPC调用流程(同步调用,异步另说)如下:1)服务消费方(client)调用以本地调用方式调用服务;2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;3)client stub找到服务地址,并将消息发送到服务端;4)server stub收到消息后进行解码;5)server stub根据解码结果调用本地的服务;6)本地服务执行并将结果返回给server stub;7)server stub将返回结果打包成消息并发送至消费方;8)原创 2022-04-14 12:26:59 · 99 阅读 · 0 评论 -
Dubbo学习(三) —— Dubbo常用配置
Dubbo配置配置原则首先,从Dubbo支持的配置来源说起,默认有四种配置来源:JVM System Properties,-D 参数Externalized Configuration,外部化配置(如dubbo.xml)ServiceConfig、ReferenceConfig 等编程接口采集的配置(通过编码形式,如写个配置类标注为@Component)本地配置文件 dubbo.properties覆盖关系优先级顺序:JVM 启动-D参数优先,这样可以使用户在部署和启动时进行参数的原创 2021-07-11 23:50:44 · 1084 阅读 · 0 评论 -
Dubbo学习(二) —— SpringBoot 整合Dubbo
小项目启动zookeeper注册中心# 进入zookeeper安装目录的bin目录#启动服务端sudo zkServer.sh start#启动客户端sudo ./zkCli.sh监控中心dubbo-admin是Dubbo服务管理中心,dubbo-admin 是图形化管理页面。可以从注册中心中获取到所有的提供者/消费者进行配置管理。Dubbo admin is a spring boot application, you can start it with fat jar or in原创 2021-07-09 15:36:53 · 626 阅读 · 0 评论 -
Dubbo学习笔记(一) 分布式理论及Dubbo
分布式理论什么是分布式系统分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。分布系统(distributed system)是建立在网络之上的软件系统应用架构的发展演变单一应用架构当网站流量 很小时,只需一个 应用,将所有功能都部署在一起 ,以减少部署节点和成本。此时用于简化增删改查工作量的数据访问框架是关键。 缺点:不易于扩展,每次扩展新功能都需要将项目重新打包 成war包再重新部署到各个服务器上随着功能的不断增,系统越显臃肿。垂直应用架构按功能将系统原创 2021-07-09 11:59:36 · 102 阅读 · 2 评论 -
SpringCloud学习(十一) —— SpringCloud Alibaba Nacos服务注册和配置中心
NacosNaming Configuration Service一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Nacos就是注册中心 + 配置中心 等价于 Nacos = Eureka + Config + Bus在docker中安装和配置nacos详细步骤 服务注册nacos自带负载均衡原因: nacos整合了ribbonNacos支持AP和CP模式的切换服务配置组[johnny@localhost ~]$ hostname -i::1 127.0.0.原创 2021-07-06 16:18:27 · 115 阅读 · 0 评论 -
SpringCloud学习(九)—— SpringCloud Stream 消息驱动
为什么要引进Cloud Stream屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。什么是 Spring Cloud StreamSpring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs来与Spring Cloud Stream中的binder对象交互。通过 配置来binding(绑定),而Spring Cloud Stream的binder对象负责消息 中间件交互。目前仅支持RabbitMQ和Kafaka通过 定义绑定器Bin原创 2021-07-04 10:28:39 · 75 阅读 · 1 评论 -
SpringCloud学习(八)——消息总线Bus
Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、时间推送等。也可以当作微服务间的通信通道。什么是总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题产生的消息会被所有实例监听和消费,所以称他为消息总线。基本原理ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus),当一个服务刷新数据时,它会把这个消息放入topic中,这样监听同一.原创 2021-07-02 14:37:47 · 104 阅读 · 0 评论 -
SpringCloud学习(二) —— 服务注册、Zookeeper
Zookeepercentos 8ifconfig 看ipinet 192.168.59.131 netmask 255.255.255.0 broadcast 192.168.59.255win10 IPv4 地址 . . . . . . . . . . . . : 192.168.56.1 IPv4 地址 . . . . . . . . . . . . : 192.168.59.1桥接前:解决虚拟机不能ping通宿主机仅主机模式是通过连接器桥接模式是通过路由器[joh原创 2021-07-02 13:31:00 · 83 阅读 · 0 评论 -
Zookeeper学习(一)
概述Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目Zookeeper工作机制Zookeeper特点数据结构应用场景同一命名服务统一配置文件统一集群管理原创 2021-07-02 13:30:02 · 71 阅读 · 0 评论 -
Docker(零) ——Centos8安装Docker
以前的模式,打包war包,可能会发生:环境变量、环境配置、软件版本与运维不一致的可能。因此docker的诞生就是为 了解决这一难题。开发人员利用 docker可以消除协作编码时“在我的机器上可以正常工作,在运维却失败的问题”。Docker镜像的设计,使得Docker得以 打破过去【程序即应用】的观念。透过镜像(images)将作业系统核心除外,运作应用程序所需的系统环境,由上而下打包,达到应用程式跨平台间的无缝接轨运作。Docker理念Build ,Ship and Run Any App, Any原创 2021-07-02 13:29:28 · 162 阅读 · 0 评论 -
Docker(二) —— Docker 的底层原理
Docker是怎么工作的Docker是一个Client-Server结构的系统,Docker守护进程运行在主机 上,然后通过socke连接从客户端访问,守护进程从 客户端接收命令并管理运行在主机上的容器。为什么Docker比VM快通过上图可以知道:docker有着比虚拟机更少的抽象层。由于Docker不需要Hypervisor实现资源虚拟化,运行在docker容器上的程序直接使用的都是物理机的硬件资源。因此在CPU、内存利用率上Docker将会有明显的优势。Docker 利用的是宿主机的内核原创 2021-07-02 13:27:52 · 161 阅读 · 2 评论 -
Docker(一) —— 什么是Doker
以前的模式,打包war包,可能会发生:环境变量、环境配置、软件版本与运维不一致的可能。因此docker的诞生就是为 了解决这一难题。开发人员利用 docker可以消除协作编码时“在我的机器上可以正常工作,在运维却失败的问题”。Docker镜像的设计,使得Docker得以 打破过去【程序即应用】的观念。透过镜像(images)将作业系统核心除外,运作应用程序所需的系统环境,由上而下打包,达到应用程式跨平台间的无缝接轨运作。Docker理念Build ,Ship and Run Any App, Any原创 2021-07-01 20:37:03 · 146 阅读 · 1 评论 -
SpringCloud学习(七)—— 配置中心config
微服务面临的问题:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都要必要的配置信息才能运行,所以需要一套集中式、动态的配置管理设施。Springcloud提供了Configserver来解决这个问题。是什么SpringCloud为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。怎么玩SpringCloud config分为服务端和客户端两部分。服务端:也称为分布原创 2021-06-27 19:30:15 · 79 阅读 · 1 评论 -
SpringCloud学习(六)—— 网关GateWay
网关在微服务中的位置Zuul1.x模型Spring Cloud所集成的zuul版本,采用的是Tomcat容器,使用的是传统的Servlet IO处理模型SpringCloud Gateway传统的Web框架,像struct2、springmv 等都是 基于Servlet API 和Servlet容器运行的。但是在Servlet3.1之后增加了异步阻塞的支持。而WebFlux是一个典型非阻塞异步的框架,它的核心是基于Reactor的相关API实现的。相对于传统的web框架来说,它可以运行在诸如原创 2021-06-27 15:16:53 · 481 阅读 · 2 评论 -
SpringCloud学习(五)—— Hystrix 断路器
Hystrix前言分布式系统面临的问题:多个微服务之间调用时,如果扇出的链路上某个微服务的调用时间过长或者不可用,对于这个微服务的调用就会占用越来越多的系统资源,导致系统发生更多的级联故障,进而引起系统崩溃,发生所谓的“雪崩效应”。因此需要对故障和延迟进行管理和隔离,以便当个依赖关系的失败,不会影响整个应用程序或 系统。这也是Hystrix的来源。什么是HystrixHystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败(如超时、异常等)。 Hy原创 2021-06-26 18:12:17 · 126 阅读 · 0 评论 -
SpringCloud学习(四)—— 负载均衡ribbon
RibbonSpring Cloud Ribbon主要功能是提供客户端的 软件负载均衡算法和服务调用。 Ribbon客户组件提供一系列完善的配置项如连接超时、重试等。简单地说,就是在配置文件中列出Load Balancer(LB)后面的所有机器 ,Ribbon会自动的帮助你基于某种规则(如简单轮询、随机连接等)去 连接这些机器。Ribbon目前进入维护模式,未来的替换方案可能是Load Balancer负载均衡(LB)负载均衡是什么简单的说,就是将用户的请求平摊的分配到 多个服务上,从而达到系统原创 2021-06-24 22:18:35 · 131 阅读 · 1 评论 -
SpringCloud学习(三) ——consul 服务注册与发现
consulconsul是一套开源的分布式服务发现和 配置管理系统,由Hashi公司用Go语言开发,提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格。优点基于raft协议,比较间接;支持健康检查,同时支持HTTP和DNS协议,支持跨数据中心的WAN集群,提供图形界面。跨平台,支持Linux、Mac、Windows作用服务发现: 提供HTTP和DNS两种发现方式健康监测: 支持多种方式,HTTP、TCP、Do原创 2021-06-24 11:18:32 · 127 阅读 · 0 评论 -
zookeeper学习(零) —— 基础环境安装
环境说明VMware workstation版本: 16.x主机操作系统: win10虚拟机操作系统: centos安装jdk踩的小坑java -version 提示“无法执行二进制文件……”原因正式解压jdk安装包到指定路径 /opt/javasudo tar -zxvf jdk-8u291-linux-aarch64.tar.gz -C /opt/java/修改环境变量jdk13的jdk和jre是在一起的,写环境变量vim /etc/profile,在文件末尾原创 2021-06-23 00:35:36 · 270 阅读 · 1 评论 -
SpringCloud学习(一) —— 微服务、Eureka
微服务什么是 微服务?微服务的核心是将传统的一站式应用,根据业务拆分成一个 一个的服务,彻底地去耦合,每一个微服务体用单个业务功能的服务,一个服务做一件事。All In One 单机系统 ,该系统中包含很多个模块,比如说一个电商系统工程里面有商品、订单、库存各个子系统,而这些子系统都 糅合在一个大的项目中,没有拆分。分布式系统各个模块/服务,各自 独立出来系统按模块拆分的好处:拆分各自独立出来,降低耦合度微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题,提供落地对应服务的原创 2021-06-22 13:18:59 · 113 阅读 · 0 评论