自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 智能合约安全漏洞与解决方案

解决方案2:使用重入锁方案,定义重入锁,noReentrant原理:提现方法执行完毕会修改锁的状态改为false,当攻击合约下次重入调用的时候,因为上次方法还没有执行完毕,锁状态还是true,所以无法再调用提现具体逻辑,这时候重入锁阻拦住了重入攻击,如果不确定合约逻辑是否有重入漏洞,不妨加入一个重入锁,防止函数被重入攻击,在实际生产环境最好加上重入锁。数字下溢:如果数字低于0,比如最低位 -2,则会反向从uint256最高位处开始循环,变成2**256-2,变成了巨大的数字。

2023-11-22 18:33:35 934 1

原创 Solidity基础语法代码2

/ "AAAA","BBB" 与 "AAA","ABBB" 结果都是 0x11db58448f2a53848bef361744f19e6fdabef68b8267b1ff669de1b4c42da0da。// 避免这种错误有两种解决方案:1. 使用encode打包 2. 在两个字符串之间添加一个数字类型:"AAAA",123,"BBB" 与 "AAA",123,"ABBB"// "AAAA","BBB" 与 "AAA","ABBB" 结果都是 0x41414141424242。

2023-11-18 15:56:55 244

原创 Solidity基础语法代码

/ 改变数组长度删除 原理:[1,2,3] -- remove(1) --> [1,3,3] --> pop --> [1,3]// [1,0,3] delete arr[1] 只会删除数组对应下标的值,数组长度不变。// 弹出数组最后一个元素,数组长度减少,[1,0,7]// 修改数组元素,[1,2,7,4]// 删除数组元素,[1,0,7,4]uint[] public nums = [1,2,3];// 数组["alice","bob","charlie"] 数组查询tom需要遍历数组。

2023-11-15 18:42:57 211

原创 SpringCloud Bus消息总线

SpringCloud Bus消息总线就是springcloud对mq的封装。目前只支持:rabbitmq和kafka。通常的使用场景:修改了分布式配置中心的配置,通过bus发送消息,所有订阅的服务同时刷新最新配置,也就是实时更新配置文件,不用重启所有微服务。一、在不使用SpringCloud Bus情况下修改了配置文件,刷新服务配置通常是单台服务器刷新,效率慢。刷新配置:<dependency> <groupId>org.springframework.boo

2022-05-25 16:42:47 498

原创 企业级SaaS CRM实现

SaaS(Software-as-a-Service),即软件即服务。提供给消费者完整的软件解决方案,你可以从软件服务商处以租用或购买等方式获取软件应用,组织用户即可通过 Internet 连接到该应用(通常使用 Web 浏览器)。所有基础结构、中间件、应用软件和应用数据都位于服务提供商的数据中心内。服务提供商负责管理硬件和软件,并根据适当的服务协议确保应用和数据的可用性和安全性。SaaS 让组织能够通过最低前期成本的应用快速建成投产。SaaS平台基本元素RBAC模型扩展,基于角色的权限访问控.

2021-03-13 23:30:25 477 1

原创 自定义Redis连接池

一道大厂面试题:考察服务设计和一些接口要求。接口二解题,要求一 限流; 要求二 接口幂等;要求三 网络编程超时设置;要求四 限流;要求五 解决HttpClient线程安全问题,思路自定义HttpClient连接池。错误写法:在并发场景下,来1000次请求,建立1000次连接,连接开销很致命。我们用socket定义一个httpclient,来演示一下socket线程不安全现象:import java.io.IOException;import java.io.InputStre

2021-01-06 17:03:37 509 2

原创 Elastic Stack之Beats(Filebeat、Metricbeat)、Kibana、Logstash教程

如果你没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch、Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。所以说,ELK是旧的称呼,Elastic Stack是新的名字。全系的Elastic Stack技术栈包括:由上图可以看出Beats并不是指单一的某个技术,它是指一系列技术在总称,采集能力更加轻量级更加强大,并且已经逐渐取代Log...

2020-11-23 17:12:52 1151

原创 idea查看字节码配置

File-Settings-Tool-External Toolsshow byte code$JDKPath$\bin\javap.exe-c $FileClass$$OutputPath$/********************** kafka **********************/Kafka cluster集群点对点模式,需要线程监控发布/订...

2020-11-06 11:39:19 152

