- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 搭建云原生环境
修改Elasticsearch配置文件 文件路径{安装位置}/elk/elasticsearch/config/elasticsearch.yml。修改 jvm.options文件,修改elasticsearch的JVM参数,默认为8g,根据自己机器配置,建议至少8G,否则可能导致无法启动。先新建一个用户(出于安全考虑,elasticsearch默认不允许以root账号运行。上传安装包至/home/es目录下并解压到指定目录。启动Elasticsearch。
2023-09-06 10:27:32 539
原创 seata1.4.2集成springcloud+eureka项目
1.修改seata-server的配置信息:seata-server中,/conf目录下,有两个配置文件,需要结合自己的情况来修改:1.1.file.conf里面有事务组配置,锁配置,事务日志存储等相关配置信息,由于此demo使用db存储事务信息,我们这里要修改store中的配置:正在上传…重新上传取消1.2.registry.conf我们这里用eureka作注册中心,所以,只用修改registry{}中的:其他配置暂用默认值即可。2.client端相关配置
2022-02-25 10:46:47 884
原创 记一次springcloud错误org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'feignClient' defined in class path resource [org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration.class]: Initialization of bean failed; ne.
2022-02-15 17:05:38 4521 3
原创 浅谈seata
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务;Seata为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案;四种事务模式中,XA模式正在开发中...,其他事务模式已经实现;...
2022-01-07 17:59:28 534
原创 架构中引入mq产生的问题
系统可用性降低MQ 可能挂掉,导致整个系统崩溃系统复杂性变高可能发重复消息,导致插入重复数据;消息丢了;消息顺序乱了;系统 B,C,D 挂了,导致 MQ 消息积累,磁盘满了;一致性问题本来应该A,B,C,D 都执行成功了再返回,结果A,B,C 执行成功 D 失败...
2022-01-05 15:08:11 1721
原创 浅谈 mq
一说到消息队列就想到异步、削峰、解耦。异步很多步骤都是在一个流程里面需要做完的,就比如说下单系统吧,本来我们业务简单,下单了付了钱就好了,流程就走完了。后来又加了新的需求:优惠券系统、积分系统、发短信系统流程图如下链路太长就会导致响应时间变长异步:解耦有一个系统A,系统A可以产生一个userId,现在有系统B和系统C都需要这个userId去做相关的操作如果新加了系统D、E或者系统B、C有一个不用userId了,系统A 就要进行改动很麻烦如果把系统A的us.
2022-01-04 18:10:02 459
原创 【无标题】
对比项 Quartz xxl-job 依赖 mysql mysql ,jdk1.7+ , maven3.0+ 集群、弹性扩容 多节点部署,通过竞争数据库锁来保证只有一个节点执行任务 使用Quartz基于数据库的分布式功能,服务器超出一定数量会给数据库造成一定的压力 任务分片 不支持 支持 管理界面 不支持 支持 高级功能 无 弹性扩容,分片广播,故障转移,Rolling实时日志,GLUE(支持在线编辑代码...
2021-12-27 14:36:02 82
转载 浅谈rabbitmq
什么是消息队列消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。为什么要用消息队列消息队列是一种应用间的异步协作机制什么时候会用到MQ呢?以常见的订单系统为例,用户点击【下单】按钮之后的业务逻辑可能包括:扣减库存、生成相应单据、发红包、发短信通知。在业务发展初期这些逻辑可能放在一起
2021-12-23 11:09:29 126
原创 redis和mysql的区别
(1)类型上 从类型上来说,mysql是关系型数据库,redis是缓存数据库(2)作用上 mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢 redis用于存储使用较为频繁的数据到缓存中,读取速度快(3)需求上 mysql和redis因为需求的不同,一般都是配合使用。1.mysql和redis的数据库类型mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。redis是NOSQL,即...
2021-12-23 09:40:19 186
原创 swagger注解
- @Api()用于类;表示标识这个类是swagger的资源- @ApiOperation()用于方法;表示一个http请求的操作- @ApiParam()用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)- @ApiModel()用于类表示对类进行说明,用于参数用实体类接收- @ApiModelProperty()用于方法,字段表示对model属性的说明或者数据操作更改- @ApiIgnore()用于类,方法,方法参数表示这个方法或者类被忽略...
2021-11-30 17:47:13 180
原创 什么是swagger、springfox
Swagger是一系列用于Restful API开发的工具,开源的部分包括:OpenAPI Specification:API规范,规定了如何描述一个系统的API Swagger Codegen:用于通过API规范生成服务端和客户端代码 Swagger Editor:用来编写API规范 Swagger UI:用于展示API规范非开源的部分包括:Swagger Hub:云服务,相当于Editor + Codegen + UI Swagger Inspector:手动测试API的工具 Soa
2021-11-30 17:04:05 799
原创 nginx常用命令
Nginx常用命令# 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务nginx -s stop# 平稳关闭Nginx,保存相关信息,有安排的结束web服务nginx -s quit# 因改变了Nginx相关配置,需要重新加载配置而重载nginx -s reload# 重新打开日志文件nginx -s reopen# 为 Nginx 指定一个配置文件,来代替缺省的nginx -c filename# 不运行,而仅仅测试配置文件。
2021-11-30 09:28:36 2120
原创 浅谈devops
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
2021-11-25 18:00:04 367
原创 nginx反向代理和负载均衡的区别
反向代理是把一些静态资源存储在服务器上,当用户有请求的时候,就直接返回反向代理服务器上的资源给用户,而如果反向代理服务器上没有的资源,就转发给后面的负载均衡服务器,负载均衡服务器再将请求分发给后端的web服务器。 区别就是:反向代理服务器是需要存储资源的,让用户更快速的接收到资源 负载均衡就是,为了保证后端web服务器的高可用,高并发,是不需要要存储资源,只需要转发用户的请求。负载均衡是做反向代理的目的之一。没太大区别,要说区别就是后端是1台了叫反向代理,有多台了就是负载均...
2021-11-24 10:19:09 2542
原创 k8s相关指令
功能说明 命令node查看服务器节点 kubectl get nodes查看服务器节点详情 kubectl get nodes -o wide节点打标签 kubectl label nodes <节点名称> labelName=<标签名称>...
2021-11-23 09:48:17 322
转载 linux命令
ls指令:ls对于目录: 列出该目录下的所有子目录与文件。对于文件: 将列出文件名以及其他信息推荐使用 ls -al-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件-l 列出文件的详细信息。-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)-F 在每个
2021-11-15 16:04:36 126
原创 什么是k8s(Kubernetes)
k8s是为容器服务而生的一个可移植容器的编排管理工具,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,它可以帮助用户省去应用容器化过程的许多手动部署和扩展操作。也就是说,您可以将运行 Linux 容器的多组主机聚集在一起,由 Kubernetes 帮助您轻松高效地管理这些集群。而且,这些集群可跨公共云、私有云或混合云部署主机。因此,对于要求快速扩展的云原生应用而言(例如借助 Apache Kafka 进行的实时数据流处理),Kubernetes 是理想的托管平台。...
2021-11-09 17:18:17 1669
原创 再了解springboot
首先先了解springboot的背景: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot所具备的特征有:可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs; 内嵌Tomcat或Jetty等Servlet容器; 提供自动配置的“starter”项目对象模型(PO...
2021-11-02 17:07:50 153
原创 xxljob任务实例
代码来源于官网1.简单模式@XxlJob("demoJobHandler") public ReturnT<String> demoJobHandler(String param) throws Exception { XxlJobHelper.log("XXL-JOB, Hello World."); for (int i = 0; i < 5; i++) { XxlJobHelper.log("beat at
2021-10-29 17:43:59 4047
原创 xxl-job分布式任务调度平台
xxl-job是在定时任务框架quartz(支持分布式任务调度,通过数据库竞争锁来实现)的基础上实现的,但是修改了任务调度的模式,并且任务调度采用注册和RPC调用方式来实现。技术栈mysql、ssm、内置netty作为RPC服务调用、quartz先来聊聊什么是任务调度:传统实现定时任务的方式:Thread线程、TimeTask一个轻量级定时任务队列框架,用于设置定时任务、ScheduleExecutorService定时周期执行任务、Quartz定时任务框架。这些方式都在单点系统使用,一
2021-10-18 13:59:09 392
原创 SpringCloud Alibaba Nacos服务注册和配置中心
什么是Nacos是一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心,Nacos就是注册中心+配置中心的组合Nacos的作用替代Eureka做服务注册中心替代Config做服务配置中心
2021-10-13 14:43:17 47
原创 了解Gateway新一代网关
什么是服务网关 服务网关=路由转发+过滤器1.路由转发:接收一切外界请求,转发到后端的微服务上2.过滤器:在服务网关中可以完成一系列的横切功能,例如:权限校验,限流以及监控等为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置:1)每个服务自己实现一遍2)写到一个公共的服务中,然后其他所有服务都依赖这个服务3)写到服务网关的前置过滤器中,所有请求过来进行权限校验第一种,缺点太明显,基本不用;第二种,相较于第一点好很多,代码开发不会冗余,但...
2021-10-13 10:46:25 135
原创 Hystrix工作流程
1.创建HystrixCommand(用在依赖的服务返回单个操作结果的时候)或者HystrixObserableCommand(用在依赖的服务返回多个操作结果的时候)2.命令执行,其中HystrixCommand实现下面前两种执行方式;HystrixObserableCommand实现后两种执行方式:execute():同步执行,从依赖的服务返回一个单一的结果对象,或是在发生错误的时候抛出异常queue():异步执行,直接返回一个future对象,其中包含服务执行结束时要返回的单一结果对象o
2021-10-12 10:28:02 391
原创 Hystrix-服务熔断
概念:当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断。如果没有熔断会怎样?栗子:当前系统中有A,B,C三个服务,服务A是上游,服务B是中游,服务C是下游。 它们的调用链如下:一旦下游服务C因某些原因变得不可用,积压了大量请求,服务B的请求线程也随之阻塞。线程资源逐渐耗尽,使得服务B也变得不可用。紧接着,服务 A也变为不可用,整个调用链路被拖垮。...
2021-10-11 17:33:11 1593
原创 了解Feign
Feign用在消费端,让编写java http客户端变得更加容易。Feign的作用 可以以Java接口注解的方式调用Http请求,它使java调用Http请求变的简单 Feign集成了Ribbon,实现了客户端的负载均衡
2021-10-09 17:54:19 50
原创 了解Zookeeper、和eureka的区别
zookeeper作为注册中心,也可以作为分布式锁的一种实现。ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理、统一命名服务、分布式锁、集群管理。 使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,ZooKeeper作为一个能够通用解决这些问题的中间件就应运而生了。Zookeeper的数据结构可以看做一棵树,每个节点叫做ZNode,每个节点可以通过路径标识。 Z..
2021-10-09 17:05:40 276
原创 了解Eureka
Eureka架构中三个核心角色:服务注册中心(Eureka的服务端应用,提供服务注册和发现功能) 服务提供者(提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现) 服务消费者(消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方)Eureka好比医院门诊,负责管理、记录服务提供者的信息。服务调用者不需要自己寻找服务,而是把需求告诉Eureka,然后Eureka把符合你的需求的服务告诉你。Eureka说白了就是一个注册服务中心。同时,服务..
2021-10-09 14:51:06 959
原创 了解Hystrix
Hystrix的作用: 1)服务降级 2)服务熔断 3)服务限流 4)实时监控1.背景介绍1.服务雪崩分布式系统环境下,服务间类似依赖很常见,一个业务调用通常依赖多个基础服务。如果各个服务正常运行,没有问题当Service A的流量波动很大,流量经常会突然性增加!那么在这种情况下,就算Service A能扛得住请求,Service B和Service C未必能扛得住这突发的请求。此时,如果Service C因为抗不住请求,变得不可用。那么Ser...
2021-10-09 14:32:51 53
原创 简单了解Ribbon
ribbon是springcloud核心组件之一,最重要的功能就是负载均衡,他的负载均衡是基于客户端的,zuul网关和feign可以通过ribbon轻松实现服务的负载均衡,同时避免与业务无关的冗余代码。一句话:负载均衡+RestTemplate调用...
2021-10-08 14:43:55 133
原创 多线程的四种实现方式
1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法3.通过Callable和ExecutorService创建线程4.通过线程池创建线程前面两种可以归结为一类:无返回值(通过重写run方法,run方式的返回值是void,所以没有办法返回结果)后面两种可以归结成一类:有返回值,通过Callable接口,就要实现call方法,这个方法的返回值是Object,所以返回的结果可以放在Object对象中第一种:继承Thread类,重写run方法public
2021-09-23 15:23:37 8390
原创 多线程-锁机制(2)
并发编程的三大特性:可见性、原子性、有序性 volatile保证可见性与部分有序性,但是不保证原子性,保证原子性需要借助synchronized这样的锁机制volatile与synchronized的区别 volatile只能修饰实例变量和类变量,⽽synchronized可以修饰⽅法,以及代码块。volatile保证数据的可⻅性,但是不保证原⼦性(多线程进⾏写操作,不保证线程安全);synchronized是⼀种排他(互斥)的机制。 volatile⽤于禁⽌指令重排序:可以解决单例双重检...
2021-09-23 11:27:24 63
转载 多线程-锁机制(1)
Java提供了多种多线程锁机制的实现方式,常见的有synchronized同步锁、ReentrantLock可重入锁、Semaphore、AtomicInteger等ReadWriteLock是什么?读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,我们只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁!读写锁接口:ReadWri
2021-09-22 18:00:31 188
原创 什么是SOA面向服务的架构
SOA粗暴理解:把系统按照实际业务,拆分成刚刚好大小的、合适的、独立部署的模块,每个模块之间相互独立。一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。举例:农民怎么养猪的?围个场地让猪跑,去餐馆弄泔水,下地打猪草,一个人包圆了。后来来了个奇怪的猪,不吃餐馆的泔水,只吃猪草,那要教育好多农民伯伯怎么养,改变养猪方式,结果没几个月又来了奇怪的猪,一定要喂82年的啥,只好又教育一遍农民伯伯。后来小明去养猪。他让一波人专门锻炼猪,一拨人专门打泔水,一
2021-09-22 13:42:18 112
原创 微服务五大组件
1.Eureka:注册中心2.Zuul:服务网关3.Ribbon:负载均衡4.Feign:服务调用5.Hystix:熔断器以电商项目为例:一.Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。 库存服务、仓储服务、积分服务中都有一个Eureka Client组件,这个组件专门负责将这个服务的信息注册到Eureka Server中。说白了,就是告诉Eureka Server,自己在哪台机器上,监听着哪个端口。而Eureka Server是一个注册中心,里面有...
2021-09-22 11:10:21 23742 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人