分布式架构
文章平均质量分 70
分布式
石头城程序猿
架构师的成长之旅,寂寞,孤独,与码为伴!
展开
-
Apache架构师都遵循的30条设计原则
Srinath 通过不懈的努力最终总结出了 30 条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或部门。Srinath 认为架构师应该扮演的角色是一个引导者,讨论发起者,花草修建者,而不是定义者和构建者。Srinath 为了解决团队内部的架构纷争和抉择,制定了以下 30 条原则,这些原则被成员们广泛认可,也成为了新手架构师的学习途径。作者:Srinath,科学家,软件架构师。Apache Axis2 项目的联合创始人,Apache Software 基金会的成员原创 2022-04-25 09:01:36 · 182 阅读 · 0 评论 -
几张架构图阐述微服务架构治理相关知识点
微服务架构的技术点:超时时间设置 接口重试机制 流量QPS限流 请求熔断处理 请求降级处理今天给大家分享一下以上相关的知识点,通过微服务系统之间RPC通信的方式,以架构图的形式给大家展开介绍:1、超时时间设置:假设:应用访问业务系统A,业务系统A调用业务系统B,整个链路都没有设置超时时间timeout,此刻如果业务系统B某个pod响应特别慢,会产生一个啥现象呢?如下图所示,业务系统A会因为线程耗完而僵死,导致整个业务系统A不可用。通过抓包或者使用jvm分析工具,可以分.原创 2022-04-20 21:30:40 · 720 阅读 · 0 评论 -
微服务监控专题-SpringBoot集成普罗米修斯prometheus+Grafana数据展示
1、SpringBoot环境配置: pom.xml 注意:springboot的版本2.2.6版本。2.3.X版本不支持集成,大家别趟坑了。<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> ...原创 2020-12-09 00:52:43 · 4148 阅读 · 3 评论 -
微服务架构-dubbo源码解读-服务注册流程
一、前言 最近心血来潮,把dubbo的源码又翻了一遍,写些读后感,供大家共同进步,这里的源码解读,用的dubbo2.7.8的版本,需要下载源码的小伙伴,可以到github上面下载源码:https://github.com/apache/dubbo;本篇文章,重点先讲一下服务的注册流程,阅读源码前,先想一下服务注册的需求,源码的入口??二、dubbo的服务注册的流程1、阅读前的摸索,不要懵逼,跟着我的节奏一起:1、首先,我们先回顾一下,如何配置一个dubbo服务:@...原创 2020-08-21 00:23:14 · 823 阅读 · 0 评论 -
微服务框架-Dubbo整合SpringBoot框架-宝典
一、前言: 最近写了一篇SpringCloud整合Dubbo的技术贴,本篇内容有点类似,Dubbo本身就是微服务框架,整合SpringBoot之后,可以吸收SpringBoot框架的自动装配功能; Dubbo集成SpringBoot框架的目的,是为了实现Springcloud的标准,如果想在SpringCloud生态中集成阿里的组件,整合比较复杂,接下来,我们先介绍一下如何整合:二、代码示例:1、代码结构:2、 创建maven...原创 2020-08-16 00:09:34 · 445 阅读 · 0 评论 -
微服务框架-SpringCloud整合Dubbo宝典
一、前言: 首先,在介绍SpringCloud整合Dubbo框架之前,先思考一个问题,SpringCloud,Dubbo都是比较优秀的微服务框架,为啥两者之间还需要整合???? 两者从通信的性能上来分析,SpringCloud的通信才feign组件,底层实现是rest,从OSI 7层模型上来看rest属于应用层;Dubbo框架的通信协议采用RPC协议,属于传输层协议,性能上自然比rest高,具体对比,参考下面这个表格: RPC...原创 2020-08-14 23:57:05 · 1030 阅读 · 0 评论 -
微服务框架-dubbo整合nacos框架
一、前言: dubbo框架,注册中心的技术选型常见有redis,zookeeper ,本篇文章介绍如何整理当前比较火热的nacos框架。 nacos框架安装,可以参考:https://mp.csdn.net/console/editor/html/107902058二、框架整合: 1) 服务端改造: 使用nacos <dubbo:registry address="nacos://192.168.213.102:8848...原创 2020-08-09 23:55:22 · 4155 阅读 · 3 评论 -
微服务框架-dubbo-入门
一、前言: 本篇文章,主要带没有接触过dubbo框架的同学,学习一下dubbo的入门,正所谓万事开头难,先帮大家揭开dubbo的面纱。 DUBBO是一个分布式微服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。 d...原创 2020-08-09 23:38:46 · 1214 阅读 · 0 评论 -
微服务-配置中心环境准备-nacos安装
一、前言: nacos 作为阿里微服务框架中的一员,扮演着配置中心的角色,本篇文章,主要是介绍在docker环境下安装ancos,为后续的微服务框架做准备。二、nacos安装: 前置条件:VMware虚拟机,docker环境: 下载镜像:doker pull nacos/naocs-server 启动容器: docker run -d --name nacos-server-8848 -p 8848:8848 -e MODE...原创 2020-08-09 23:08:32 · 1399 阅读 · 0 评论 -
CAP理论-分布式系统的基础理论-------CP、AP案例场景分析
一、前言: CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性,只能满足其中两个特性,一致性、可用性、分区容错性三者不可兼得: 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance) 如何做到分布式系统具备高可用?? 常规的思路就是冗余,增加节点,当A节点挂掉,还有B节点提供服务,但是节点多了之后,数据一致性又很难保障了!!! 如...原创 2020-07-10 19:40:15 · 2979 阅读 · 0 评论 -
微服务架构-基于注解RPC通信的案例分享
一、前言简单聊一下RPC(Remote Procedure Call) ,远程过程调用,底层基于TCP/IP通信,下图是简单的微服务架构,会员服务需要查询当前会员下面的订单信息,则会涉及会员服务调用订单服务:1、用户终端访问主站首页;2、用户登陆,调用会员的登陆验证服务;3、用户查看我的订单,调用会员服务的订单列表查询-->这时涉及会员服务调用订单服务; 技术选型: 1)可以采用HTTP访问,https://域名/接口/参数 2)可以采用...原创 2020-06-25 00:56:38 · 596 阅读 · 0 评论 -
分布式架构底层磐石-高并发演进过程BIO、NIO、EPOLL深入分析
一、BIO(Blocked IO 阻塞IO):客户端多并发请求时,服务端的TPS是1,如何提升服务端的并发数??解决上面的单线程问题,提升服务端的TPS,做以下改良:这个版本,依然存在巨大的问题,例如线程池的最大线程数是1000,那么有可能80%的线程是阻塞在read(),极大的浪费系统资源,继续改良,如果read时候,发现没有就绪,是否可以不用阻塞??package com.jason.thread.socket.newsocket.bio.pool;import j..原创 2020-06-17 00:52:36 · 377 阅读 · 0 评论 -
分布式架构底层基础入门---NIO、BIO对比(下)-NIO思维脑图
一、思维脑图:本章节,重点聊一下NIO中的多路复用器Selector、SocketChannel、ByteBuffer、SelectorKey场景:客户端向Selector发起连接事件,调用selector.select(),这个方法会阻塞执行,也可以设置超时时间;服务端收到连接事件,会向ByteBuffer写入信息,之后会向Selector注册读事件;客户端的selector监听到读事件,这时会读取服务端写入的信息;注:多路复用需要采用非阻塞的IO,所以代码需要设置:soc原创 2020-06-14 22:47:22 · 257 阅读 · 0 评论 -
分布式架构底层基础入门---NIO、BIO对比(上)
一、我们先写个Socket通信案例,接下来,我们用线程池来优化:Socket socket=serverSocket.accept();//阻塞等待建立连接,一旦进入阻塞,则不再响应其他连接。 package com.jason.thread.socket;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.nio.ByteBuffer;/** * @progra原创 2020-06-10 00:42:11 · 225 阅读 · 0 评论 -
互联网架构演进的过程
一、前言 15年10月,怀着憧憬与大干一场的决心,从传统行业转战互联网行业,掰着脚指头一算,快有5个年头;在这5年的光景里,见证了公司业务发展的潮起潮落。架构从其扮演的角色,我们可以大致分为三块:1、基础架构:封装第三方的中间件,或者公司自研的基础公共组件,供上层业务系统直接使用;同时提供一些监控手段,方便业务系统定位系统的运行情况,例如接口的调用量,平均响应,超时,失败率等待;2、应用架构:应用的垂直拆分,应用的边界划分;3、系统架构:更多的偏向运维层面,devlops运维...原创 2020-06-07 19:30:42 · 453 阅读 · 0 评论