自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Docker:创建主从复制的Redis集群

主从复制的模式来提升性能用集群模式来提升吞吐量并提升可用性。

2023-10-24 23:55:23 1218

原创 使用Docker安装Redis

注:在redis.config中一定要修改daemonize 为no 关闭守护进程。#这是我使用的redis版本,如果需要其他版本修改版本号即可。通过-p参数指定容器的6379端口映射到宿主机的6379端口。#没有设置密码 因此可以直接进入。#切换到redis目录。kill [进程号]

2023-10-07 23:36:44 442

原创 Docker安装及基本使用

在中输入以下代码安装依赖环境 回车。

2023-10-07 21:14:28 456

转载 Java中的新生代、老年代、永久代和各种GC

因此,默认情况下,元空间的大小仅受本地内存限制。接下来GC线程会将活动区间内的存活对象,全部复制到空闲区间,且严格按照内存地址依次排列,与此同时,GC线程将更新存活对象的内存引用地址指向新的内存地址。首先,把Eden和SurvivorFrom区域中存活的对象复制到SurvivorTo区域(如果有对象的年龄以及达到了老年的标准,一般是15,则赋值到老年代区)复制算法将内存划分为两个区间,在任意时间点,所有动态分配的对象都只能分配在其中一个区间(称为活动区间),而另外一个区间(称为空闲区间)则是空闲的。

2023-09-05 10:13:18 257

原创 rrpc:实现熔断与限流

我们先看服务端,举个例子,假如我们要发布一个 Rrpc 服务,作为服务端接收调用端发送过来的请求,这时服务端的某个节点负载压力过高了,我们该如何保护这个节点?这个问题还是很好解决的,既然,那就,等接收和处理的请求数量下来后,这个节点的负载压力自然就下来了。在 rrpc 调用中就是限流,限流是一个比较通用的功能,我们可以在 rrpc 框架中集成限流的功能,让使用方自己去配置限流阈值;

2023-08-30 23:09:53 356

原创 如何使用阿里云服务器ECS及xshell连接

使用阿里云服务器运行linux的步骤1.购买服务器(免费试用3个月很香)2.重置密码:主要是实例密码,而不是linux里的密码3.创建安全组 : 安全组主要是设置端口号等,使用远程工具连接就必须有安全组4.设置及绑定密钥对(使用远程工具调用时需要使用密钥)5.连接xshell。

2023-08-29 16:00:06 2036

原创 java中是如何保证线程安全及线程安全常用的关键字

如果说jdk1.7的ConcurrentHashMap是分段悲观锁的话,那么LongAdder就是分段乐观锁。

2023-08-26 20:59:18 1093

原创 rrpc:引入简单spi机制实现主动发现某种服务

它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。可以用来启用框架扩展和替换组件, 主要是被框架的开发人员使用比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现, MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。Java中SPI机制 主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦。

2023-08-26 12:25:06 130

原创 rrpc:创建配置类及引入xml配置

为什么要引入xml配置,其实到目前为止我们的所有的配置相关的内容全部定义在了启动引导程序中,这样其实有一些不合理,事实上全局配置 我们应该统一放在一个类中,如下,让这个类将会成为我们当前工程的上下文环境,因此引入xml配置的方式会让我们的代码看起来更合理,更便于阅读。

2023-08-26 12:07:29 207

原创 rrpc:实现心跳检测和服务节点动态上下线

其核心原理十分简单,就是定期向所有的channel发送一个简单的请求即可,如果能得到回应说明连接是正常的。其中我们要在心跳探测的过程中完成以下几项工作:1、如果可以正常访问,记录响应时间,以备后用。2、如果不能正常访问,则进行重试,重试三次依旧不能访问,则从服务列表中剔除,以后的访问不会使用该连接。注意:重试的等待时间我们选取一个合适范围内的随机时间,这样可以避免局域网络问题导致的大面积同时重试, 产生重试风暴。

2023-08-23 00:42:25 227

原创 rrpc:实现最短响应时间、一致性hash、随机轮询的负载均衡算法

其他的就不多介绍了,之前的文章都有写。

2023-08-23 00:25:34 163

原创 rrpc:完成心跳检测功能和负载均衡的实现后,发现带负载的报文发送失败

今天遇到一个很头疼的问题,明明报文的请求和响应早已实现,只是建立了一个序列化工厂和压缩工厂将报文的编解码的序列化和压缩功能提出后,出现解压缩失败问题,但是心跳检测报文可以正常传输,心跳检测的报文也就22字节,但是带负载的报文要200多,有可能是报文长度在代码里多的直接抛弃。

2023-08-22 17:36:44 96

原创 rrpc:使用客户端+轮询实现负载均衡

Load balancing,即,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。在我们的rrpc中使用负载均衡将请求负载分配到不同的节点上。OIS七层模型负载均衡可以根据不同的标准进行分类。以下是一些常见的负载均衡分类:负载均衡服务器在决定将请求转发到具体哪台真实服务器的时候,是通过负载均衡算法来实现的。负载均衡算法,是一个负载均衡服务器的核心。

