自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JolyouLu的博客

不断累计和学习的过程中把我所学的知识整理分享给大家,有那些地方存在错误的请大家指出,你们的点赞、关注、收藏是我最大的动力哦!

  • 博客(224)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 java技术交流

技术交流进群。

2024-07-25 20:44:45 161

原创 案例题(第二版)

在面向服务的体系结构(SOA)中,服务的概念有了延伸,泛指系统对外提供的功能集从应用的角度定义,可以认为SOA是一种应用框架,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。SOA使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行平台,从而提高业务流程的灵活性从软件的基本原理定义,可以认为SOA设施一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

2024-05-24 22:27:36 853

原创 案例题(第一版)

软件架构设计通常在每年的第一题,该题必考。

2024-05-24 22:16:46 1204

原创 Kubernetes-进阶(Pod生命周期/调度/控制器,Ingress代理,数据存储PV/PVC)

以下是Pod的yaml中可配置的信息使用命令可以看到pod的可配置的属性使用命令可以看到pod.metadata的可配置的属性apiVersion: v1 #必选,版本号,例如v1kind: Pod   #必选,资源类型,例如 Podmetadata:   #必选,元数据name: string #必选,Pod名称namespace: string #Pod所属的命名空间,默认为"default"labels:    #自定义标签列表spec: #必选,Pod中容器的详细定义。

2023-10-24 12:00:30 442

原创 Kubernetes-基础(Namespace,Pod,Lable,Deployment,Service)

操作类型创建/更新资源使用声明式对象配置kubectl apply -f xxx.yaml删除资源使用命令式对象配置kubectl delete -f xxx.yaml查询资源使用命令是对象管理kubectl get/describe 资源名称。

2023-10-24 11:46:12 319

原创 Liunx-Kubernetes安装

Kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包。

2023-10-24 11:34:37 208

原创 Hadoop2.x-基础[HDFS篇](介绍、常用API、I/O操作、工作机制)

HDFS(Hadoop Distributed File System),是一个文件系统,用于存储文件,通过目录树来定位文件,并且它是分布式的在大数据环境下,随着数量越来越多在一个主机下已经不能存下所有数据了,所以就需要将数据分布在不同的主机磁盘上,但是这就会带来一个问题就是数据分布在各个主机上对于数据的读取与数据的写入维护非常不方便,这时就需要一种解决方案能够管理这些分布式的数据,HDFS就是这些分布式文件管理系统中的一种。

2022-11-13 13:17:07 771

原创 Hadoop2.x-基础(MapReduce)

在前面讲到的Hadoop提供的数据序列化类型,在一些复杂业务上是无法满足需求的,Hadoop提供了自定义的序列化类型,分为如下步骤实现Writable接口生成空参构造,反序列化时,需要反射调用空参构造函数重写序列化方法重写反序列化方法要想把结果显示在文件中,需要重写toString(),可用"\t"分开,方便后续用如果需要将自定义的bean对象放到key中传输,则需要实现Comparable接口,因为MapReduce中的Shuffle过程要对key进行排序。

2022-10-24 21:57:06 1036

原创 Hadoop2.x-基础[环境搭建篇](Hadoop各组件介绍、安装与部署、本地模式、伪分布式、完全分布式)

经过前面的使用已经对scp与rsync命令有了一定的理解,但是可以在文件分发时还是比较麻烦,每台远程主机对应都要执行一条命令当远程主机很多的情况下还是需要执行很多命令,所有需要编写shell脚本实现一条命令可以分发多个服务器单节点启动使用如下命令登录到每个服务器上单节点启动指定服务器的hadoop服务。...

2022-08-07 21:44:08 1594

原创 VMware-克隆虚拟机

在使用VMware过程中需要经常克隆虚拟机,但是在克隆完整虚拟机后通常都会出现一个问题就是,网络无法连接因为网卡冲突了,告诉大家如何解决。

2022-07-31 16:51:05 4593

原创 Kafka-基础(同步消息、异步消息、事务消息、分区规则、Leader选举、分区副本、分区分配策略、消息消费)

