自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Welcome to my blog!

 Explain:First: because in addition to their own understanding and added a large number of official organization vocabulary, so it is inevitable to copy part of the other: Baidu Encyclopedia or ot...

2018-12-14 14:13:06 289

原创 多线程编程4.0

然后,我们使用CompletableFuture.supplyAsync()方法创建一个异步任务,并附加了一个回调函数,该回调函数将任务执行的结果转换为大写字母。在上面的代码中,我们定义了一个MyTask类,它实现了Callable接口,并且重写了call()方法,在该方法中模拟了一个耗时的操作。然后,我们使用RxJava创建一个Observable对象,并且链式调用了map()操作符和subscribe()方法,从而实现了异步任务和回调函数的功能。最后,我们等待任务执行完成。

2023-06-24 00:09:32 74

原创 多线程编程3.0

ConcurrentHashMap是一种线程安全的Map实现,它是通过将整个Map分为若干个Segment来实现的,并且每个Segment都包含了一个独立的Hash表,因此在多线程环境下,不同的线程可以同时对不同的Segment进行操作,从而提高了并发性能。在上面的代码中,我们定义了一个MessageQueue类,它使用ConcurrentLinkedQueue来实现消息队列功能,并且包含了push()和pop()方法来进行数据的入队和出队。然后,我们创建了一个生产者和一个消费者线程来对消息队列进行操作。

2023-06-24 00:07:27 250

原创 多线程编程2.0

在上面的代码中,我们定义了一个Buffer类,它代表了一个缓冲区,并且包含了put()和get()方法来进行数据的生产和消费。在上面的代码中,我们定义了一个MyTask类,它实现了Runnable接口,并且重写了run()方法,在该方法中实现了任务需要执行的操作。线程池是一种用于管理线程的机制,它可以帮助我们更好地管理线程的创建和销毁,从而提高程序的性能和稳定性。在上面的代码中,我们定义了一个MyThread类,它继承了Thread类,并且重写了run()方法,在该方法中实现了线程需要执行的任务。

2023-06-24 00:04:50 116

原创 多线程编程1.0

线程池可以帮助我们更好地管理线程的创建和销毁,从而提高程序的性能和稳定性。为了避免死锁,需要合理设计和使用锁,尽量减少锁的竞争和持有时间,避免出现循环等待的情况,以及采用其他线程协作的方式,如信号量、屏障等等。在编写多线程程序时,一定要注重代码的可读性和维护性,遵循良好的编码规范和设计模式,从而提高程序的可扩展性和复用性,减少出错的可能性。总之,在进行多线程编程时,我们需要尽可能地减少共享状态的使用,并且合理地使用同步机制、ThreadLocal、并发工具类和原子类等工具,从而确保程序的正确性和可靠性。

2023-06-24 00:01:51 371

原创 Jenkins系列-安装maven

Manage Jenkins->Configure System->Global Properties ,添加三个全局变量。全局工具配置->新增maven。Jenkins安装笔记整理。全局工具配置->新增jdk。添加Jenkins全局变量。

2022-08-08 21:34:11 158 1

原创 多线程处理List

开多线程来执行批量任务是十分重要的一种批量操作思路,其实这种思路实现起来也十分简单,就拿批量更新的操作举例:整体流程图按照指定大小拆分集合的工具类开启异步执行任务的线程池...

2022-07-04 11:31:50 1101

原创 23种设计模式 no.1