2023-08-17 22:21:12 435

原创 使用Hessian2进行报文的序列化:相比jdk的序列化极大的减少了传输的字节数

我是通过序列化工厂的方式来方便序列化方式的改变rengerpc: rrpc远程方法调用框架开发。

2023-08-16 22:44:05 313

原创 rrpc:网络传输实现封装报文与序列化

发送报文 writeAndFlush(object) 响应pipeline就生效了,报文开始出站---> 第一个处理器 in/out log---> 第二个处理器 编码器(out)(转化 rrpcrequest -> msg(请求报文),序列化,压缩)object包含1、请求id (long)//请求id需要一些算法所以需要8个字节的long2、压缩类型 (1byte)3、序列化的方式 (1byte)4、消息类型(普通请求,心跳检测请求)(1byte)

2023-08-15 15:21:04 361

原创 自主设计开发基于netty+zookeeper的rpc远程调用框架 (框架基本目录结构)

gitee地址:

2023-08-09 23:05:57 336 2

原创 创建zookeeper集群,zookeeper启动服务报错查看状态Error contacting service. It is probably not runnin

虚拟机版本centos7zookeeper的运行模式有单机模式,伪集群模式,集群模式三种。单个Zookeeper节点是会存在单点故障的,本小节我们搭建一个zk集群。Zookeeper节点部署越多,服务的可靠性越高,通常建议部署奇数个节点,因为zookeeper集群是以宕机个数过半才会让整个集群宕机的。zookeeper的集群模式下,节点分为leader和follower两种状态,leader负责所有的写操作,follower负责相关的读操作。此次配置3台zookeeper。

2023-08-07 21:05:38 581

原创 java:封装私有报文

Method Argument Types:被调用方法参数的类型列表。Body 的结构取决于具体的 yrpc 请求或响应数据。Method Arguments:被调用方法的参数列表。Service Name:被调用的服务名称。Method Name:被调用的方法名称。

2023-08-06 21:50:49 222

原创 gzip解压缩测试时,gzipInputStream.readAllBytes在jdk17的环境中无法使用,无法直接输出byte数组

更换测试方法 添加ByteArrayOutputStream将写入中间缓冲层。

2023-08-06 21:38:35 357

原创 苍穹外卖接入百度地图,解析错误bug解决(百度的人脸识别真的反人类,手机稍微一点点动就不能识别)

点击进入后会跳转认证界面,自己学习就选择个人开发者就好进入控制台,创建应用,获取AK:点击创建应用 因为我们是自己学习使用只需要轻量级服务即可输入以下这样就可以使用了。

2023-08-02 12:11:02 2615 8

原创 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘web

SpringBoot项目启动报错 : 如果说语法没有问题报启动错误大概率是项目模块修改后没有install,模块代码没有载入项目,或者idea没有自动导入。对整个代码install后编译成功。

2023-07-23 15:18:54 220

原创 IDEA2022使用git:error:failed to push some refs to ‘https://gitee.com/bbqnorth/repo2.git‘

在上一篇文章,已经将idea2022连接git的操作整理了一下接下来对初步使用git进行操作。

2023-07-22 15:16:22 306

原创 IDEA2022使用git及本地仓库和远程仓库的配置

1.因为此时连接好了git,因此VCS图标替换成了git(idea2022以前的版本应该还是vcs),选择Manage Remotes。1.在菜单栏选择VCS 选择 Create Git Repository 之后选择自己模块目录即可。2.在Version Control 目录下 选择Git。3.选择自己git配置的位置 --> apply 完成。2.点击加号 输入自己仓库地址即可。3.输入gitee的账号密码。2.右上角出现图标 完成。1.选择setting。

2023-07-22 13:54:01 4015

原创 gitee密码错误:使用git操作远程仓库,密码错误后不会弹出登录窗口,与远程仓库连接错误

2.搜索所有控制面板项(注意名字别输入错误)4.点击gitee修改密码即可。windows版本:win10。3.点击windows凭据。

2023-07-21 22:32:51 1582 1

原创 (SSM整合错误)java.lang.IllegalStateException: Failed to load ApplicationContext

报错的原因就是创建bookServiceImpl这个bean出错了,嵌套异常是bookDao不满足依赖,容器里面没有类型为“com.itheima.dao.BookDao的限定bean。3.最后查了一遍配置文件,发现Mybatis的@bean注解没有添加,咋也没想到会是忘记加注解。1.检查@Autowired注解有没有在BookserviceImpl中添加。2.检查pom文件spring依赖版本是否相同。猜测是引入bookDao时出了错。相同(此刻我内心是崩溃的)

2023-07-15 23:33:20 326 1

原创 Mybatis:增删改查

choose很像switch when很像case otherwise很像default。switch判断 set主要用于修改 foreach用于删除。多条件查询 动态查询。

2023-06-08 01:28:20 184

原创 IDEA2022在Mybatis 编写mapper.xml SQL语句时不自动提示SQL语句和数据库表的问题

1.Alt+Enter 选择language settings 没有就选择带language的。2.选择id为MySql即可。

