-
API数据加密
源码链接使用AES和RSA混合加密两种加密算法特点:AES(对称加密)1、加密方和解密方使用同一个密钥2、加密解密的速度比较快,适合数据比较长时的使用3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦RSA(非对称加密)1、算法强度复杂,其安全性依赖于算法与密钥2、加密解密的速度远远低于对称加密算法,因此不适用于数据量较大的情况3、非对称加密算法有两种密钥,其中一个是公开的,所以在密钥传输上不存在安全性问题,使得其在传输加密数据的安全性上又高于对称加密算法AES加密快,RSA安全性...…
-
多线程问题排查
线上服务监控报警,有个服务占用CPU一直100%,记录一下排查过程1、还是第一次遇见这个问题,先想到的是内存占用过高,导致一直Full GC,但是看监控CPU一直保持在100%,内存占用也不高。服务部署在k8s中,先进入podkubectl exec -it pre-bit-saas-ras-5f7bbd545f-2wtdx -n saas-pro -- /bin/sh2、执行命令jstat -gcutil pid并没有发生频繁GC,想到项目中用了多线程,怀疑会不会是有死循环3、查看进程下...…
-
HBase队列
HRegionServerpublic HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException, InterruptedException { ... //初始化RpcService rpcServices = createRpcServices(); ... rpcServices.start(); ...}RS...…
-
微服务日志收集
为了方便收集,每个服务的日志放到 /logs/服务名称目录下以Docker部署的服务需要在启动容器时加上参数 -v /宿主机目录:/容器内目录 将日志共享到宿主机1、Flume在每台服务器上安装Flume-Agent,每个agent使用ExecSource监听日志文件,AvroSink发送日志,在汇总时使用AvroSource接收日志,FileRollSink落地agent配置:log_collection_agent.channels = memoryChannellog_collect...…
-
单例模式的几种实现方式
1、懒汉模式public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return insta...…
-
逐层遍历二叉树
题目描述:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。方法一:利用递归方式,搜寻并打印某一层节点,再打印下一层节点1.要逐层打印二叉树的节点,可以先实现打印该二叉树某一层的算法:public void PrintNodeOfLevel(BinaryTree<int> root, int level){ if(root == null || level < 0) return; if(level == 0) System.out.println(ro...…
-
数据库优化
数据库优化目的:1.避免出现页面访问错误 由于数据库连接timeout产生也页面5xx错误(服务器内部错误) 由于慢查询造成页面无法加载 由于阻塞造成数据无法提交(服务器内部锁)2.增加数据库的稳定性 很多数据库问题都是由于低效的查询引起的3.优化用户体验 流畅的页面的访问速度 良好的网站功能体验从以下方面优化数据库: 硬件 系统配置 数据库表结构(数据库范式) sql及索引(结构良好的sql和建立合适的索引)mysql慢查询日志开启:show variables li...…
-
Linux系统常见问题
mysql中文乱码修改mysql配置文件# vim /etc/my.cnf在[client]段增加下面代码default-character-set=utf8在[mysqld]段增加下面的代码default-storage-engine=INNODBcharacter-set-server=utf8collation-server=utf8_general_civim中文乱码修改vim配置文件# vim ./.vimrc 在文件中加入如下几行:set fileencodings=ucsbo...…
-
MySQL中的锁机制
MySQL锁的分类: 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般MyISAM与InnoDB表锁和行锁的解释MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。对MyISAM表进行读操作时,它不会...…
-
转:从B树、B+树、B*树谈到R 树
作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v 。 第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binar...…