Liunx-Kafka单机部署Liunx-Kafka集群部署创建主题主题信息指定分区未指定分区,存在Key未指定分区,无key数据可靠性数据可靠方案旧主题分区规则首先编写一个配置文件生成负载均衡计划生成执行计划验证关闭其中一个节点前置知识Broker2宕机Broker2恢复首先编写一个配置文件验证首先编写一个配置文件验证超期数据处理规则delete说明compact说明同步提交异步提交自定义offset消费...

2022-07-09 21:52:53 1385 1

原创 Liunx-Kafka集群部署

Zookeeper-快速入门(服务安装、单机部署、集群部署集群部署修改配置文件broker.idlistenerslog.dirszookeeper.connect

2022-07-09 21:28:59 144

原创 Liunx-Kafka单机部署

Zookeeper-快速入门(服务安装、单机部署、集群部署单机部署修改配置文件broker.idlistenerslog.dirszookeeper.connect

2022-07-09 21:26:22 394

原创 并发编程-进阶[锁篇](Monitor、锁原理、锁膨胀、偏向锁、线程活跃性、wait/notify、parl/unpark、ReentrantLock)

并发编程-进阶共享带来的问题在开发中通常需要操作共享变量,如下案例则是一个加法计算,构建了2个线程同时操作sum对其进行+1,根据逻辑那么2个线程最终结果应该是2000,多次执行下可以发现有时结果并不符合预期,这是就是共享带来的问题问题分析在sum+=1并不是一个原子性操作,可以先简单理解为不是一次性操作(如:sum=1、sum=2、sum=3这些就是一次性操作)sum+=1在实际执行时是3个步骤将sum读取到寄存器中寄存器+1将结果写回内存sum中所以在多线程情况下对共享数据

2022-04-10 19:49:37 736

原创 并发编程-基础(Thread、FutureTask、Join、Interrupt、守护线程)

基础在学习并发编程时,首先需要具备如下几个条件才能让你跟好的阅读该专栏的文章希望你不是一个初学者,对于一些线程安全问题,需要接触过java Web开发、Web服务器、分布式框架时才会遇到,所以需要具备一定实际开发经验才能更好的理解到文章中的例子完成javaSE中的所有知识点学习,了解如何搭建maven项目了解jdk8的新特性,最好对函数式编程和lambda有一定了解对slf4j有所了解,文章中的日志打印都使用slf4j对lombok插件有所了解,文章中使用Lombok简化java bean编

2022-04-05 21:12:20 690

原创 Liunx-安装SonarQuble

安装SonarQubleSonarQuble是一款代码审查工具,他可以快速的发现编写的代码种存在的问题,SonarQuble可以检测Java, C#, PHP, Python, JavaScript, TypeScript等十多款语言的代码问题所需环境mysql:SonarQuble安装需要mysql数据,因为SonarQuble会将代码审查结果保存到mysql种unzip:由于SonarQuble安装包是zip,需要使用unzip命令解压,在liunx执行yum install unzip安

2022-01-31 16:59:45 1310

原创 Liunx-安装Maven

安装Maven在安装Maven需要有一定的Liunx知识,小伙伴可以通过我以下2篇博客学习到一下liunx的基础知识VM虚拟机安装LiunxLiunx基础命令安装包下载https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gzMaven的安装上传安装包将安装包上传到liunx中解压安装包#进入local目录cd /data/software/#解压安装包tar -zxvf

2022-01-27 19:01:15 1697

原创 SpringCloud-Alibaba(Nacos、Sentinel、Seata、阿里系微服务、分布式事务)

SpringCloudAlibaba由于SpringCloudNetfix组件已经维护模式,以为着Netfix大部分组件若出现大问题才会修补,SpringCloudNetfix将不再开发新版本了,那么这时就需要替代解决方案,这时就诞生了SpringCloudAlibabaNacosSpringCloudAlibaba-Nacos,服务和配置中心,Nacos相当于Eureka+Config+Bus组合,即注册中心+配置中心+总线,比SpringCloudNetfix使用更加方便一个定3个Na

2022-01-27 13:00:43 1356 1

原创 Liunx-Nacos集群部署

Liunx-Nacos集群部署我们安装1nginx+3Nacos+1mysql的方式完成Nacos的集群部署安装包下载进入到Nacos的git仓库下载nacos-server-1.3.0.tar.gz安装包,并且将安装包拷贝到Liunx中,并且使用tar目录将安装包解压下载地址:https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.tar.gz配置数据源数据库初始化首先需要将3个Na

2022-01-27 12:29:27 3233

原创 树莓派4B-安装64位操作系统

树莓派安装64位操作系统我使用64位操作系统主要原因是需要使用树莓派搭建Web服务器,由于Web部分服务需要64位操作系统镜像下载树莓派官方并没有提供64位的镜像,所以本次安装的开源镜像,本人一直在使用感觉非常的不错,镜像中自带64位的Docker非常符合搭建Web服务器的需求gitee地址:https://gitee.com/openfans-community/Debian-Pi-Aarch64我下载的是OPENFANS-Debian-Buster-Aarch64-ext4-v2021-

2022-01-16 12:02:17 3805 2

原创 SpringCloud-请求链路跟踪(Sleuth、ZipKin)

SpringCloud请求链路跟踪在微服务框架中,一个客户端发起的请求会在后端系统中,经过多个不同的服务节点,调用来协同产生最后的请求结果,那么就会形成一个复杂的调用链,在链路中任何一个环节出现高延迟或错误都会引起请求最后的失败SleuthSpringCloudSleut的出现是为了监控在微服务环境下的后端服务的调用链,配合上zipkin可图形化展现请求的整个调用过程链路监控的搭建ZipKinServer构建从SpringCloud的F版起来已不需要自己构建ZipKin Server了

2022-01-15 14:26:26 347

原创 SpringCloud-消息驱动(Stream、生产者、消费者)

SpringCloud消息驱动StreamSpringCloudStream,的诞生是为了解决各种消息中间件之间的兼容性问题,学习过消息中间件的同学都知道现在市面上流行的消息中间件有ActiveMQ、RabbitMQ、RocketMQ、Kafka它们之间的部署于使用都有较大的差异,那么若分布式系统下同时用到了多种消息中间件,那么会增加开发人员的学习成本,CloudStream的诞生就是为了解决这种问题,屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型介绍官方定义SpringCloud

2022-01-15 14:24:30 1831

原创 SpringCloud-服务配置(分布式配置中心、消息总线、消息队列、定点通知)

SpringCloud-服务配置因为在微服务系统下,会出现大量的服务,每一个服务都有自己的配置文件,那么若配置调整的话那么会很麻烦需要修改很多服务的配置文件,所以需要一套集中式的,动态的配置管理设施,SpringCloud提供了ConfigServerConfigServerConfigServer是SpringCloud分布式配置中心,他用于访问远程git仓库中的配置文件,其它服务可通过它获取到远程仓库的配置,实现当远程仓库配置有所调整后其它服务也可以获取到最新配置搭建配置中心依赖引入

2021-12-25 20:04:33 868 1

原创 SpringCloud-网关路由(GateWay、Predicat、GlobalFilter)

SpringCloud-网关路由GateWayGatWay即网关,他就像守门的安保人员,他是整个微服务架构的组成部分,主要功能是为服务提供过滤、熔断、限流、重试等功能基本介绍SpringCloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通信框架,使得Gateway 在高并发下有很好的性能,若想了解Netty框架可以阅读我的专栏JAVA网络编程GateWay能干什么? 反向代理、鉴权、流量控制、熔断、日志监控等三大核心Ro

2021-12-19 16:53:17 3116

原创 SpringCloud-熔断限流(Hystrix、熔断、降级、监控)

SpringCloud熔断限流分布式调用链在微服务架构下,由于业务的逻辑实际就是服务与服务之间的远程调用,当一些复杂业务时那么会调用多个服务,这些被调用的服务会像链条一样一环扣一环的执行称为调用链,当调用链中其中一个环节发生了异常、响应超时,那么可想而知这会对整个业务照成很大影响高并发下性能问题在高并发下一套应用很有可能会被一个业务处理极慢的接口拖死,由于业务处理较慢接口并发量过高那么就会有很多线程被打开处理业务,并且未能及时返回最终导致新的请求进入后tomcat线程池中已没有空余线程池分配给

2021-12-18 22:53:10 3057 1

原创 JAVA-密码学(散列加密、对称加密、非对称加密、数字签名)

散列加密、对称加密、非对称加密、数字签名搞不懂?就这篇博客给你安排的明明白白

2021-12-15 21:51:55 1591

原创 SpringCloud-负载均衡(Ribbon、OpenFeign)

SpringCloud负载均衡RibbonSpringCloud Ribbon是基于net fix Ribbon实现的一套客户端负载均衡工具,Ribbon客户端提供一系列的完整配置项如链接超时,重试等Ribbon负载均衡使用依赖引入方式1:在Eureka-Client的包中已经默认引入了Ribbon所以无需再次引入额外的包了方式2:当然如果你pom中没有引入Eureka-Client包,那么直接在pom文件中添加如下内容即可<dependency> <

2021-11-21 01:03:26 418

原创 SpringCloud-服务注册中心(Eureka、Consul、Zookeeper、快速上手)

SpringCloud服务注册中心EurekaEureka是一种服务治理的实现,在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,所以需要使用服务治理,管理服务之间的依赖关系,可以实现服务调用、负载均衡、容错等Eureka包含组件Eureka Server提供服务注册服务各个微服务节点通过配置启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中会保存着所以可用的服务节点信息,节点信息可用在Eureka管理界面中看到Eurek

2021-11-17 22:00:41 1118

原创 SpringBoot-基础入门(项目构建、项目打包、过滤器、拦截器、全局异常处理)

SpringBoot基础入门SpringBoot是一个强大,并快捷的框架,能够快速搭建一个生产级别基于Spring的应用程序,相较于传统的SSM、SSH项目SpringBoot遵循约定大于配置使得构建项目时省去了繁琐的配置项目构建基于Maven构建快速构建以下构建使用的是Idea构建构建,点击文件创建一个新的项目,使用spring官方构建工具进行构建填写项目名称,选择jdk版本号等信息下一步后会接入一个依赖选择界面,勾上对应依赖其实就是在pom.xml中加入该依赖,这里我选择

2021-11-09 17:45:03 1137

原创 RabbitMQ-进阶(镜像队列、负载均衡、联邦插件)

RabbitMQ进阶RabbitMQ进阶,是对RabbitMQ基础进行一个补充,里面涵盖了集成SpringBoot框架的使用,以及集群搭建,已经集群相关知识集成SpringBootSpringBoot集成RabbitMQ,常用案例SpringBoot-集成RabbitMQRabbitMQ集群部署Liunx-RabbitMQ集群部署镜像队列在RabbitMQ集群模式下,创建的队列是某一个节点下的,并不是集群节点之间共享的,所以当某个节点宕机那么该节点下的所有队列也无法访问了,通过镜像

2021-10-28 16:28:59 1069

原创 Liunx-RabbitMQ集群部署

Liunx-RabbitMQ集群部署以下说明的是RabbitMQ集群部署,在部署集群之前首先需要准备3台机器,并且都安装上RabbitMQ单机版,如果未安装的可以阅读Liunx-RabbitMQ单机部署文章Liunx-RabbitMQ单机部署搭建示意图首先准备3台装有单机版的RabbitMQ的服务器,让102与103连接上101,3台MQ构成一个集群修改主机HostName#修改主机hostnamevim /etc/hostname#修改主机host文件让各节点相互访问#增加其它

2021-10-28 16:25:22 835

原创 SpringBoot-集成RabbitMQ(延迟队列、备份交换机、Mandatory)

SpringBoot-集成RabbitMQSpringBoot集成RabbitMQ配置十分的简单,只需要按照以下步骤完成即可依赖引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency>

2021-10-28 16:20:59 507 1

原创 RabbitMQ-基础(四大核心概念、六大模式、消息应答、持久化、分发逻辑、主题模式、延迟队列)

RabbitMQ-基础RabbitMQ,2007年发布,是一个AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一RabbitMQ功能比较完备、健壮、稳定、易用、并且跨平台,支持语言如python、ruby、.net、java、jms、c、php、ajax,并且文档齐全,提供了开源的管理界面,很高的社区活跃度,更新频率相当高四大核心概念生产者:发送消息到的RabbitMQ客户端为生产者交换机:是RabbitMQ非常重要的一个部件,用于接收来自生产者的消

2021-10-24 11:50:15 1122

原创 Liunx-RabbitMQ单机部署

RabbitMQ单机部署前置环境使用RabbitMQ那么需要准备Erlang环境才能运行,通过Erlang安装包下载下载对应的rpm包,并且拷贝到liunx上执行如下命令安装Erlangcurl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash# 我这里使用的是23版本sudo yum install erlang-23.2.1-1.el7.x86_64注

2021-10-24 11:47:53 2390

原创 Elasticsearch-高级(读写原理、倒排索引结构、索引更新、自定义分析器、乐观锁、外部版本控制、集群脑裂处理)

Elasticsearch高级数据写流程当对ES集群其中一个节点收到doc的增删改时首先ES会对doc的id进行hash计算,计算该文档需要由那个主分片操作,并将请求转发到相应的主分片中主分片收到请求完成写入后,会发送一条消息给复制分片,复制分片收到消息后同步数据,同步完毕后会返回消息给主分片最终主分片收到全部复制分片同步成功消息后,返回客户端操作成功通过数据写流程可用发现,ES为了保证数据一致性主分片与复制分片每次写操作时都需要主分片与复制分片同时写入成功后才算成功,可通过con

2021-09-10 09:49:29 515

原创 Elasticsearch-进阶(核心概念、集群架构、集群健康、故障转移、水平扩容、分片调整、故障处理)

Elasticsearch进阶ES核心概念索引(Index)一个索引就是一个拥有几分相似特征的文档的集合,如可以按用户信息、产品信息、订单信息分类放到不同的索引下,每个索引都有一个名称(必须全部是小写字母),我们对所有的文档数据进行增删改查操作时都是需要先指定索引,再次操作该索引下的文档,在ES单机或集群中可以定义任意多的索引,只要能搜索的数据必须索引,ES索引的一切设计都是为了提高搜索性能类型(Type)在一个索引中,你可以定义1种或多种类型(6.x之前),一个类型是索引的一个逻辑上的分

2021-09-10 09:43:47 367

原创 Elasticsearch-基础(索引操作、文档操作、复杂查询、单机部署、集群部署、Kibana使用)

Elasticsearch基础基本概述Elasticsearch简称ES,ES是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心,它可以几乎实时的存储、检索数据,并且本身也有很好的扩展性,可以扩展到上百台服务器,处理PB级别的数据,常说的ELK Stark指:Elasticsearch+Logstash+KibanaES安装Liunx-Elasticsearch单机与集群部署Win-Elasticsearch单机与集群部署客户端的安装ES是HTTP协议

2021-09-02 17:42:31 325

原创 Liunx-Elasticsearch单机/集群部署

Liunx-Elasticsearch单机/集群部署ES单机部署ES全称Elasticsearch,Elasticsearch是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况,安装也很简单下载安装包从Elasticsearch官网下载安装包,选择Liunx版本解压安装包将下载好的压缩包上传到Liunx中,使用tar -zxvf elasticsea

2021-09-02 17:35:44 204

原创 Win10-Elasticsearch单机/集群部署

Win10-Elasticsearch安装ES单机部署ES全称Elasticsearch,Elasticsearch是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况,安装也很简单下载安装包从Elasticsearch官网下载安装包,选择Win版本解压安装包下载完毕后直接解压启动注意:Elasticsearch最低支持JDK8,如果你所使用

2021-09-02 17:32:08 1022

原创 分布式数据库中间件介绍

分布式数据库中间件在分布式情况下随着用户量的增加,Mysql数据库表逐渐庞大随之而来的问题就是导致数据库性能的下降,当数据量超过500W行那么就可以考虑分库分表了分库分表概述什么是分库分表分库分表,相信大家在编写Web项目的时都会使用到关系型数据库,通常在传统的Web项目中我们一个项目只会对应一个数据库,当对于类似电商这些用户量与数据量大的项目通常使用单个数据库是无法支撑的,所以就有了分库分表,即把项目中的表按不同的业务分别存放到不同的数据库中、或把一张表数据拆分到不同的数据库中为什么要分

2021-08-30 00:06:17 1808 2

Mysql-my.ini-基础配置(含说明)

Mysql基础的安装配置文件,(basedir)置mysql安装目录,(datadir)设置mysql数据库的数据存放目录

2020-06-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除