自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Netty 设计模式之 reactor

高性能的网络编程都绕不开反应器模式 nginx ,redis, netty1 什么是反应器模式呢?:反应器 由reactor反应器线程,任务分发器 ,handler处理器等角色组成,2 反应器的职责是什么?负责响应IO事件,并且分发到handlers(自定义处理器)去处理具体的业务逻辑3 handler处理器的职责(非阻塞的执行业务逻辑的代码片段)这个是个简单的测试 阻塞的BIO 也就是服务端的阻塞 public static void main(String[] args)

2022-02-16 11:56:45 870

原创 Netty 学习笔记

学习netty的前提(小白勿扰)1两种设计模式(reactor反应器设计模式,适配器设计模式)熟练掌握2熟练掌握Socket 套接字编程3熟悉网络协议4~7层协议(1-3)无需关注4 熟练使用JDK.5的 java.util.concurrent 包下的 Thread Atomic ConDown (以及信号类相关的辅助类)锁。jdk 1.7 之后的线程池 (7大参数)------------------------------------------------------------

2022-01-17 15:51:16 287

原创 Netty Handler中使用 Spring IOC 的 @Autowired注解无效

网上有很多处理方式---(经过自己的测试,全部都是没有用的处理方式,提供一种本人测试2天的一种方式)出现装配不进去的原因:new 出来的Bean 和 Spring Bean IOC工厂提供的Bean不是在同一个管理体系中,我们使用的Netty包中的handler是使用new的方式,导致它的子类中 不能直接装配其他组件,在handler中可以使用这种方式处理的方案:@EnableScheduling@SpringBootApplication@RestControllerpubl..

2022-01-13 14:50:05 433

原创 平凡的世界

转瞬即逝是什么意思, 在年少的时光我都会发起这样的疑问,但是却得不到自己想要的答案,但是我锲而不舍依旧重复着同样的疑问,犹如圆规的针尖,始终走不出用我的心为支点规划的舒适圈,我曾经无数次想要挣脱出去,去认识到时光流失,珍惜时光,珍惜自己,珍惜身边人,珍惜这个世界的真理,无奈,每次都以失望告终, 随着时间车轮的脚步不知不觉已经褪去原先的稚嫩,对这个陌生的世界的已存在的事物有了部分的认识,我开始担忧,开始害怕,真相原来是这样原来我一直被禁锢在以自己的心为原点的舒适圈,半步没有前进。原本知道...

2021-09-30 13:56:31 91

原创 自己搭建一个docker 操作系统 ubantu,部署相关服务, 自制一个镜像服务

1 ,安装docker(1)一键安装 方式 阿里云 18.04 测试通过curl -fsSLhttps://get.docker.com| bash -s docker --mirror Aliyun2 切换用户 或者使用 管理员权限去执行命令sudo su +[命令行] 或者 su + [命令行]3. 查看docker 版本 docker -v4 安装对应的操作系统的镜像docker pull [系统镜像名称如 ubantu] ...

2021-09-18 14:37:16 191

原创 Netty 抽象协议(非常简单)---万物皆对象

简介:网关使用netty作为通讯框架,redis作为缓存(处理许可,指令存储,记录存储)处理上位机(BS,CS的服务)和下位机(各种设备)之间的数据通讯, 对于不同的场景处理不同的方式。面向Web或者移动App需要网关具有认证,鉴权,缓存,服务编排,监控告警等功能。面向合作伙伴开放的API:满足业务形态对外开放,与企业外合作伙伴建立生态圈,此时的API网关注重认证,权限分级,流量管控,缓存等功能;企业内部系统互联互通:这类场景,主要是为了企业内部存在不同部门,而部门之间的技术栈不同,使用不同

2021-08-25 13:35:32 265

原创 2021-03-30

springCloud的学习 ubantu 服务器的学习, docker容器的学习 hive的学习 handoop的学习MQ 的学习 , 源码的学习, 框架以及新 技术的学习, 自己写插件ubantu是一个基于debian的以桌面为主的Linux操作系统,据说其名称来自非洲南部祖鲁语,或科萨语,意思是人性,我的存在是非洲传统的一种价值观,ubantu目标为一般用户提供一个最新的又相当稳定的主要以自由软件构成的操作系统,ubantu具有庞大的社区力量支持,用户可以方便的从社区获取帮助虚拟机..

2021-03-30 17:41:09 111 1

原创 SQL优化

执行顺序系统角色表 ---》学生表---》系统角色部门表---》系统人员表---人员角色表----》人员部门SQL优化的一些方法1.对查询进行优化,应该尽量避免全表扫描,首先 考虑在where 及order by 设计到的列上建立索引2.应该尽量避免在where子句对字段进行null值判断,否则将导致殷勤放弃使用索引,进行全表扫描3.尽量避免在where自居中使用!=或者使用><操作符,否则将殷勤放弃使用索引而进行全表扫描4.尽量避免在where子句中使用 or来连接条件,否则将导

2020-12-02 12:59:49 95

原创 Autho-Token

