Spring Cloud

Spring 简介

无人久伴 提交于 2020-05-05 11:45:47
#Spring - 1.0 1. Spring:春天 --> 给软件行业来带了春天 ​ 2. 2002年,首次推出了Spring框架的雏形:interface21框架! ​ 3. Spring框架以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版 ​ 4. Rod Johnson,Spring Framework创始人 ​ 5. spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架 ​ SSH: Struct2 + Spring + Hibernate! SSM: SpringMvc + Spring + Mybatis! ​ 官网:https://spring.io/projects/spring-framework#overview 官网下载地址:http://repo.spring.io/release/org/springframework/spring GitHub:https://github.com/spring-projects/spring-framework #Spring-Maven <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->

C# 基础知识系列- 14 IO篇 流的使用

自闭症网瘾萝莉.ら 提交于 2020-05-05 11:25:45
0. 前言 继续之前的C# IO流,在前几篇小短片中我们大概看了下C# 的基础IO也对文件、目录和路径的操作有了一定的了解。这一篇开始,给大家演示一下流的各种操作。以文件流为例,一起来看看如何操作吧。 注:之前更新了一篇《Spring Cloud 实战日记》,这是一个新的系列,有兴趣的小伙伴可以从我的账号首页进去看看。 1. 简单的IO流读写文件 先来看一部分代码: class Program { static void Main(string[] args) { var directory = Directory.GetCurrentDirectory(); var program = File.Open("../../../Program.cs", FileMode.OpenOrCreate); // program = File.Open("Program.cs", FileMode.OpenOrCreate); var buffers = new byte[1024];// 创建一个8k的缓存区 var list = new List<byte>(); while(true) { int length = program.Read(buffers, 0, buffers.Length); if(length <=0) { break; } list.AddRange

C# 基础知识系列- 14 IO篇 流的使用

点点圈 提交于 2020-05-05 11:20:40
0. 前言 继续之前的C# IO流,在前几篇小短片中我们大概看了下C# 的基础IO也对文件、目录和路径的操作有了一定的了解。这一篇开始,给大家演示一下流的各种操作。以文件流为例,一起来看看如何操作吧。 注:之前更新了一篇《Spring Cloud 实战日记》,这是一个新的系列,有兴趣的小伙伴可以从我的账号首页进去看看。 1. 简单的IO流读写文件 先来看一部分代码: class Program { static void Main(string[] args) { var directory = Directory.GetCurrentDirectory(); var program = File.Open("../../../Program.cs", FileMode.OpenOrCreate); // program = File.Open("Program.cs", FileMode.OpenOrCreate); var buffers = new byte[1024];// 创建一个8k的缓存区 var list = new List<byte>(); while(true) { int length = program.Read(buffers, 0, buffers.Length); if(length <=0) { break; } list.AddRange

Spring Cloud Netflix Zuul 服务网关

寵の児 提交于 2020-05-05 10:10:07
学习在 Spring Cloud 中使用 Zuul 实现服务网关,包括基本使用、请求过滤、忽略路径、前缀等功能。它是 Netflix 家族成员之一。 1 概述 由于每一个微服务的地址都有可能发生变化,无法直接对外公布这些服务地址,基于安全以及高内聚低耦合等设计,我们有必要将内部系统和外部系统做一个切割。 一个专门用来处理外部请求的组件,就是服务网关,常用功能: 权限问题统一处理 数据剪裁和聚合 简化客户端的调用 可以针对不同的客户端提供不同的网关支持 在 Spring Cloud 中,网关主要有两种实现方案: Zuul 和 Spring Cloud Gateway 。 Zuul 是 Netflix 公司提供的网关服务,主要有如下功能: 权限控制,可以做认证和授权 监控 动态路由 负载均衡 静态资源处理 Zuul 中的功能基本上都是基于 过滤器 来实现,它的过滤器有几种不同的类型: PRE ROUTING POST ERROR 2 准备工作 2.1 服务注册 创建 Spring Boot 项目 zuul-client-provider ,作为我们的 服务提供者 ,添加 Web/Eureka Client 依赖,如下: 最终的依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