原创 Elastic Stack之Elasticsearch教程

1.Elastic Stack简介2.Elasticsearch2.1 简介2.2 安装2.2.1 版本说明2.2.2 下载2.2.3 单机版安装2.2.4 elasticsearch-head2.3 基本概念2.4 RESTful API2.4.1 创建非结构化数据2.4.2 插入数据2.4.3 更新数据2.4.4 删除数据2.4.5 搜索数据2.4.6 DSL搜索2.4.7 高亮显示2.4.8 聚合3. 核心详解3.1 文档3.2 查询响应3.2.1 pret.

2020-11-06 11:36:30 1727 1

原创 分布式锁的这三种实现方式,如何在效率和正确性之间选择?

已发表在公众号:https://mp.weixin.qq.com/s/Dt-BTCwX748ayRevGbAMoQ

2020-07-06 21:43:42 353

原创 算法

字符串相关/** * 1. 找出字符串中出现次数最多的字符 */@Testpublic void test(){ String str = "sfasjlfaskfjlsajflakjaafadslfjsdlk"; char res = str.charAt(0); int max = 0; Map<Character,Integer> m...

2020-01-27 17:57:51 617

原创 Spring Aop源码调试

SpringAOP 面向切面编程(Aspect Oriented Programming)aop效果:项目demo:代码:import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;@Aspect@Componentpublic class AppCon...

2019-05-28 11:11:59 1824

原创 MySQL事务

本文目录:1.事务介绍2.事务入门    1.命令行演示    2.代码演示3.事务特性4.事务隔离级别    1.安全隐患        a.读的问题        b.写的问题    2.隔离级别        a.读未提交        b.读已提交        c.可重复读        d.序列化 | 串行化5.事务管理    1.三层结构介绍   ...

2018-12-24 17:18:16 422

原创 Gradle教程 && Spring源码编译

目录:gradle 安装配置 grovvy 语法介绍 gradle 仓库配置 gradle 配置文件讲解 gradle 案例:springboot + gradle打war包 gradle 多项目案例,聚合工程1. gradle 安装配置Gradle下载:http://services.gradle.org/distributions/配置环境变量命令:gradle -...

2018-12-17 11:11:23 673

原创 java单点登录需求分析与代码实现

需求背景:随着公司的发展,公司内部使用的系统越来越多。但是对于使用系统的员工来说不是个好事情。     1.每个系统都需要记住对应的账号和密码,很多员工都是每个系统的账户和密码都一样的。     2.如果同时要使用CRM系统、WMS系统、OA系统,用户需要登录三次,如果10个系统需要登录分别登录十次,非常繁琐。     3.如果不使用了,还需要分别在三个系统中依次的注销。需求:    ...

2018-11-16 17:56:49 16823 81

原创 java自动登录

温故而知新。从其他页面访问时,如直接访问index页面,勾选过自动登录,从session/cookie获取用户信息,没有勾选,从session中获取用户信息,需要使用filter过滤器工程结构,采用gradle构建:public class User { private String username; private String password; ...

2018-11-08 10:30:19 2459

原创 使用session做的购物车

温故而知新。工程结构:public class Product { private int id; private String name; private double price; public Product(int id, String name, double price) { this.id = id; th...

2018-11-07 11:46:19 6528

原创 CKEditor 4.10.1 上传图片提示“不正确的服务器响应” 问题解决

最近项目采用CKEditor 4 富文本编辑器,上传图片时提示"不正确的服务器响应" , 查看官方文档要求返回json格式,官方示例:Response: File Uploaded Successfully 上传成功返回:{    "uploaded": 1,    "fileName": "foo.jpg",    "url": "/files/foo.jpg"}

2018-08-16 20:05:23 9864 12

原创 互联网API接口幂等设计

幂等性概念:保证唯一的意思  如何防止接口不能重复提交===保证接口幂等性接口幂等产生原因:1.rpc调用时网络延迟(重试发送请求) 2.表单重复提交解决思路:redis+token,使用Tonken令牌,保证临时且唯一,将token放入redis中,并设置过期时间如何使用Token 解决幂等性,步骤:1.在调接口之前生成对应的令牌(Token),存放在Redis2.调用接口的时候...

2018-07-29 19:10:28 4618 5

原创 Linux常用命令整理

查看主机名:hostname创建文件夹 mkdir -p /test01/test02创建文件 touch file.txt拷贝目录 cp -r text/ text02移动目录 mv text/ text02删除 rm -rf file.txt 删除文件夹当前所有内容: rm -rf ./*查看文件 cat /etc/passwd查看文件(分页) more 按q退出查看...

2018-07-20 22:35:37 2949 1

原创 zk配置中心---Config Toolkit配置与使用

Config Toolkit 简介:用于分布式系统中的资源配置中心,替代传统properties文件,优点:立即修改配置立即生效,不需要新重新打包部署项目。下载地址:https://github.com/dangdangdotcom/config-toolkit配置zk,生产环境一般配置5台,创建配置节点时会同步,这里使用默认配置,启动zkServer。启动项目(将config-f...

2018-06-11 16:15:44 3619

原创 手写SpringIOC容器框架

1.使用xml方式注入对象导入依赖:&lt;!-- https://mvnrepository.com/artifact/dom4j/dom4j --&gt;&lt;dependency&gt; &lt;groupId&gt;dom4j&lt;/groupId&gt; &lt;artifactId&gt;dom4j&lt;/artifactId&gt; &lt;versi...

2018-06-03 15:03:57 500

原创 web安全与防御

一、钓鱼网站之XSS攻击原理分析将表单提交的脚本:&lt;script&gt;for(var i=0;i&lt;3;i++){alert("弹死你"+i);}&lt;/script&gt; 中的特殊字符进行转义,禁止脚本执行。pom.xml引入common-lang包&lt;dependency&gt; &lt;groupId&gt;commons-lang&lt;/groupId&gt;..

2018-04-09 00:18:16 318

原创 分布式任务调度平台

一、任务调度概述 1.什么是任务调度--定时job 在什么时间进行执行代码任务任务调度场景:定时检查红包过期2.java实现定时任务有几种?        Thread.sleep TimerTask  util包下 线程池,可定时线程 Quartz定时任务调度框架 springboot 内置定时任务调度/** * 使用多线程方式实现定时job 最简单版定时任务调度 * Created by...

2018-04-07 12:23:36 2567

原创 Redis高可用

redis.conf  dbfilename dump.rdb开启aof备份,先注掉dump.rdb相关:redis.confaop文件比rdb文件大,且恢复速度慢。redis发布/订阅:subscribe redisChat 订阅redisChat频道开启另一个客户端publish redisChat '123456' 往redisChat频道推送消息...

2018-04-05 23:12:05 172

原创 Java并发编程

一、Vector与ArrayList区别和HasTable与HasMap线程安全源码分析什么是线程安全问题?保证在多个线程之间共享同一个全局变量或者静态变量,保证数据一致性、原子性。线程同步有哪些方式?synchronized、lock线程同步提高了效率吗?降低了程序效率、阻塞、抢锁的资源,效率并不高java并发包 java.util.concurrent原子类、LockVector与ArrayL...

2018-04-03 15:30:56 208

原创 Zookeeper基础+Zookeeper实战分布式锁

Zookeeper基础一、Zookeeper概述什么是ZooKeeperZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。Zo...

2018-04-01 13:25:52 521

原创 使用Zookeeper实现动态负载均衡

一、负载均衡概述 二、Dubbo原理 生产者:&lt;!-- 提供方应用信息,用于计算依赖关系 --&gt;&lt;dubbo:application name="provider"/&gt;&lt;!-- 使用zookeeper注册中心暴露服务地址 --&gt;&lt;dubbo:registry address="${zookeeper.register.address}" protocol=...

2018-03-30 23:23:06 3477 1

原创 MySQL高可用--主从复制与读写分离

一、Mysql高可用概念 二、MySQL主从复制原理 集群目的,减轻单台服务器压力三、MySQL主从复制配置实际操作mysql服务器集群,主从复制的过程master   192.168.230.128slave01  192.168.230.132slave02  192.168.230.133mysql主从复制步骤:1.配置主从节点信息(server_id=) 2.设置从服务器读取账号权限3.同...

2018-03-27 22:19:18 1333

原创 JVM垃圾回收机制算法分析

JVM内存运行时数据区一、什么是垃圾回收机制gc垃圾回收机制&amp;&amp;算法什么是垃圾回收机制:不定时去堆内存清理不可达对象。不可达的对象并不会马上就会直接回收,而是至少要经过两次标记的过程。public class Test { public static void main(String[] args) { Test test = new Test(); ...

2018-03-24 23:06:25 242

原创 idea本地代码托管到git

公司内部搭建git服务器:http://tengj.top/2016/03/29/git6gitlab/个人代码托管到git流程:1.首先在github注册账号 https://github.com/2.登陆git创建项目3.下载安装git客户端  https://git-scm.com/download/win4.初始化git仓库,本地项目文件夹右键–&gt;Git Bash Here 输入gi...

2018-03-22 22:47:53 475

原创 SpringCloud

一、网站架构演变过程微服务架构--SpringCloud单点应用、分布式系统面向服务架构(SOA)、微服务架构传统web项目:三层架构 控制层-业务逻辑层-数据库访问层  代码全部在一个项目中,使用包名进行区分com.controller -- 控制com.service -- 业务逻辑层com.dao -- 数据库访问层面向服务架构项目:如果在互联网公司,如果使用传统架构技术开发,会产生什么问题...

2018-03-21 10:07:18 337

原创 SpringBoot

一、SpringBoot概述SpringBoot未来主流1.敏捷开发(整合任何框架),弊端:封装的太死了,不方便扩展,springboot高版本没有这个问题。2.无需Tomcat(springboot运行是通过java应用程序运行,实际是jar包),内置Tomcat3.减少xml配置(没有xml),以配置文件形式,全部只写properties文件4.SpringCloud+Spring...

2018-03-19 18:33:53 388

原创 SpringAOP与事物原理分析

一、SpringAOP概述 什么事springaop? 面向切面编程应用场景:权限控制、事务管理、日志打印、性能统计项目中什么地方使用AOP 代码重复在不同的方法中,但是需要相同的操作。AOP关注点:重复代码切面:抽取重复代码切入点:拦截哪些方法springaop方式:注释、xml二、SpringAop注解方式spring.xml中开启事务权限:&lt;aop:aspectj-autoproxy ...

2018-03-18 21:16:40 3383

原创 MySQL语句性能优化

MySQL概述1.数据库设计 3范式2.数据库分表分库---会员系统() 水平分割(分页如何查询)MyChar 、垂直3.怎么定位慢查询---------------------数据库索引的优化、索引原理SQL语句调优数据库读写分离--MyChar---------------------分组 having存储过程、触发器、函数存储过程:写了一块sql语句,类似Java中方法,只需调用传参数,...

2018-03-18 16:34:27 2516

原创 跨域网站请求解决方案

什么是跨域:跨域其实是浏览器安全机制,请求访问的域名与ajax请求地址不一致,浏览器会无法返回请求结果。通俗点就是:B服务的页面中通过ajax加载了A服务中的信息 。 跨域原因产生:在当前域名请求网站中,默认不允许通过ajax请求发送其他域名。http://b.com/b.jspb.jsp&lt;script type="text/javascript"&gt; $(function() { $....

2018-03-16 22:21:37 267

原创 java设计模式

全部设计模式、设计原则示例和说明,项目目录结构:java设计模式项目代码地址:https://github.com/yangzeng1211/designPattern.git

2018-03-16 11:40:55 234 1

原创 nginx+tomcat实现负载均衡

什么是nginxnginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,所以现在很多知名公司都在使用nginx。nginx应用场景1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静...

2018-03-15 21:58:25 173

原创 springmvc

SpringMVC环境搭建:1、加入jar包由于找不到HttpServlet类,可通过导入Tomcat到工作目录或者通过Maven添加HttpServlet类所在的servlet-api.jar&lt;dependency&gt;&lt;groupId&gt;javax.servlet&lt;/groupId&gt;&lt;artifactId&gt;javax.servlet-api&lt;/a...

2018-03-15 13:45:28 171

原创 java数据结构和算法

1、数组2、简单排序3、栈和队列4、链表5、双端链表和双向链表6、递归的应用7、递归的高级应用8、希尔排序9、快速排序10、二叉树的基本概念11、二叉树的基本操作12、遍历二叉树13、删除二叉树节点14、红黑树15、哈希表16、开放地址法17、链地址法18、图的基本概念19、图的搜索20、图的最小生成树1、数组/** * 使用自定义类封装数组 * Created by yz on 2018/0...

2018-03-13 18:36:27 693

空空如也

空空如也

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

TA关注的人

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