- 博客(350)
- 资源 (29)
- 收藏
- 关注
原创 Spring Cloud Alibaba Seata处理分布式事务
一.分布式事务问题1.分布式前单机单库没这个问题2.分布式后单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证3.一句话一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题二.Seata简介1.是什么Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务
2022-05-15 22:08:09
538
原创 进制转换
一.二进制与十六进制的相爱相杀1.十六进制转二进制采用8421法一个16进制位等于4个二进制位7F 7(7由4+2+1=7) 8 4 2 1 0 1 1 1 F(15由8+4+2+1) 8 4 2 1 1 1 1 1所以,7F=011111112.二进制转十六进制01010101因为4个二进制位等于1个十六进制位故拆分成两段 0101 0101二进制转十进制得分别算出两段为5 5所以
2021-11-03 10:32:25
647
原创 Spring Cloud(六)-分布式配置中心
一.前言这两个都不是停更才不用的…只是单纯被后起之秀阿里巴巴的Nacos所取代当然还有很多公司在用,一共三套选择Config+BusSpring Cloud Alibaba Nacos携程的Apollo(阿波罗)-开源的二.SpringCloud Config分布式配置中心1.概述A.分布式系统面临的—配置问题微服务意味着将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态
2021-02-24 22:42:17
671
原创 Linux菜鸟记-实战之安装常用软件
本实战的系统环境是CentOS 7.5一.安装Jdk下载jdk.tar.gz包,丢到centos上配好了,注销用户,重新登录,环境变量才能生效tar -zxvf jdk... //解压//配置环境变量vim /etc/profileJAVA_HOME=你jdk的路径 PATH=你jdk的路径/bin:$PATHexport JAVA_HOME PATH二.安装Tomcat一般来说jdk版本最好和tomcat版本对应,比如jdk用的1.8,tomcat就用8.0,jdk用1.
2021-02-24 11:03:29
166
原创 Spring Cloud(五)-服务网关
一.Zuul路由网关Zuul想看的去看2019版了,已经被Gateway取代了本想出Zuul2,但是Zuul核心人员被挖走了…1.概述简介2.路由基本配置3.路由访问映射规则4.查看路由信息5.过滤器二.Gateway新一代网关Spring社区自己研发了新一代网关Gateway1.概述简介A.官网上一代zuul 1.xhttps://github.com/Netflix/zuul/wiki当前gatewayhttps://cloud.spring.io/spr
2021-02-21 22:08:16
554
原创 MQ之ActiveMQ(三)
一.ActiveMQ多节点集群1.面试题引入消息队列之后该如何保证其高可用性做集群,避免单点故障2.是什么基于Zookeeper和levelDB搭建ActiveMQ集群集群仅提供主备方式的高可用集群功能,避免单点故障3.zookeeper+replicated-leveldb-store的主从集群A.三种集群方式对比官网LevelDB,5.6版本之后推出了LevelDB的持久化引擎,它使用了自定义的索引代替常用的BTree索引,其持久化性能高于KahaDB,虽然默认的持
2021-02-14 13:11:03
260
2
原创 Spring Cloud(四)-服务降级
一.Hystrix(黑斯坠斯)断路器1.概述A.分布式系统面临的问题复杂分布式体系结构中的应用程序又数十个依赖关系,每个依赖关系在某些时候将不可避免地失败服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的"扇出"。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“”“雪崩效应”对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源
2021-02-12 22:08:33
1076
1
原创 Spring Cloud(三)-服务调用
一.Ribbon负载均衡服务调用1.概述A.是什么Spring Cloud Ribbon(瑞本)是基于Netflix Ribbon实现的一套客户端负载均衡的工具简单来说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(简单轮询,随机连接等)去连接这些机器。我们很容易使
2021-02-04 00:49:30
730
1
原创 MQ之ActiveMQ(二)
一.ActiveMQ的Broker1.Broker是什么相当于一个ActiveMQ服务器实例说白了,Broker其实就是实现了用代码的形式启动ActiveMQ将MQ嵌入到Java代码中,以便随时用随时启动,在用的时候再去启动这样能节省资源,保证可靠性2.按照配置文件启动不同的配置文件模拟不同的实例cp activemq.xml activemq02.xml//读取activemq02.xml./activemq start xbean:file:/xxxx/conf/active
2021-02-01 19:02:37
765
原创 Docker实战
一.Docker中安装redis1.单机版公司的windows服务器的redis经常崩,于是乎我就自己搭建一个用吧…先去拉取redis镜像下来docker pull redis查看本地镜像docker images再在服务器创建挂载的目录和配置文件mkdir -p /usr/local/docker/redis/confmkdir -p /usr/local/docker/redis/datatouch redis.conf启动redisdocker run -
2021-01-20 11:49:17
115
原创 redis-缓存穿透,缓存击穿,缓存雪崩
前言我们在设计有缓存的系统上时,基本流程如下所示一.缓存穿透1.定义是指缓存和数据库都不存在的数据,对于用户的请求访问,缓存一直不被命中,而是一直去请求持久层的数据库,每次去请求持久层的数据库,失去了缓存的意义了在流量大的情况下(秒杀),数据库可能会挂掉,这也可以成为黑客攻击系统的漏洞了2.解决方案A.布隆过滤器布隆过滤器是一种数据结构将所有可能存在的数据哈希到一个足够大的bitmap中一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对数据库的查询压力B.缓存空
2021-01-19 11:41:44
156
原创 MQ之ActiveMQ(一)
前言消息微信短信语音中间件MQ产品种类KafkaRabbitMQRocketMQActiveMQ(技术维度)API发送和接收MQ的高可用性MQ的集群和容错配置MQ的持久化redis(RDB和AOF)延时发送/定时投递签收机制Spring整合…一.入门概述1.从生活case到实际生产案例微服务架构后,链式调用是我们在写程序时候的一般流程,为了完成一个整体功能会将其拆分成多个函数(子模块),比如模块A调用模块B,模块B调用模
2021-01-18 22:43:49
565
3
原创 Docker入门(二)
一.Docker容器数据卷1.是什么先看看Docker理念将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据Docker容器产生的数据,如果不通过docker commit生成新镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了为了能保存数据在docker中我们使用卷2.能干嘛容器的持久化(类似于redis中的AOF和RDB)容器间继承+共享数据卷就是目录或文件,存在于一个或多个容器中
2021-01-18 21:24:51
265
原创 Linux常见问题总结
1.CentOS 6.8下yum命令报错错误首先检查网络问题,看看网络是否通畅之后考虑yum源的配置问题,比如CentOS6.8自带的yum配置,我是直接删掉的(因为有问题),下载的阿里云yum的源,但是还是会报错看到404…于是乎我直接复制一个地址访问果然真是404,因为6下面已经没有任何东西了,所以会报错,然而7下面存在着文件cd /etc/yum.repos.d //进入yum配置文件夹vi CentOS-Base.repo //编辑yum配置文件将文件中$releasev
2021-01-06 23:04:17
588
原创 运维菜鸟记-Linux入门(二)
一.RPM和YUM1.rpm介绍一种用于互联网下载包的打包以及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似于Windows中的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的Linux的分发版本都有采用(suse,redhat,centos等等),可以算是工人的行业标准了rpm包的简单查询指令rpm -qa | grep xxx
2020-12-31 00:39:18
219
原创 动态规划(四)-划分型动态规划
一.例1.LintCode 513 Perfect Squares题意:给定一个正整数n,问最少可以将n分成几个完全平方数(1,4,9…)之和例子:输入:n=13,输出:2(13=4+9)1.确定状态最后一步:关注最优策略中最后一个完全平方数j²最优策略中n-j²也一定被划分成最少的完全平方数之和需要知道n-j²最少被分成几个完全平方数之和,原来求n最少被分成几个完全平方数之和子问题状态:设f[i]表示i最少被分成多少个完全平方数之和划分一般都是设定成二维数组,比如f[i][j],前
2020-12-29 17:02:52
655
原创 运维菜鸟记-Linux入门(一)
这里我们选择用虚拟机系统环境为centos6.8一.虚拟机安装1.虚拟机安装的三种网络连接桥接模式:在教室环境下,两个人连上网,比如一个人张三windows系统,ip为192.168.0.20,另一个人李四也是windows系统,ip为192.168.0.10,张三装了一个虚拟机,如果虚拟机选择桥接模式,虚拟机环境下的ip地址就会是192.168.0.30,同一个网段下,两个人还是可以互相通信,乍看很不错…但是对于同一个教室下,有200+人,每个人都弄一个虚拟机,网络都选桥接模式会出现ip地址.
2020-12-14 23:12:32
1454
原创 Docker(入门一)
一.Docker简介经常在开发中遇到开发工程师在本机上写好的项目运行没有问题,但是丢给运维工程师喊它部署,报一大堆错误…出现以上问题主要就两条原因,环境和配置Docker就是为了解决上面的问题出现的环境配置如此麻烦,换一台机器,就要重来一次,费力费时,能不能从根本上解决问题,软件带环境安装?也就是说,安装的时候,把原始环境一模一样的复制过来。简单来说以前是搬家…现在是直接搬楼了Dokcer镜像设计,使得Docker得以打破过去程序即引用的观念,透过镜像将作业系统核心除外,运作应用程式所需要的
2020-12-09 22:50:09
433
原创 动态规划专题
一.leetcode1.LeetCode403-青蛙过河题意一堆石头,给定一个数组stones,代表着石头的位置列表,青蛙在第一个石头上,第一个石头规定只能跳一个单位,青蛙上步跳k单位,那么规定下一步只能跳k-1,k,k+1单位,问青蛙是否可以跳到最后一个石头上(青蛙只能向前跳,不能向后跳)例子:输入:0,1,3,5,6,8,12,17输出:trueA.思考明显的一道动态规划的一道题,当然也可以用dfs来做,不过数组长度上限是4位数,不剪枝肯定会超时,所以这里我们用动态规划来做是
2020-12-09 15:06:45
216
原创 动态规划(三)-序列型动态规划
一.序列型动态规划概述1.序列型动态规划特点给定一个序列动态规划方程f[i]中的下标i表示前i个元素a[0]、a[1]、…a[i-1]的某种性质坐标型的f[i]表示以ai为结尾的某种性质初始化中,f[0]表示空序列的性质坐标型动态规划的初始条件f[0]就是指以a0为结尾的子序列的性质2.例1(LintCode 516 Paint House II)题意:有一排N栋房子,每栋房子要漆成K种颜色中的一种,任何两栋相邻的房子不能漆成同样的颜色,房子i染成第j种颜色的花费是cos
2020-12-07 15:00:10
878
原创 Spring Cloud(二)-服务注册中心
为什么需要有服务注册中心?就像是一个病人去私人医院一对一医治专家,不需要中间横着一个门诊挂号,但是随着病人越来越多,量变引起质变,那么专家还有没有剩号、余号?今天有多少个病人去找这个专家了?监控流量的管控,需要有一个类似于门诊前台的东西一样,通过门诊可以知道这个专家今天提供了多少医疗服务,今天有多少人挂这个号,可以统一进行调度和管理一.Eureka服务注册与发现2.x版本停更,但是1.x版本还在维护1.Eureka的基础知识A.什么是服务治理?在传统的rpc远程调用框架中,管理每个服务.
2020-12-06 18:49:28
443
原创 Spring Cloud(一)-概述和环境搭建
一.微服务结构理论入门1.概述微服务是一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调,互相配合每个服务运行在独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常基于HTTP协议的RESTful API)能独立部署到生产环境和类生产环境中,尽量避免统一、集中的服务管理机制简单的来说就是Spring boot开发的一个个的服务集合谈谈你对分布式架构的理解,如果面试问到这个问题,肯定要有以下几个方面分布式微服务架构是一个整体,而不是单一的技
2020-12-02 19:26:56
539
1
原创 动态规划(二)-坐标型动态规划
例1给定m行n列的网格,有一个机器人从左上角(0,0)出发,每一步可以向下或者向右走一步网格中有些地方有障碍,机器人不能通过障碍格问有多少种不同的方式走到右下角动态规划组成部分一:确定状态这题和上章某题很像,只是网格中可能有障碍最后一步一定是从左边(i,j-1)或上边(i-1,j)过来,这点是没有变的,变的只是多了障碍而已状态f[i][j]表示从左上角有多少种方式走到格子(i,j)(坐标型动态规划基本都是:数组下标[i][j]即坐标(i,j))动态规划组成部分二:转移方程f[i
2020-10-29 11:55:20
1139
2
原创 算法汇总
一.数据结构1.链表A.快慢指针解决问题:判断链表是否有环,找中间值等快慢指针-讲解博客例题 LeetCode141.环形链表public class Solution { public boolean hasCycle(ListNode head) { if(head==null||head.next==null){ return false; } ListNode slowNode = head;//
2020-10-09 16:54:51
131
原创 《JAVA设计模式》之策略模式
一.策略模式概述策略模式在设计模式在行为型模式,行为型模式主要特征点为类的行为或其算法可以在运行时更改在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。策略模式主要解决在多种算法类似情况下,用if…else所带来的复杂和难以维护,多一种算法多写一次else if…如果有上千种呢?难道写上千个else if…主要思想:共同实现一个接口举个例子,比如上班,可以骑自行车上班,坐地铁上班,坐公
2020-09-25 09:51:25
190
原创 动态规划(七)-博弈型动态规划
一.博弈型动态规划的概念博弈为两方游戏一方先下,在一定规则下依次出招如果满足一定条件,则一方胜目标:取胜先手:先出招的一方出招后,先手换人,新的先手面对一个新的局面例1 Coins in a Line(LintCode 394)题意:有一排N个石子,Alice,Bob两人轮流取石子,每次一个人可以从最右边取走一个或两个石子,取走最后石子的人胜,问先手Alice是否必胜(先手必胜:true,先手必败:false)例子:输入:N=5,输出:true(先手取走2个石
2020-08-18 14:47:54
1134
原创 常用验证码图片识别
在我们的生活中,我们遇到的验证码越来越繁杂,本文就是来解决一些常用的验证码的识别,一些较为复杂的验证码,如点选验证码,逻辑验证码等等,联系了开发者,说的是后续会逐一实现。破解验证码无非就是两种方式,一种就是OCR识别,另一种就是比较复杂的深度学习(后者优于前者),但是深度学习听名字就知道高大上…国内除了顶尖985院校,就算是211硕士也只能来当个前后端开发人员,运气好的也许能够成为算法工程师…那么题外话结束了,这里我们就用的深度学习的方法来实现验证码的识别,那么也许很多人都会纠结,看不懂深度学习代码怎.
2020-06-16 22:24:47
2320
原创 动态规划(一)-动态规划入门
一.初入动态规划1.什么是动态规划?A:求有多少种方式走到右下角B:输出所有走到右下角的路径,哪个可以用动态规划?题A是计数问题,属于动态规划题型的一种,而题B则是DFS2.动态规划特点A.计数有多少种方式走到右下角有多少种方法选出k个数使得和是sumB.最大最小值从左上角走到右下角路径的最大数字和最长上升子序列长度C.求存在性取石子游戏,先手是否必胜(博弈论)能不能选出k个数使得和是sum3.例1 零钱兑换(leetcode 322)给定不同的硬币,比如
2020-05-15 15:16:39
567
原创 Leetcode刷题之路(151-160)
153.寻找旋转排序数组中的最小值寻找旋转排序数组中的最小值题目链接方法一:直接for遍历,时间复杂度为O(n) public int findMin(int[] nums) { int min = nums[0]; for(int i=1;i<nums.length;i++){ min=Math.min(mi...
2020-01-01 23:06:40
132
原创 Leetcode刷题之路(141-150)
144.二叉树的前序遍历二叉树的前序遍历题目链接方法一:递归法List<Integer> results = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { if(root!=null){ resul...
2019-12-30 23:52:46
160
原创 Leetcode刷题之路(131-140)
136.只出现一次的数字只出现一次的数字题目链接方法一:排个序,然后再处理public int singleNumber(int[] nums) { int result = -1; Arrays.sort(nums); for(int i=0;i<nums.length;i+=2){ if(i+1<n...
2019-12-30 23:12:35
137
原创 Leetcode刷题之路(111-120)
112.路径总和路径总和题目链接同样bfs思想public boolean hasPathSum(TreeNode root, int sum) { boolean flag = false; if(root==null){//注意为空的判断 return flag; } T...
2019-12-18 20:05:24
198
原创 Leetcode刷题之路(101-110)
104.二叉树的最大深度二叉树的最大深度题目链接用递归左右两边取最大,不为空的就加1,为空返回0public int maxDepth(TreeNode root) { if(root==null){ return 0; } return Math.max(maxDepth(root.left)+1,maxD...
2019-12-17 16:50:15
169
原创 Leetcode刷题之路(91-100)
94.二叉树的中序遍历二叉树的中序遍历题目链接中序遍历:左子树->头节点->右子树方法一:递归法,很简单直接按中序遍历顺序写List<Integer> results = new ArrayList<>(); public List<Integer> inorderTraversal(TreeNode root) { ...
2019-12-15 00:43:17
134
原创 Leetcode刷题之路(81-90)
88.合并两个有序数组合并两个有序数组题目链接方法挺多了方法一,最最常见的方法,效率最不高的方法,遍历两个数组,遇到数组2小于数组1的,就把数组1往后移动,这个位置上插入数组2的这个值public void merge(int[] nums1, int m, int[] nums2, int n) { int index1=0,index2=0; int...
2019-12-13 16:03:46
176
原创 Leetcode刷题之路(71-80)
77.组合组合题目链接dfs回溯,主要关键点在于添加条件上,像结果集中1,2,3有了,是不能再添加2,3,1和1,3,278.子集
2019-12-12 15:40:47
141
原创 Leetcode刷题之路(61-70)
62.不同路径不同路径题目链接一道很简单的动态规划题,找出动态方程和边界是关键!如果不知道动态规划,推荐看看这个视频!B站巨佬讲解动态规划入门视频public int uniquePaths(int m, int n) { int [][]dp = new int[m][n]; for(int i=0;i<m;i++){ f...
2019-12-11 00:55:00
154
原创 Leetcode刷题之路(51-60)
51.N皇后N皇后题目链接N皇后就是同一行,同一列,同一对角线只能存在一个皇后,而输入是n*n格子,答案让你输出对应的方案52.N皇后IIN皇后题目链接N皇后就是同一行,同一列,同一对角线只能存在一个皇后,而输入是n*n格子,答案让你输出有几种方案private int results; public int totalNQueens(int n) { ...
2019-12-09 20:22:41
156
RedisDesktopManager.rar
2018-10-30
jquery-easyui-1.6.7.zip
2018-10-28
HttpClient-4.5.6
2018-09-27
json相关的jar包
2017-11-23
Jedis入门所需两个jar包
2017-09-25
jackson-core-asl-1.9.7.jar等4个jar包
2017-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人