掌门1对1微服务体系Solar第1弹:全链路灰度蓝绿发布智能化实践

一世执手 提交于 2020-05-04 19:00:25
掌门教育自2014年正式转型在线教育以来,秉承“让教育共享智能,让学习高效快乐”的宗旨和愿景,经历云计算、大数据、人工智能、AR/VR/MR以及现今最火的5G,一直坚持用科技赋能教育。掌门教育的业务近几年得到了快速发展,特别是今年的疫情,使在线教育成为了新的风口,也给掌门1对1新的机遇。随着业务规模进一步扩大,流量进一步暴增,微服务体系下,业务服务新增和迭代频率大大加快,运维和业务人员经常需要熬夜人工上线,疲劳状态下容易产生生产事故,运维成本和业务成本也将大大上升。在此背景下,基础架构部推出可以白天安全上线,流量无损的微服务灰度蓝绿发布智能化系统,并通过强有力的各种监控手段来保证流量的精确制导和调拨,提升技术驱动能力。 关于Solar Solar作为掌门1对1下一代基础微服务体系,2019年11月开始筹划,2020年1月4日推出第一版,2020年4月15日发布1.2.0 & 2.2.0里程碑稳定版,兼容Spring Cloud Edgware版、Finchley版、Greenwich版、Hoxton版本。基于三层体系而构建: 基础公共组件。Solar的基础组件,基础公共组件一般呈原子层面的独立存在,组件间也可适当耦合,基本上可达到一个组件被移除,不影响另外一个组件的运行的特征。 基础公共框架。Solar的基础框架,依托Spring Cloud服务体系,以框架形式对外暴露

spring cloud gateWay 404

こ雲淡風輕ζ 提交于 2020-05-04 17:33:51
gateWay网关负载均衡报404错误,我的yml文件配置 spring: cloud: gateway: locator: enabled: true loadbalancer: # 服务找不到404 use404: true routes: # 认证中心 - id: lxyyf-auth uri: lb://lxyyf-auth predicates: - Path=/auth/** filters: # 验证码处理 - ValidateCodeGatewayFilter # 前端密码解密 - PasswordDecoderFilter #UPMS 模块 - id: lxyyf-upms-biz uri: lb://lxyyf-upms-biz predicates: - Path=/admin/** filters: # 限流配置 - name: RequestRateLimiter args: key-resolver: '#{@remoteAddrKeyResolver}' redis-rate-limiter.replenishRate: 10 redis-rate-limiter.burstCapacity: 20 # 降级配置 - name: Hystrix args: name: default fallbackUri: 'forward:/fallback' #

Spring Cloud进阶之路 | 八:授权服务(Spring Cloud Oauth2)

元气小坏坏 提交于 2020-05-04 17:11:10
​转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12201382.html oauth2简介 OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。 OAuth 2 定义了四种 Grant Type,授权码模式(authorization code)、简化模式(implicit)、密码模式(Password)、客户端模式(client credentials),每一种都有适用的应用场景。 运行流程如下所示: ​ 至于每种模式如何运行,需要什么参数,本文不再赘述,大家可自行查阅相关资料,做到烂熟于心。 微服务安全策略 在传统单体Web应用架构中,身份认证从来都不是问题,通过Spring Security或者Shiro,配合session,可以很方便的解决身份认证和鉴权的问题。 随着不断扩大的业务需求,在传统单体架构捉襟见肘的时候,分布式架构应运而生, 分布式架构强调的是服务化以及服务的分散化, 大大地提升了系统的可靠性和响应速度。 可是,技术并没有因此而停滞不前,微服务架构又出现了。 微服务架构更强调服务的专业化、精细化, 更加强调单一职责、轻量级通信(HTTP)、独立性并且进程隔离。 随着应用架构的改变

重磅消息:Redis 6.0.0 稳定版发布

