趣味二维码生成-编程思维

背景介绍 最近在 Github 看到了一个有趣的项目 amazing-qr,它支持生成普通二维码,带图片的艺术二维码,动态二维码。 项目是用 python 编写的,以命令行的方式运行生成,不太方便调用,因此,我把它封装成了 Api。   示例展示  1. 普通二维码   2. 图片二维码   3. 动态二维码   如何使用 克隆代码,https://github.com/ErikXu

Sentinel源码分析二 之 流控算法-滑动时间窗口-编程思维

记录Sentinel中使用的滑动时间窗口之前,先说明下简单的滑动时间窗口是怎样的。 对于限流的算法假如时间窗口不滑动,限流qps 100。如果在0.5~1s之间发生了80个请求量,会认为在0~1s内qps是不会达到限流阈值的。在1~1.5s内达到80的请求量,也会认为在1-2s内的qps为80没有达到阈值。 但是在0.5~1.5秒的请求量却达到160已经超过了阈值。这就出现了问题。    有了滑

读书笔记-编程思维

1.  作者2013开始关注微服务, 2018年才重新关注. 曾经学习到放弃K8s数次. 说明学习曲线太陡峭 2. MicroService First,  从头创建一个粗糙的微服务架构,比重构一个单体应用要简单多. 关键现在的工具使得创建一个分布式的应用的花费比单体应用不会多很多. 3.MicroService 可以用不同的技术栈,(我的理解: 比如你要部署个blog, 你知道WordPres

微服务9:服务治理来保证高可用-编程思维

★微服务系列 微服务1:微服务及其演进史微服务2:微服务全景架构 微服务3:微服务拆分策略微服务4:服务注册与发现微服务5:服务注册与发现(实践篇)微服务6:通信之网关微服务7:通信之RPC微服务8:通信之RPC实践篇(附源码)微服务9:服务治理来保证高可用 1 微服务带来的挑战 在第2篇《微服务2:微服务全景架构 》中,我们曾经分析过微服务化后所面临的挑战,有过如下的结论: 1.1 分布式固有

凤凰架构: 构建可靠的大型分布式系统-编程思维

推荐一本好书: 《凤凰架构: 构建可靠的大型分布式系统》--作者:周志明 这是一本开源书,同时也已经出版。有着纸质书、电子书、开源网站文档和Github文档。文末已附上链接。 支持作者:买纸质书或Github点星 涅槃重生,凤凰架构! 内容简介 畅销书《深入理解Java虚拟机》的作者周志明凭借多年架构和研发经验,从架构视角讲解如何构建大型分布式系统的著作。 多角度探索 大型分布式系统 如何构建

Ribbon原理分析之NamedContextFactory-编程思维

在跟踪Ribbon源码的过程中看到了 NamedContextFactory,不懂其存在的精髓,特此记录下。  在SpringCloud中,微服务之间由于系统的不同,可能对于远程调用来说可能需要不同的配置,比如订单系统 A 和库存系统 B,ribbon请求A,B可能需要的连接超时时间重试次数是不一致的,这个时候怎么做到ribbon请求A,B系统 的时候使用不同的配置呢。这就引入了NamedCon

微项目:一步一步带你使用SpringBoot入门(一)-编程思维

最近放假了,休息的时候不忘写个小项目来玩玩。 如果有需要一起手动做项目的朋友可以和我一起做这个小项目。 做到哪随心所欲。也就一周的事哈哈。 开发环境 JDK1.8 JetBrain InteliJ 傻瓜式启动项目 打开newProject 然后单击Spring Initializr然后一直next 在这里确定好包名之类的 在这里不用单击任何东西,直接next就行 在这里我们可以看到项目建起来了

Eureka 服务注册与发现-编程思维

服务治理 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。 在传统的 rpc 远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。 服务注册与发现 Eureka 采用了 CS 的设计架构,Eureka Server 作为服务注

Ribbon-编程思维

概述 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套 客户端负载均衡 的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供 客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基

OpenFeign-编程思维

简介 Feign 是一个声明式 WebService 客户端。使用 Feign 能让编写 Web Service 客户端更加简单。 它的使用方法是定义一个服务接口然后在上面添加注解。Feign 也支持可拔插式的编码器和解码器。Spring Cloud 对 Feign 进行了封装,使其支持了 Spring MVC 标准注解和 HttpMessageConverters。Feign 可以与 Eure

Hystrix 断路器-编程思维

https://github.com/Netflix/Hystrix/wiki/How-To-Use 前提 分布式系统面临的问题:复杂分布式体式结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败。 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过

Gateway-编程思维

简介 Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。 Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等。 SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0

微服务 spring cloud学习-编程思维

背景:学习材料《227-Spring Cloud 微服务项目实战》 227-Spring Cloud 微服务项目实战 简介     在上面这幅图中,我们可以看到有几个 Spring Boot Apps 的应用集群,这就是经过拆分 后的微服务。Spring Cloud 和 Spring Boot 达成了一种默契的配合:Spring Boot 主内, 通过自动装配和各种开箱即用的特性,搞定了数据层

.NET Core(.NET6)中gRPC注册到Consul-编程思维

一、简介 上一篇文章介绍了.NET Core 中使用gRPC,在微服务中,我们通常要把服务做成服务注册,服务发现的方式,那么这里来说一下gRPC是如何注册到Consul中的。 Consul的安装这里就不介绍了,在之前的篇文章中已经写过:Consul+Ocelot+Polly在.NetCore中使用(.NET5)-Consul服务注册,服务发现 这里Consul已经安装好。      二、gRP

(二)分布式和微服务区别-编程思维

微服务和分布式的区别: 简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同 微服务是啥? 这里不引用书本上的复杂概论了,简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。 微服务架构又是啥? 在做架构设计的时候,

.NET Core(.NET6)中gRPC使用-编程思维

一、简介 简单解析一下gRPC,gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架。 特点: 跨语言 内容protobuf格式(比json体积小),网络传输快 使用HTTP/2进行传输 适合高性能轻量的微服务,一般对外的接口用restful api,内部服务的调用用gRPC。gRPC是一个分布式服务框架,和以前的WebService,WCF类似。 二、创建gRPC

go微服务系列(四) - http api中引入protobuf-编程思维

1. protobuf相关依赖安装 2. 改造之前的client 2.1 新建proto文件 2.2 运行protoc命令生成go文件 2.3 然后把原来的map修改成具体的类型就可以了 3. 处理json tag不一致的问题 1. protobuf相关依赖安装 第一步:下载grpc通用编译器 如下图,解压出来因平台而异会是一个protoc或者protoc.exe https://githu