2023-06-06 23:56:43 1037

原创 Mybatis:mapper代理开发

查看文件夹 :发现配置文件与接口在同一目录下(编译后文件都放在target->classes->com->itheima->mapper)我们需要在配置文件resource目录下创建一个与UserMapper所在目录同名的文件夹,并将配置文件userMapper放入该文件夹。在resources中创建文件夹与java下不同,java下是package.package.package即可,在resources下就需要 package/package/package。注:若maven中出现了中文乱码。

2023-06-06 19:36:22 106

原创 hadoop:集群配置

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。指定hadoop数据的存储目录 /opt/module/hadoop-3.1.3/data。①浏览器中输入:http://hadoop102:9870。①浏览器中输入:http://hadoop103:8088。1.Web端查看HDFS的NameNode。

2023-05-28 15:26:25 558

原创 idea2022:Maven工程本地依赖添加后,jar包显示没有导入

3.右击pom.xml,选中Maven,单击reload。2. 在Maven里面没有dependencies。1.在pom.xml文件下添加依赖。

2023-05-27 15:06:09 1096

原创 linux配置环境变量

虚拟机:ubuntu22.04首先:查看当前环境变量 :export。

2023-05-26 16:06:33 1705 2

原创 Ubuntu:hadoop集群关机或重启脚本

需求:我们在学习hadoop时要用到多台虚拟机,我目前的学习地点不固定宿舍、图书馆等,所以要经常进行虚拟机的关闭,避免电脑断电造成不必要的错误我之前的脚本都保存在 /home/opt/module/hadoop/bin/ #目录下,例如:hadoop群起脚本myhadoop.sh、xsync等脚本,这个目录设置了环境变量,因此我可以直接在这个目录下继续书写脚本。

2023-05-22 20:42:47 457 2

原创 IDEA 2022没有VM option,无法设置虚拟机用户

1.IDEA ---> 右键 >@ 选择 Modify Run Configurations 或者右上角 Edit configurations。2.可以看到没有VMoption这一行。3.单击Modify options。4.单击Add VM options。5.显示出来即可正常传参。

2023-05-22 14:21:14 2347 2

原创 创建scrapy爬虫项目

scrapy genspider 爬虫文件的名字 要爬取的网页。scrapy startproject 项目名。注意:项目名不允许使用数字开头 也不能包含中文。cd 项目名\项目名\spiders。scrapy crawl 爬虫的名字。setting 里面注释掉robots 他是一个君子协议。在spiders文件夹中去创建爬虫文件。

2023-05-21 16:55:00 576 1

原创 IDEA快捷键

IDEA 快速补全代码方式1、psvm、main:快速生成main方法2、geti:快速生成实例的方法3、var:自动补全声明 123.var4、new:实例化对象 User.new -> new.User().var -> User user = new User();5、allset:自动补全所有的属性set方法 user.allset该补全方式非官方自带,需要下载插件:https://github.com/yoke233/genS

2023-05-21 16:50:09 1194 1

原创 Ubuntu设置无图形界面:减少系统内存消耗

在学习hadoop过程中一次性要启动多台虚拟机,开机启动时又慢有卡,我的电脑运存是16GB,3台虚拟机同时启动时容易出现卡死的情况(一台虚拟机分配的运存是4GB),因此开启无图形界面减少内存消耗非常重要。

2023-05-21 12:35:11 1729 3

原创 Ubuntu 集群时间同步配置时间服务器及;error:Unit ntpd.service could not be found.

找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步。②修改2(集群在局域网中,不使用其他互联网上的时间)如果服务器在公网环境(能连接外网),可以不采用集群时间同步。增加内容如下(让硬件时间与系统时间一起同步)(4)1分钟后查看机器是否与时间服务器同步。

2023-05-17 15:21:57 3664 1

原创 hadoop:配置历史服务器JobHistory和日志聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。(2)分发配置:给其他虚拟机配置,使用我们自己写的基于rsync的shell插件。也就是我们之前配置的hadoop103:8088端口是无法查看历史信息的。为了查看程序的历史运行情况,需要配置一下历史服务器。配置好后通过我们写的插件jpsall即可查看历史服务器是否启动。======启动 hadoop集群 =======注意:开启日志聚集功能,需要重新启动。

2023-05-12 23:51:48 1107 2

原创 hadoop集群测试

边运行边通过http://hadoop103:8088查看运行情况progress为运行进度,Final为success即运行成功。1.创建input文件夹:因为集群测试运行在hdfs上,本地运行在虚拟机本身,因此需要在hdfs上操作。点击后可下载或显示32k的头文件都可(我这里选择head the file 输出 renge 2)output文件保存输出文件:点击进入后part-r-00000即为输出文件。通过NameNode查看完成情况:生成了output和tmp文件。

2023-05-10 22:35:54 107 2

原创 hadoop:编写jpsall脚本错误bash: 行 1: jps: 未找到命令

jps能够正常使用,可是编写脚本使用时显示未找到命令

2023-05-10 21:49:47 1799 2

空空如也

空空如也

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

TA关注的人

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