服务调用(OpenFeign)

1、简介①、概述Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡也就是说,Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,
分类: 其他 发布时间: 03-09 09:38 阅读次数: 0

服务降级(Hystrix断路器)

1、概述①、分布式系统面临的问题往往复杂分布式体系架构的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败就像图中所看到的那样,一个用户请求需要调用A服务,但是A服务也需要调用P服务,然后P调H,H调I等等······如果一切顺利,则没有啥问题,但是如果I服务出现了超时,会出现什么问题呢?②、服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可
分类: 其他 发布时间: 03-09 09:38 阅读次数: 0

@HystrixProperty配置汇总

纯手敲,关于配置中的name属性到底填什么,可以参考HystrixCommandProperty类(这不用我说吧)@HystrixCommand(fallbackMethod = "str_fal1backMethod", groupKey = "strGroupCommand", commandKey = "strCommand", threadPoolKey = "strThreadPoo1", commandProperties =.
分类: 其他 发布时间: 03-09 09:38 阅读次数: 0

Lambda表达式入个门

1、为什么要使用Lambda表达式避免匿名内部类定义过多可以让你的代码看起来很简洁去掉了一堆没有意义的代码,只留下核心的逻辑。2、函数式接口理解Functional lnterface(函数式接口)是学习Java8 lambda表达式的关键所在。定义:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。public interface Runnable { public abstract void run();}直接以Runnable接口为例,它是不是只
分类: 其他 发布时间: 03-09 09:37 阅读次数: 0

服务网关(Gateway)

1、概述官方网站①、是什么Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway;SpringCloud Gateway作为Spring Cloud 生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 1.x非React
分类: 其他 发布时间: 03-09 09:37 阅读次数: 0

服务配置中心(Config)

1、概述①、问题出现微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。回顾我们以前创建的微服务,每一个module都有一个对应的application.yml文件,单拎出来服务提供者这几个module,如果每一个都用到了mybatis,且操作的都是同一个数据库,但是我们在每一个module都进行了一遍相同的数据库连接配置,这样的操作实在麻烦,如果我们没
分类: 其他 发布时间: 03-09 09:37 阅读次数: 0

服务总线(Bus)

1、概述在学习完Config之后,我们发现了一个问题就是每当配置中心配置发生变化以后,都需要将每个微服务重新启动一遍,这样对于某些大型项目而言是很痛苦的,然后我们就又引入了动态刷新功能,每当配置中心配置变化后,我们的运维小哥就手动给每一个微服务都发送一个POST请求用于更新配置,这样便免于重新启动服务,节约时间,但是这样的动态刷新还是不够彻底,我们如何才能彻底解放运维小哥的双手呢?那就是使用Spring Cloud Bus配合Spring Cloud Config使用实现动态刷新配置Spring
分类: 其他 发布时间: 03-09 09:37 阅读次数: 0

消息驱动(Stream)

1、概述①、为什么要用Stream对于消息中间件MQ,大家所熟知的就有四个,ActiveMQ,RabbitMQ,阿里的RocketMQ,和大数据平台的Kafka。而现在的Web系统,我们可以把它看作以下三部分如果我们Java程序员用到的消息中间件是RabbitMQ,但是大数据平台使用的是Kafka,那这个系统将会至少存在两个问题切换开发维护所以我们就开始思考,有没有一种技术让,让我们不再关注MQ的细节,,我们只需要用一种适配绑定的方式,自动的帮我们在各种MQ之间切换,正所谓偷懒
分类: 其他 发布时间: 03-09 09:36 阅读次数: 0

分布式请求链路跟踪(Sleuth)

1、概述①、为什么使用Sleuth在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。对于上面这张图,较为简单,监控与否无关紧要,但是对于大型分布式系统而言呢?成百上千个服务使我们不得不对服务链路进行追踪②、什么是Sleuth源码仓库,官方文档Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分
分类: 其他 发布时间: 03-09 09:36 阅读次数: 0

服务注册与配置中心(Nacos)

1、概述①、什么是Cloud Alibaba2018.10.31,Spring Cloud Alibaba正式入驻了Spring Cloud官方孵化器,并在Maven中央库发布了第一个版本。中文文档,官方文档Spring Cloud for Alibaba,它是由一些阿里巴巴的开源组件和云产品组成的。这个项目的目的是为了让大家所熟知的Spring 框架,其优秀的设计模式和抽象理念,以给使用阿里巴巴产品的Java开发者带来使用Spring Boot和Spring Cloud 的更多便利。②、
分类: 其他 发布时间: 03-09 09:36 阅读次数: 0

从0到1,手把手教你搭建一个Nginx+MySQL+Nacos集群

因为阿里云学生机内存1G太寒酸,当我启动第二个Nacos的时候,机器就躺尸了,不得不切换到虚拟机上操作,nacos全部放在了一台虚拟机上面,算一个伪集群吧,本文基于CentOS8+MySQL8,从0到1一步步记录,欢迎交流1、配置JDK#切换root用户su root#安装jdkyum install -y java-1.8.0-openjdk*安装完成,jdk默认安装路径为/usr/lib/jvm#获取jdk安装目录列表,复制jdk程序根目录ls /usr/lib/jvm#获取目录
分类: 其他 发布时间: 03-09 09:36 阅读次数: 0

Sentinel做服务熔断与限流,服务能被监控,但是监控列表为空的问题思考

首先我觉得,服务和Sentinel不在同一台机器上面,本身是能够正常监控的,只要保证两台机器能够在一个内网中,能够互相连通即可我在学习Sentinel的时候,我盲目使用云服务器的docker拉取Sentinel镜像,但是我开启了服务后,服务虽然能被Sentinel监控,但是监控列表为空当我用本机Windows下载Sentinel运行,监控列表又能正常显示我纠结了这个问题很久,网上也找到了很多的解决方案,他们无非是在配置文件中添加了一行client-ip又或是clientIp,跟上本机.
分类: 其他 发布时间: 03-09 09:35 阅读次数: 0

服务熔断与降级(Sentinel)

1、概述官方Git仓库中文文档①、什么是Sentinel随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。回顾以前的Hystrix,我们做到了服务熔断,服务降级,但是Hystrix没有一套Web界面可以让我们更加细粒化的配置,Sentinel和Nacos一样,不再需要我们手动的去创建某个微服务模块来专门实现对应功能,直接用一套Web界面供我们进行细粒化的统一配置,管理。②、Windows
分类: 其他 发布时间: 03-09 09:35 阅读次数: 0

分布式事务管理(Seata)

1、概述①、分布式事务问题分布式前单机单库,即一个web服务仅对应一个MySQL数据库1:N​或者N:N,也就是一个服务对应多个数据库或多个服务对应多个数据库。分布式后单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据—致性由本地事务来保证,但是全局的数据一致性问题没法保证。②、什么是Seata官方中文档Seata(Simple Extensible Autonomous T
分类: 其他 发布时间: 03-09 09:35 阅读次数: 0

鸿蒙自定义一个GifImage组件

创建一个空的工程在这个空工程下创建一个空的Module,指定Module为一个HarmonyOS library,Module名称为Gif新建一个Gif类,继承自Image类package com.example.timestory.slice.Utils;import com.example.timestory.slice.Utils.decoder.GifDecoder;import ohos.agp.animation.Animator;import ohos.agp.a.
分类: 其他 发布时间: 03-09 09:34 阅读次数: 0

Spring IoC容器配置元数据的三种方式

1、xmlxml配置文件方式自然需要在xml文件中配置bean<bean id="intelCpu" class="com.phz.entity.IntelCpu"/><bean id="computer" class="com.phz.entity.Computer"> <property name="intelCpu" ref="intelCpu"/></bean>2、注解Annotation方式需要配置扫描域,且需要在使用的类
分类: 其他 发布时间: 03-09 09:34 阅读次数: 0

Spring容器实例化Bean的三种方式

1、构造方法默认@Data@Slf4j@Component(value = "computer")public class Computer { @Resource private IntelCpu intelCpu; public Computer() { log.info("Computer构造方法"); } public void play() { intelCpu.run(); log.info
分类: 其他 发布时间: 03-09 09:34 阅读次数: 0

Spring Cloud和Spring Cloud Alibaba文章汇总

技术栈技术选型部分技术随着技术的迭代,不断更新,下面做简要叙述服务注册中心Eureka:Netflix公司出厂自带,目前已停更,不建议使用。**zookeeper:**常配合dubbo使用,是一种老技术了,可以使用。Consul:,也可以替换Eureka,是基于go语言开发的,不推荐使用。Nacos:Spring Cloud Alibaba全家桶成员,经受住百万级注册并发量的考验,可以很完美的替换Eureka,推荐使用。服务调用**Ribbon:**半生不熟,也进入了维护状态
分类: 其他 发布时间: 03-09 09:32 阅读次数: 0

牛客网刷题-N皇后问题

问题描述N皇后问题是指在N*N的棋盘上要摆N个皇后,要求:任何两个皇后不同行,不同列也不再同一条斜线上,求给一个整数N,返回N皇后的摆法数。示例示例1输入8输出92解决思路思路回溯法:要保证n个皇后不同行,不同列,不同斜线,只需要满足下面3个条件即可(1)N个皇后不同行,通过s1存储该行上的皇后(2)N个皇后不同左上角如图斜线方向,通过s2存储该方向的皇后。我们会发现位于统一斜线上的坐标满足,x坐标和y坐标的和相等。例如:(1,0) (0,1)在同一斜线上,和均为1
分类: 其他 发布时间: 03-09 09:31 阅读次数: 0

牛客网刷题-最大正方形

问题描述给定一个由0和1组成的2维矩阵,返回该矩阵中最大的由1组成的正方形的面积示例示例1输入[[1,0,1,0,0],[1,0,1,1,1],[1,1,1,1,1],[1,0,0,1,0]]输出4解决思路思路暴力法:暴力求解,当碰到1,则以当前坐标为左上节点,预估以该左上节点所组成的正方的最大长度,依次判断每个坐标值是否为1动态规划:使用额外的dp数组记录以该节点为右下角节点的最大长度(1)如果该位置的值是 00,则 dp(i,j)=0,因为当前位置不可能在由 1 组成的
分类: 其他 发布时间: 03-09 09:31 阅读次数: 0