Auth-token1.0:(1)由于http的无状态性,前端服务器需要存储每个用户对用的 session_id,由于访问量巨大,所以服务器前端通过nginx做了集群,做(反向代理和负载均衡) 由于做了集群,每次请求发送的服务器不固定,所以使用**(沾粘性session)**(2)session-id存储到缓存服务器上去,但是redis可能也会挂了所以redis也需要做集群。(3)问题:如果不保存sessionid,不做验证就不知道是不是系统内部合法用户,容易被攻击解决方案:用户登录成功,返还一个

2020-10-30 17:23:54 1380 1

原创 昨天遇见一个需求,反思一下自己的问题

需求:系统下面的菜单管理中的按钮添加权限的问题。影响:和前端人员产生争执出现了分歧,主要是我返回的数据格式和她前端如何展示。产生问题的原因我的问题 :考虑问题不够全面, 从项目的局部去看待问题,只想在当前页面下去加没有考录到后期所有的按钮都需要添加这个功能过滤。我的解决方式:修改数据库表添加字段来标识这个功能按钮,另一个字段是全段是否展示0展示/1不展示大佬的解决方式和教导第一考虑问题比较全面,小健这个项目要考虑到以后面所有的按钮都需要添加这个权限过滤,你感觉应该怎末做,是不是应该单独写一个

2020-08-05 09:51:40 128

原创 今天写了几个递归工具类记录一下

package com.energetic.energetic.util;import com.energetic.energetic.pojo.DormStructure;import com.energetic.energetic.pojo.SysUser;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.text.SimpleDateFormat;im

2020-07-24 15:04:56 196

原创 今天把写的一个调度器的内容 从sql中给提取了出来,记录一下