我的梦境 提交于 2020-05-04 14:04:46
点击上方“朱小厮的博客”,选择“ 设为星标” 后台回复" 加群 ",加入新技术群 Redis的作者在博客上宣布:Redis 6.0.0 稳定版发布了。原文地址:http://antirez.com/news/132 那么,从RC1到今天,除了稳定之外,还有什么变化呢? 1、重新设计了客户端缓存,特别是放弃了caching slot,而只使用key names。 2、现在Redis支持这样一种模式:如果用于复制的RDB文件不再有用,它将立即删除。在某些环境中,最好不要将数据放在磁盘上,而只放在内存中。 3、acl在特点方面变得更好。首先,有一个新的ACL日志命令,它允许查看所有违反ACL的客户机、访问不应该访问的命令、访问不应该访问的密钥,或者验证尝试失败。日志实际上在内存中,因此每个外部代理都可以调用“ACL log”来查看发生了什么。这对于调试ACL问题非常有用。 4、改进了复制协议PSYNC2。Redis能够更频繁地部分重新同步,使副本和主副本找到公共偏移。 5、带有超时的Redis命令现在不仅BLPOP并且以前可以接受秒的命令现在可以接受十进制数。 6、RDB文件现在加载速度更快。根据文件的实际组成(较大或较小的值),可以预期20/30%的改进。当有很多客户机连接时,信息也更快了,这是一个老问题,现在终于解决了。 7、我们有一个新命令STRALGO,它实现了复杂的字符串算法

SpringCloud学习笔记(九、SpringCloud Stream)

佐手、 提交于 2020-05-04 07:21:04
目录: 什么是SpringCloud Stream 如何使用SpringCloud Stream 消息分流 什么是SpringCloud Stream: SpringCloud Stream是一个用于构建消息驱动的微服务应用框架。它通过注入,输入、输出通道来与外界通信;因此它很容易实现消息的中转,并且在更换消息中间件的时候不需要该代码,仅需要修改配置即可。支持的消息中间件如RabbitMQ、Kafka等等。 如何使用SpringCloud Stream(以RabbitMQ为例): 1、增加maven依赖 1 < dependency > 2 < groupId > org.springframework.cloud </ groupId > 3 < artifactId > spring-cloud-stream </ artifactId > 4 </ dependency > 5 < dependency > 6 < groupId > org.springframework.cloud </ groupId > 7 < artifactId > spring-cloud-stream-binder-rabbit </ artifactId > 8 </ dependency > 9 < dependency > 10 < groupId > org

【一起学源码-微服务】Ribbon 源码四:进一步探究Ribbon的IRule和IPing

六月ゝ 毕业季﹏ 提交于 2020-05-04 06:06:19
前言 前情回顾 上一讲深入的讲解了Ribbon的初始化过程及Ribbon与Eureka的整合代码,与Eureka整合的类就是 DiscoveryEnableNIWSServerList ,同时在 DynamicServerListLoadBalancer 中会调用 PollingServerListUpdater 进行定时更新Eureka注册表信息到 BaseLoadBalancer 中,默认30s调度一次。 本讲目录 我们知道Ribbon主要是由3个组件组成的: ILoadBalancer IRule IPing 其中 ILoadBalancer 前面我们已经分析过了,接下来我们一起看看 IRule 和 IPing 中的具体实现。 目录如下: 负载均衡默认Server选择逻辑 Ribbon实际执行http请求逻辑 Ribbon中ping机制原理 Ribbon中其他IRule负载算法初探 说明 原创不易,如若转载 请标明来源! 博客地址: 一枝花算不算浪漫 微信公众号:壹枝花算不算浪漫 源码分析 负载均衡默认Server选择逻辑 还记得我们上一讲说过,在Ribbon初始化过程中,默认的 IRule 为 ZoneAvoidanceRule ,这里我们可以通过debug看看,从 RibbonLoadBalancerClient.getServer() 一路往下跟