
微服务
文章平均质量分 78
sayhitoloverOvO
Say hi to lover,
Lie down in heart,
Lie down in soul.
Say hi to voice,
Lie down in head,
Lie down in phone.
Say hi to myself,
Tell me not alone.
Say hi to memories,
Where I have to go?
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
什么是消息队列?什么场景需要他?用了会出现什么问题?
原文:面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?_敖丙-优快云博客_什么场景需要队列什么是消息队列?消息队列,我们一般简称MQ(Messges Queue的意思)即消息 队列。消息,就是我们的业务数据,理解起来比较简单队列,先进先出的一个数据结构消息队列,那就是吧消息放在队列里,用队列存储消息的介质。投放消息的就是生产者。提取消息的就是消费者。什么场景会用到消息队列?项目流程臃肿,响应速度慢,并发量大的场景有什么优点?异步将多个步骤提取转载 2021-10-23 20:20:46 · 252 阅读 · 0 评论 -
spring cloud 01:搭建spring cloud服务(一)
spring cloud 是一系列框架的集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工转载 2021-10-18 19:50:15 · 225 阅读 · 0 评论 -
分布式架构常见面试问题
Spring Cloud AlibabaNacos服务注册及健康状态如何检测?服务端首次发送消息会在nacos上注册自己的服务,之后每5s发送一次心跳,并更新naocs上的相关设置。如果nacos超过15s没有收到相关的服务信息,会标价这个服务是不健康的(失联)。30s没有收到则认为该服务不可用,将其删除项目中如何实现服务的调用?一种是RestTemplate,一种是OpenFeign,这种方法在进行服务调用时,都可以通过Ribbon实现负载均衡Nacos的配置管理模型以及配置数据的转载 2021-10-02 18:29:42 · 182 阅读 · 0 评论 -
微服务相关流程整理分析
分布式服务分析外部客户端的传输的消息先经过nginx,转发到各个不同的服务中,调用不同的服务方法,访问不同的数据库分布式项目结构分析:项目的父工程是01-sca,其内包含子类工程:网关,消费方,服务方等子工程外部请求先进入gateway网关中,网关调用不同的服务消费方服务,消费方服务调用不同的服务提供方nacos是一个配置中心和注册中心。各个子项目们之间都会向Nacos提交注册配置,服务调用案例分析外界的不同请求,会被转到不同的服务中,服务之间相互调用,给出最终的信息.转载 2021-10-01 20:46:09 · 3126 阅读 · 1 评论 -
微服务面试04总结:网关
小结1什么是网关?服务访问的一个入口,类似于网关为什么使用网关: 服务安全,统一服务入口管理,负载均衡,限流,鉴权spring cloud gateway的构建过程 jar包导入,配置文件配置gateway服务的启动底层是通过谁去实现的? netty网络编程框架serverSocketGateway服务请求做请求转发时,一定要在注册中心注册么?不一定,可以直接通过远端url进行服务访问小结2网关层面是如何实现负载均衡的?...转载 2021-10-01 18:24:29 · 317 阅读 · 0 评论 -
微服务面试总结:03 sentinel
小结1限流模式:限流模式:限制某个服务的也定市场内的并发量关联模式:当关联的某个服务达到阈值,就会限制自身的服务资源,将多余的资源优先供给给关联的对象链路限流:只限制某一个粗点链路中的特定服务做限制,且不影响其他链路中的相同服务处理方法:预热:出事并发只有并发上限/coldFactor(默认为3),即33%的初始并发,在规定时间内逐渐升到上限的并发数量排队等待:多余的请求会排队,超出排队时间返回失败快速失败:当求情达到阈值时,直接抛出异常Blocked by Sentinel转载 2021-10-01 16:05:07 · 452 阅读 · 0 评论 -
微服务10:单点登录系统拓展实现
拓展业务描述增加数据库访问第一:登录用户信息来自数据库(用户自身信息以及用户对应的权限信息)第二:将上传的文件信息写入到数据库(自己做)第三:将登录操作,文件上传操作的操作日志写入到数据库.(自己做)增加服务之间的调用第一:认证服务调用系统服务(获取用户以及用户权限)第二:认证服务与资源服务都调用系统服务(将日志传递给系统服务,进行数据的持久化)-自己做系统服务设计及实现系统服务sca-system工程用于提供其它服务需要的基础数据,例如用户信息,日志信息的记录等,其关键表设计转载 2021-09-30 08:20:52 · 198 阅读 · 0 评论 -
微服务09:单点登陆系统设计及实现3
资源服务器配置业务描述用户在访问受限资源时,一般要先检测用户是否已经认证(登录),假如没有认证要先认证,认证通过还要检测是否有权限,没有权限则给出提示,有权限则直接访问。例如。这里,我们做文件的上传也会采用这样的逻辑进行实现。添加项目依赖打开资源服务的pom.xml文件,添加oauth2依赖,基于此依赖实现授权业务。<dependency> <groupId>org.springframework.cloud</groupId> .转载 2021-09-28 18:49:18 · 296 阅读 · 0 评论 -
微服务09:单点登陆系统设计及实现2
Security 认证流程分析(了解)目前的登陆操作,也就是用户的认证操作,其实现主要基于Spring Security框架,其认证简易流程:颁发登陆成功令牌构建令牌存储对象本次我们借助JWT(Json Web Token-是一种json格式)方式将用户相关信息进行组织和加密,并作为响应令牌(Token),从服务端响应到客户端,客户端接收到这个JWT令牌之后,将其保存在客户端(例如localStorage),然后携带令牌访问资源服务器,资源服务器获取并解析令牌的合法性,基于解析结果判定.转载 2021-09-27 19:18:42 · 332 阅读 · 0 评论 -
微服务09:单点登陆系统设计及实现1
简介背景分析传统的登录系统中,每个站点都实现了自己的专用登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录。这样的系统,我们又称之为多点登陆系统。应用起来相对繁琐(每次访问资源服务都需要重新登陆认证和授权)。与此同时,系统代码的重复也比较高。由此单点登陆系统诞生。单点登陆系统单点登录,英文是 Single Sign On(缩写为 SSO)。即多个站点共用一台认证授权服务器,用户在其中任何一个站点登录后,可以免登录访问其他所有站点。而且,各站点间可以通过该登录状态直接交互。.转载 2021-09-26 19:24:11 · 461 阅读 · 0 评论 -
微服务扩展05:服务限流算法
保障服务稳定的三大利器,服务限流,熔断降级,故障模拟为什么需要限流?按照服务的调用方,可以分为以下几种可能导致机器被拖垮用户增长过快某个热点事件(秒杀)竞争对象爬虫恶意的网络攻击这些情况都是无法预知的,扩容是来不及的弹性扩容都是虚谈,1秒钟根本来不及反应对内的RPC服务一个服务接口可能被多个服务进行调用,在某个端口发生冲突流量,被关联的A端口也挂了。进而影响多个调用A端口的服务,其他端口也无法在提供服务此时:1.对每个调用方法线程池进行资源隔离,限流手段对每个方法进行转载 2021-09-20 16:33:19 · 154 阅读 · 0 评论 -
微服务面试总结:02 nacos
什么是配置中心?————储存项目配置的一个服务为什么要使用配置中心?————集中管理配置信息,发布动态配置信息市场上有哪些主流的配置中心?————Apoolo,nacos.....配置中心一般配置什么?经常会变化的配置信息,需要更改的数据库密码,日志,数据什么信息一般不会写到配置中心?确定定死了的东西,端口,服务名,注册地址,配置中心为合适呢么要定义bootstrap.yml文件?优先级高,可以从内存,客户端获取配置中心...转载 2021-09-17 19:08:41 · 310 阅读 · 0 评论 -
微服务面试总结:01 Nacos
微服务为什么要将微服务注册到nacos? 为了更好的查找这些服务再nacos中服务端如可向nacos注册中心续约的? 每5s发送一次消息nacos如何判断服务端的状态?每5s接受到一次服务端的消息,15s未接收消息判断为失联,30s未接受消息删除该服务端服务启动时如何找到服务启动注册配置类? 服务启动之后就会每5s向nacos发送消息,nacos获取服务发送的信息,进行注册/续约服务消费方是如何调用服务方提供的服务...转载 2021-09-16 20:07:44 · 372 阅读 · 0 评论 -
微服务08:微服务文件上传实战(总结与练习)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>业务描述基于Spring Cloud Alibaba解决方案实现文件上传,例如初始架构设计本次项目实践,整体上基于前后端分离架构,服务设计上基于spring clo..转载 2021-09-24 18:11:50 · 350 阅读 · 0 评论 -
微服务07:网关Gateway 应用实践
背景分析我们知道,一个大型系统在设计时,经常会被拆分为很多个微服务。那么作为客户端要如何去调用 这么多的微服务呢?客户端可以直接向微服务发送请求,每个微服务都有一个公开的URL,该URL可以直接映射到具体的微服务,如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的架构,会存在着诸多的问题,例如,客户端请求不同的微服务可能会增加客户端代码或配置的复杂性。还有就是每个服务,在调用时都需要独立认证。并且存在跨域请求,也在一定程度上提高了代码的复杂度。基于微服务架构中的设计及实现上转载 2021-09-23 19:29:26 · 551 阅读 · 0 评论 -
微服务06:Sentinel(哨兵)限流应用实践
Sentinel简介我们如何在这些业务流量变化无常的情况下,保证各种业务安全运营,系统在任何情况下都不会崩溃呢?我们可以在系统负载过高时,采用限流、降级和熔断,三种措施来保护系统,由此一些流量控制中间件诞生。例如Sentinel。Sentinel概述Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,转载 2021-09-18 18:58:46 · 1091 阅读 · 0 评论 -
微服务05:服务配置中心应用实践
配置中心简介我们知道,除了代码之外,软件还有一些配置信息,比如数据库的用户名和密码,还有一些我们不想写死在代码里的东西,例如像线程池大小、队列长度等运行参数,以及日志级别、算法策略等, 还有一些是软件运行环境的参数,如Java 的内存大小,应用启动的参数,包括操作系统的一些 参数配置…… 所有这些东西,我们都叫做软件配置。以前,我们把软件配置写在一个配置文件中,就像 Windows 下的 ini 文件,或是 Linux 下的 conf 文件。然而,在分布式系统下,这样的方式就变得非常不好管理,并容易出错转载 2021-09-17 16:36:27 · 178 阅读 · 0 评论 -
微服务04:基于Feign的远程服务调用
消费放基于rest方式请求服务提供方的服务时。一种直接的方法就是自己拼接url,拼接参数实现调用,但每次调用都需凭借,不易维护,对于这种死板的东西,肯定会有新的类或方法将其整合。于是Feign诞生什么是Feign?封装了对Rest技术的应用,可以简化服务消费方的调用,大大较少开发过程Feign 最早是由 Netflix 公司进行维护的,后来 Netflix 不再对其进行维护,最终 Feign 由一些社区进行维护,更名为 OpenFeign。使用Feign第一步编程高楼基础起,jar.转载 2021-09-16 12:46:10 · 483 阅读 · 0 评论 -
微服务03:使用nacos添加服务
服务注册与调用入门provider(提供者)和consumer(使用者)向NacosServer提交注册,然后提供者provider会向消费者提供远端调用服务第一步:在我们创建的nacos项目中的01-sac项目中的sca-provider子项目中对其pom进行jar包的添加创建微服务项目:微服务01:架构_sayhitoloverOvO的博客-优快云博客<?xml version="1.0" encoding="UTF-8"?><project xml.转载 2021-09-15 12:24:20 · 5039 阅读 · 1 评论 -
微服务02:Nacos
Nacos注册中心简介在微服务中,需要面对的问题就是如何查找服务(软件即服务),其次,就是如何在不同的服务之间进行通信?如何更好的方便管理应用的每一个服务,如何建立在各个服务之间联系的纽带,由此注册中心诞生(例如app提供服务,使用者调用服务)市面上常用的注册中心Zookeeper(雅虎Apache),Eureka(Netfix),Nacos(Alibaba),Consul(Google)。如何选择?社区的活跃度,稳定性,功能,性能方面考虑我们选择Nacos,他经历了双十一的冲击,不仅可以作转载 2021-09-14 18:48:35 · 546 阅读 · 0 评论 -
微服务01:架构
一个为基础的业务编写的单体应用(jar包,wap包)。对于这样的设计一般适合企业的内部应用,访问量不大,体积比较小,5人以内的团队即可开发和维护。但对于一些大型互联网项目,假如需要10人以上的开发和维护团队,仅频繁的创建代码分支,编写业务功能,然后合并分支,就会出现很多代码冲突。每次解决这些大量的代码冲突,可能就会耗费好几天的时间。基于这样的背景微服务诞生了.,在微服务架构设计中,建议将超出10人开发维护的项目进行拆分,将大系统分割为小系统,几个人负责一个单独服务的开发,测试,上线,冲突减少了每次测试只转载 2021-09-14 14:01:56 · 309 阅读 · 0 评论 -
微服务扩展04:跨域
出于安全原因,浏览器禁止Ajax调用驻留在当前原点之外的资源。跨源资源共享(CORS)是由大多数浏览器实现的W3C规范,允许您灵活地指定什么样的跨域请求被授权,而不是使用一些不太安全和不太强大的策略,如IFRAME或JSONP。同源与跨域当浏览器向目标发发送数据的时候,访问的路径,端口和协议是一致时,我们称这是同源访问,如果向其他端口或是其他端口时,这种访问就是跨域访问http://www.abc.com/aahttp://www.abc.com/bb(非跨域)http://www..原创 2021-09-24 19:58:03 · 444 阅读 · 2 评论 -
微服务扩展03: System.out.println(打印)和log(日志)
平常做编程检查的时候,你是否会写多写个System.out.println()在编程阶段,来帮助自己检查程序呢?System.out.println()方法,使用简单,后续维护不方便,需要手动删除 @GetMapping("findItemCatList2") public SysResult findItemCatList2( PageResult pageResult ){ //查询输入的数据 System.out.println(pageResu原创 2021-09-17 14:01:35 · 5250 阅读 · 0 评论 -
微服务拓展02:简单的远程消息传递
客户端与服务端的交互创建一个简单的服务端对象//这是一个服务端对象public class Tomcat { static boolean flag = true; public static void main(String[] args) throws IOException { //创建一个服务 ServerSocket serverSocket = new ServerSocket(9090); System.out.pri转载 2021-09-16 11:34:02 · 106 阅读 · 0 评论 -
微服务拓展01:Maven的jar包管理
Maven的pom文件中的标签:groupid:项目ID,项目坐标核心元素version:项目版本description:描述信息organization:组织信息inceptionYear:创始年份URL:项目URL地址developers:开发者信息dietributionManagement:项目部署配置issueManagement项目缺陷跟踪系统ciManagement:项目持续集成系统信息scm:项目版本控制系统信息mailingLists:邮件.原创 2021-09-14 15:26:13 · 593 阅读 · 0 评论 -
计算机软件架构发展历史
计算机软件架构发展历史01-计算机软件架构发展历史(自己了解)_雨田说码-优快云博客_计算机软件架构转载 2021-09-17 20:52:11 · 129 阅读 · 0 评论