**** * 晚归归寝 * @author Administrator */@Configurationpublic class DormScheduleStayUp implements SchedulingConfigurer { @Autowired(required = false) private DormParamSettingMapper settingMapper; @Autowired(required = false) private DormClo

2020-07-22 18:20:46 124

原创 数据格式的转换

public static void main(String[] args) {StringBuilder builder = new StringBuilder();builder.append("Pin = "+123456);System.out.println("字符串是"+builder); Pin = 123456Map<String, String> coditionMap = new HashMap<&gt

2020-07-16 12:49:08 336

原创 递归查询树列表

public class GenerateCalculatorUtil { //递归生成菜单树 public static List<DormStructure> getTree(int pid, List<DormStructure> list){ List<DormStructure> newTreeList = new ArrayList<>(); for (DormStr

2020-07-08 18:44:30 254

原创 Mybatis 你可以通过这样 把传过来的参数集合变成一张临时表

SELECT tab1.val from<foreach collection="list" index="index" item="item" open="(" separator="union" close=")"> select #{item.dormUserPin} as val</foreach>tab1WHERE tab1.val not in (select hu.pin from hr_userinfo hu)注意到没有,其实就是简单的拼接 用的

2020-07-08 18:39:31 4015 6

原创 @Scheduled项目中用到的一个小知识点

今天写东西的时候需要在自定义的请求类中去设置请求的seeionid,于是就写了一个工具类 记录一下;package com.energetic.energetic.util.scheduler;import com.alibaba.fastjson.JSONObject;import com.energetic.energetic.service.face.sense.SenseBoxDbService;import com.energetic.energetic.util.ResponseRe

2020-06-28 20:39:27 462

原创 有关门禁系统中的人脸推送到大屏使用的webSocket布控推送记录一下

突然感觉之前紫萼的都不是很认真,从进以后写一点每天上班都用到的一些东西下面这个就是推送之前的基本逻辑,注释掉的东西是 由于原本的抓拍的图片不是很清晰,所以采用人员注册时的上传的图片保存到本地的写法;** * 商汤盒子 * @author Administrator */@RestControllerpublic class SenseBoxController { //别人给的数据 @Value("${server.port}") private String port;

2020-06-28 19:42:47 404

原创 WebSocket的原理和优缺点

websocket 是长连接,受网络限制比较大,需要处理好重连,比如用户进电梯或电信用户打个电话网断了,这时候就需要重连,如果 ws 一直重连不上,有些较复杂的业务方会不愿意的,是不是还要搞个 http 降级?所以大部分不重要的业务,使用 ws 不如使用 http 轮训来的简单、实在。ws 长连接的用户收到消息是个 push 操作,http 轮训用户收消息是 pull 操作,push 都存在单生产推多消费,为广播模型,怎么处理好连接,保障每个消费推且只推一次,很多程序员这个问题不一定能够解决。pull

2020-06-21 18:06:57 5314

原创 压缩文件的批量导入图片

/*导入图片的接口*/@RequestMapping(value = {"/load_photo"})public ResponseResult load_photo(@RequestParam(required=true)MultipartFile file,@RequestParam(name="type",required = false) String type) { return this.userInfoService.load_photo(file,type);}/*导入学生照片的

2020-06-18 20:31:13 395

原创 获取数据的两种方式 记录一下

/*获取到用户的openid和access_token*/public static String getWechatOpenId(String code, String appid, String secret){ /** * grant_type:获取access_token填写client_credential * appid :商户的唯一标识 * secert :第三方用户唯一凭证密钥 */ String url = "https://api.weixin.qq.

2020-06-16 10:25:44 357

原创 笔记

<select id="queryDateByDateAndTime" resultType="com.energetic.energetic.util.dormClockRecord"> select pin,`name`,hsd.dept_name as deptName, IFNULL(date,'空')date, IFNULL(time,'空')time, ( case when status='1' then '正常' when stat

2020-06-15 18:57:43 99

原创 Oracle and Mysql

--oracle 语法SELECT DISTINCT <select_list>FROM <left_table> <join_type>JOIN <right_table> ON <join_condition>WHERE <where_condition>GROUP BY <group_by_list>HAVING <having_condition>UNION &l...

2020-06-01 12:06:07 292

原创 Mysql数据库的隔离级别

一 事务事务知识一个改变,是一些操作的集合,用专业的术语讲,事务本身并不包含这4个特性,通过一些手段,我们叫事务满足这些特性就叫做一次事务;(1)原子性:满足原子操作单元,对数据的操作执行的命令在一次事务中,命令全部执行,否则回滚;(2)一致性:事务开始和完成,数据必须保持一致(3)隔离性:事务之间是相互独立,中间状态对外不可见(4)持久性-这就设计到瞬时数据转换持久数据二隔离级别2-1并发情况下事务引发的问题一般情况下 多个单元操作并发执行,会出现下面的问题;脏读:A事务未提交,B事务

2020-05-30 13:38:31 150

原创 java设计模式--(每天更新,同时写一种设计模式)

***首先设计模式的产生肯定是为了解决问题:***产生的原因:由于用户需求的多变,客户需求,技术需求的 变化,我们原有的代码会被摧毁所以就出现了新的需求—设计模式;解决的问题以及办法程序中代码的复用的问题;分析设计模式得从2个方面来分析,一个是抽象原理,一个是底层实现,通过分解和抽象来解决问题。设计模式遵循的原则(1)依赖倒置原则:高层模块不应该依赖底层模块,二者都应该依赖与抽象抽象不应该依赖与具体的依赖细节;稳定模块不应该依赖变化模块,我们应该提出抽象类;(2)开放-封闭原则:对扩展开放,

2020-05-29 11:08:08 315

原创 JVM相关的知识

目录第一部分:自动内存管理机制(1)内存如何划分(2)垃圾收集相关第二部分:虚拟机执行子系统(1)Class文件的各个组成部分(2)类加载机制第三部分:程序编译于代码优化(1)主要是通过JDK种的javac 将 .java编译成.class(2)使用JIT 将.class 编译成二进制的计算机代码比那一过程的优化第四部分:高效并发讲到java内存模型的结构及操作以及如何保证原子性,可见性 有序性来保证线程安全后续更新...

2020-05-29 10:46:59 117

原创 nginx

概念:nginx是一个高性能的web应用服务器为什么使用nginx在传统的 web项目中,并发量小,用户使用的少,所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat直接返回消息给用户的解决方案所以问题就出现了。问题一 :用户并发量大 单体tomcat太弱了解决方案:把带个tomcat性能参数设置成最大的,或者使用多个tomcat来支撑用户请求。问题二 :用户需要记录的服务器地址太多,不知道那台服务器闲着,解决方案:nginx正向代理和反向代理正向代理:是一个位于客户

2020-05-28 21:28:27 130

原创 Redis 相关知识

概念:Redis是一个基于C语言的高性能的key-value数据库存储数据类型:string list set hash zset(准确来说只有string)扮演的角色:缓存库,计数器,消息中间件(1)安装配置(略)(2)String 的基本操作get 根据key查询字符串set 存储字符串键值数据expire 设置超时时间 keydel 删除 数据key * 查看所有的值dbsize 查看数据库的数据记录条数flushdb 清空当前数据库append

2020-05-28 21:18:39 95

原创 SQL优化2---数据库层面的

真的太无奈了 ,写了很多优化方案,没有保存全部丢失;目录:SQL优化之优化器的执行过程----trace(略,无奈)索引失效的16中方式—以及如何防止;(略无奈)(1)大量数据插入的优化insert into user values();insert into user values();insert into user values();insert into user values();====> insert into user values(),(),(),() 避

2020-05-28 15:31:37 237

原创 数据库的优化

对于数据库的优化简单的谈一谈(Mysql)1>创建索引–(在什么位置,给什么样的表创建)(1)查询频率比较高,数据量比较大的表简历索引(2)在where条件中经常出现的字段简历索引(3)唯一索引检索的效率比较高(4)利用最左索引,针对于多个列我们可以创建复合索引(5)创建索引要针对不同的存储引擎(Innodb,MyIsam ,Isam,memory)以及的具体的状况建立不同的索引2>通过主从复制搭建集群首先 我们的数据库可以搭建多个通过配置做主从复制,这样可以减少单个数据库的.

2020-05-28 11:26:12 230

空空如也

空空如也

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

TA关注的人

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