1.单例模式饿汉式—线程安全package com.example.demo.singleton;/** * 饿汉式 * 类加载到内存后,就实列化一个单例,JVM保证线程安全 * 简单使用,推荐使用! * 唯一缺点:不管用到与否,类加载时就完成实列化 */public class Singleton01 { private static final Singleton01 INSTANCE=new Singleton01(); private Singleton0

2021-02-03 17:57:53 104 1

原创 Spring Security源码分析01.

安全框架主要实现:提示:认证和授权例如:1、 掌握认证和授权2、 剖析源码入门案例:搭建一个springboot的web工程主要依赖如下:编写一个测试接口:通过浏览器url访问该接口:默认登录用户:user密码控制台打印的:这样就完成了一个简单的入门级demo。security的基本原理:security的本质上一个过滤器链:重点是三个过滤器:(1)FilterSecurityInterceptor::是一个方法级的权限过滤器, 基本位于过滤链的最底部。查看源码得

2021-01-29 12:01:04 100

原创 大数据应用-Flume+HBase+Kafka集成数据采集/存储/分发完整流程测试03.

系列文章目录Flume+HBase+Kafka集成数据采集/存储/分发完整流程测试文章目录系列文章目录一、说明二、应用服务模拟器程序开发一、说明两个flume节点采集slave1,slave2应用服务器,汇总在master上的flume,然后master上flume分为两端传递数据,一端是传递给Kafka,一端是传递给HBase,之前各个组件的配置我都已经总结好,详细请看上面的几篇文章,这一篇文章主要是对整个数据采集存储、分发做一个详细的测试。二、应用服务模拟器程序开发新建一个普通项目编写代

2020-12-17 11:44:42 376

原创 大数据应用- Kafka安装02.

软件安装与大数据应用文章目录软件安装与大数据应用一、kafka安装二、修改配置一、kafka安装创建目录cd ~cd /usrmkdir -p kafka给kafka赋权chmod u+x kafka_2.11-2.1.1.tar.gz解压kafka安装包到kafka目录tar -zxvf kafka_2.11-2.1.1.tar.gz /usr/kafka修改环境变量:vim /etc/profile参数#set kafkaexport KAFKA_HOME=

2020-12-17 11:24:25 119

原创 大数据应用- Flume安装01.

应用软件安装文章目录应用软件安装一、Flume的安装.二、修改配置三、对sinkHBase程序做二次开发.一、Flume的安装.现有三台服务器,分别为master,slave1,slave2将apache-flume-1.8.0-bin.tar.gz解压包上传到master根目录再次创建文件夹:mkdir /usr/flume给文件赋权:cd ~chmod u+x apache-flume-1.8.0-bin.tar.gz将apache-flume-1.8.0-bin.tar.

2020-12-17 10:56:05 219 3

原创 WebMagic爬虫框架01.

WebMagic爬虫框架应用Java版本的爬虫框架文章目录WebMagic爬虫框架应用前言一、特性?二、使用步骤1.引入Maven2.读入数据总结前言WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。一、特性?简单的API,可快速上手模块化的结构,可轻松扩展提供多线程和分布式支持二、使用步骤1.引入Maven代码如下(示例):<dependency> <groupId>us.code

2020-12-09 17:22:41 94

原创 BigData -Insatll Hive07.

Hive的安装将hive分发到slave01scp apache-hive-2.1.1-bin.tar.gz root@slave01:/root/创建文件夹mkdir hive解压tar -zxvf ~/apache-hive-2.1.1-bin.tar.gz -C /usr/hive编辑环境变量:vim /etc/profile参数:#set hive export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin export PAT

2020-12-04 18:03:04 85

原创 BigData -Insatll Mysql06.

构建数据仓库maser作为client客户端slave01作为hive server服务器端slave02作为mysql server创建快照防止损毁利用scp将mysql传到slave02的root目录下scp mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar root@slave02:/root/创建目录:mkdir mysql将mysql安装包移动到mysql目录下面mv mysql-5.7.29-1.el7.x86_64.rpm-bun

2020-12-04 17:33:47 76

原创 BigData -Insatll HBase05.

HBase集群Hbase安装usr目录下创建文件夹:mkdir hbase解压该文件到此目录:tar -zxvf hbase-1.2.4-bin.tar.gz -C /usr/hbase/Hbase配置cd /usr/hbase/hbase-1.2.4/conf编辑:vim hbase-env.sh参数:export HBASE_MANAGES_ZK=false export JAVA_HOME=/usr/java/jdk1.8.0_171 export HBASE_CL

2020-12-04 14:17:29 82

原创 BigData -Insatll Hadoop04.

创建目录并且解压Hadoop在usr目录下新建文件夹mkdir hadoop拷贝文件到该目录下cp hadoop-2.7.3.tar.gz /usr/hadoop/解压该文件tar -zxvf hadoop-2.7.3.tar.gz配置环境变量pwd找到该目录/usr/hadoop/hadoop-2.7.3编辑环境变量vim /etc/profile参数:export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3export CLASSPAT

2020-12-03 18:09:07 113

原创 BigData -Insatll Zookeeper03.

修改主机名到IP地址映射:命令:vim /etc/hosts参数:192.168.91.129 master master.root192.168.91.130 slave01 slave01.root192.168.91.131 slave02 slave02.root再次利用scp命令将host文件映射到其他两个主机: scp -r /etc/hosts slave01:/etc/hosts scp -r /etc/hosts slave02:/etc/hosts安

2020-12-03 13:59:31 105

原创 BigData -Insatll JDK02.

使用winscp上传文件:创建工作路径:kdir -p /usr/java解压jdktar -zxvf ~/jdk-8u171-linux-x64.tar.gz -C /usr/java/进入目录修改cd /usr/java/ cd jdk1.8.0_171pwd配置环境变量

2020-12-03 10:43:50 118

原创 BigData -Insatll System01.

1.设置IP地址2.创建用户adduser kfkpasswd kfkExit3.文件中设置主机名vi/etc/sysconfig/network4.主机名映射vi/etc/sysconfig/selinux重启5.关闭防火墙vi/etc/sysconfig/selinuxselinux=disabled6.卸载本身自带的jdkrpm -qa|grep Javarpm -e–nodeps 【jdk进程名称1,jdk进程名称2】7.root用户下设置无密码用户切换ls -l/

2020-12-02 17:21:39 132

原创 常用的推荐算法no.1

常用的推荐算法no.11.0基于人口统计学的推荐与用户画像1.0基于人口统计学的推荐与用户画像根据用户特质找到他的邻居;用户基本的信息;用户A是名女性,年龄介于2025岁,偏好物品A;用户B是名男性,年龄介于4045岁,偏好物品B、物品C;用户C是名女性,年龄介于 20~25岁;我们已为每位用户建立了profile(用户画像),现在我们要给用户C进行推荐。基于profile和合适的距离度量计算用户的相似度, 我们发现用户A与用户C最相似,可将用户A偏好的物品A推荐给用户C。用户画像用户画像(U

2020-06-06 19:37:20 386

原创 手写Spring框架 no1.

test

2020-05-14 12:05:19 127

原创 Flutter开篇 no1.

前言:Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。它也是构建未来的Google Fuchsia应用的主要方式。Flutter组件采用现代响应式框架构建,这是从React中获得的灵感,中心思想是用组件(widget)构建你的UI。 组件描述了在给定其当前配置和状态时他们显示的样子。当组件状态改变,组件会重构它的描述(

2020-05-12 15:29:11 196

原创 结课:测试直播

前言总结:托更了好几天了,忙里偷闲做完了.好了,结课了!直播这软件原理上很容易,无非就是要自己搭建SRS服务器或者用现成的CDN作为媒体流服务器,在基于socket搭建聊天系统,以及其他的列如阿里支付,微信支付等.可能重点在于其他业务逻辑和细节上.做app又必定花费我大量时间.所以以后有时间了在写也不迟.我这就告辞了.测试聊天创建第一个用户:创建第二个用户:测试直播启动SR...

2020-04-14 19:22:12 216

原创 socker聊天室:2+2完成 那么下面就实现基本通讯no2.

表填

2020-04-09 22:02:57 759

原创 搭建项目:1+1完成 那么下面就开始搭建项目no1.

前言:学习了1+1=2.那么我们来看看这个:目录1.0IM客户端编写.

2020-04-08 18:08:42 504

原创 方案:直播程序技术方案选择

场景1-直播:一对多技术方案推流:很多直播方都推荐用OBS推流,OBS具有开源 可改造等等优点.协议:rtmphlswebsocket流媒体:SRSCDN集群:Forward场景2-连麦:连麦场景技术方案介绍:直播主播可以满足粉丝的参与感.让粉丝产生幸福感。模型图1:说明:连麦用户向信令服务器发送连麦请求,信令服务器通知连麦主用户,若接受,双方向TURN请求各...

2020-04-07 16:43:12 439

原创 分析:直播流媒体服务器分析

项目GitHub开源地址:https://github.com/makewheels-zzq/ml-live前言:上篇文章主要介绍了,传输协议。以及一个流媒体SRS。SRS不必赘述,在对比一下其他流媒体以便做技术选型.流媒体服务器-NginxRtmpNginx介绍:详细介绍点我NginxRtmp项目地址:https://github.com/arut/nginx-rtmp-mod...

2020-04-07 16:04:35 2515

原创 环境:直播程序环境搭建

环境搭建:本地服务器:CenterOs8开发环境:jdk1.8数据库:MySQLdocker版本:19.03.7移动端选用:Flutter 微信小程序.搭建SRS服务器基于docker安装srs服务器.这里我拉取镜,docker拉取镜像:docker pull ossrs/srs...

2020-04-07 15:03:04 526

原创 解析:直播程序技术解析.

项目GitHub开源地址:https://github.com/makewheels-zzq/ml-live直播的原理.1.把主播正在录制的视频实时推送到服务器.再由服务器分发给下面的观众看.直播的处理.1.推流端:采集,美颜处理,编码,推流处理.2.服务器端处理:转码,录制,截图,鉴黄.3.播放器:拉流,解码,渲染.4.互动系统:聊天室,礼物系统,点赞.直播流程.需求分析...

2020-04-06 16:48:57 2228

原创 开篇 :直播软件分析.

前言:本人为个人开发者 .最近一段时间 因为一些原因 正式接触直播.打算从底层到应用编写一套基于Android Ios Web端 编写一套的直播软件.程序员的思维总是很直白 去动手写自己的项目验证想法.如果我有一千万,我就能买一栋房子。我有一千万吗?没有。所以我仍然没有房子。如果我有翅膀,我就能飞。我有翅膀吗?没有。所以我也没办法飞。如果把整个太平洋的水倒出,也浇不熄我对你爱情的...

2020-04-05 22:57:23 1127

原创 docker no2.

docker 制作镜像由于docker 官方提供的镜像可能出现高危漏洞等情况 所以我们可能会使用自身制作的镜像.制作步骤步骤一docker commit制作镜像改天写

2020-03-10 17:41:48 300

原创 docker no1.

什么是虚拟化?虚拟化主要的目的主要是 更好利用高性能机器全虚拟化架构!操作系统层的虚拟化平台虚拟化hypervisordocker的引入:docker的介绍:Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker属于Linux容器的一种封...

2020-03-10 14:27:31 234

原创 FastDFS分布式文件管理系统

1 FastDFS1.1 FastDFS简介FastDFS是一个开源的轻量级[分布式文件系统],它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。1.1.1 FastDFS体系结构FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可...

2020-03-10 10:28:42 202

原创 我来教你Netty的使用

Netty的主要组件ChannelChannel作为Netty网络通信的主体,可以看作是通讯的载体,主要有三个状态:打开、关闭、连接。​ Channel主要的IO操作:读(read)、写(write)、连接(connect)、绑定(bind),均为异步,也就是说在调用如上方法后,并不保证IO操作完成,但会在IO操作成功、失败或取消后,生成相应的记录保存在一个凭证中并返回。ChannelHa...

2019-12-03 18:01:00 200

原创 批量分表分库

存储过程:DROP PROCEDURE IF EXISTS `create_tables`;DELIMITER $$ //定义结束符 CREATE PROCEDURE create_tables ()BEGINDECLARE `@i` INT (11);DECLARE `@createSql` VARCHAR (2560);DECLARE `@j` VARCHAR(10);SE...

2019-11-27 15:49:09 235

原创 本地连接远程数据库

1.对所有用户进行授权GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH PRIVILEGES;如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIV...

2019-11-27 11:38:05 275

原创 vue+element .

安装:npm i -g @vue/clivue ui手动配置:功能预设Babel是将ES5 ES6互相转化的.

2019-11-18 13:17:56 108

原创 Sharding-jdbc使用干货

这里:先来个分表:引入配置文件:依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId&gt...

2019-11-06 14:16:46 354

原创 MyCat分表分库

分表:分库:分片节点:心跳检测与读写分离:

2019-10-16 14:14:11 98

空空如也

空空如也

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

TA关注的人

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