- 博客(106)
- 资源 (2)
- 收藏
- 关注
原创 MySQL索引相关
为什么数据库字段要使用NOT NULL:https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=2651494364&idx=1&sn=9824e6a253cd644f8eeb3392fd7afaf5&chksm=bd25fba38a5272b5d3cfd28ab752119211992b694e67998479b10294bfa7e0ff9012496127cc&scene=132#wechat_redirect
2021-04-13 18:56:59
96
原创 kafka高可用概述
多副本保证不丢失多个副本保证数据不丢失ISR是:in-sync replica,就是跟leader partition保持同步的follower partition的数量,只有处于ISR列表中的follower才可以在leader宕机之后被选举为新的leader,因为在这个ISR列表里代表他的数据跟leader是同步的如何处理负责均衡尽量的保证leader放在不同的机器上,这样就避免请求同时访问同一个机器。TODO如何保证的?基于zookeeper实现kafka无状态可伸缩重点无状态设.
2021-04-11 17:07:14
177
1
原创 Eureka Server启动之基于构造器模式的服务实例构造
重点构造器模式还是分析环境初始化方法:protected void initEurekaServerContext() throws Exception { EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig(); //第一步 加载eureka-server.properties的配置 // For backward compatibility Jso
2021-04-10 22:09:21
108
原创 Eureka Server启动之配置文件加载以及面向接口的配置项读取
重点通过接口而不是常量的方式去获取各种配置加载eureka-server.properties的过程:(1)创建了一个DefaultEurekaServerConfig对象(2)创建DefaultEurekaServerConfig对象的时候,在里面会有一个init方法(3)先是将eureka-server.properties中的配置加载到了一个Properties对象中,然后将Properties对象中的配置放到ConfigurationManager中去,此时ConfigurationMan
2021-04-10 19:07:44
755
原创 eureka server 启动过程分析--初始化环境
重点理解:ConfigurationnManager源码中体现的double chehck + volatile的单例实现模式的思想和技巧理解initEurekaEnvironment,初始化环境的逻辑,数据中心 + 运行环境,没设置的话,都给你搞成默认的和测试的启动类 EurekaBootStrap @Override public void contextInitialized(ServletContextEvent event) { try {
2021-04-10 18:01:02
203
原创 eureka源码环境搭建
阅读源码步骤1. 安装gradle具体安装方法不再赘述,验证效果如下:2. 下载源码git clone https://github.com/Netflix/eureka.git3.验证源码环境是否OK随便运行一个自带的测试用例,例如:com.netflix.eureka.resources.EurekaClientServerRestIntegrationTest#testRegistration4.看哪部分源码启动 eureka server ,启动 eureka client
2021-04-09 07:57:06
258
原创 递归的求和
//这种标记长度的方式 和求全排练的方式很像 //递归的求和 public int sum(int[] arr){ if(arr==null||arr.length==0){ return 0; } return sum(arr, 0); } public int sum(int[] arr,int l){ if(l==arr.length){ return
2020-07-02 20:37:21
772
1
原创 删除链表所有值为val的节点
题目 https://leetcode-cn.com/problems/remove-linked-list-elements/submissions/思路就是哨兵模式以及moveHead的使用 public ListNode removeElements(ListNode head, int val) { ListNode sentinel = new ListNode(-1); sentinel.next = head; ListNode moveN
2020-07-02 20:14:27
224
原创 寻找平衡点的俩种方法
o(n2)和o(n)//时间复杂度是nstatic void equPoint2(){ int[] arr = {2,3,4,5,8,5,9}; int leftSum = arr[0]; int rightSum = 0; for (int i : arr) { rightSum+=i; } for (int i =1; i < arr.length; i++) {
2020-07-01 10:10:38
2463
原创 秒杀如何解决超卖
https://www.cnblogs.com/wenbochang/p/10912459.html1、 使用数据库的排他锁2、使用version3、使用redis的单线程。
2020-06-28 11:04:53
370
原创 TreeMap按照value排序
treemap默认是按照ket排序,底层红黑树实现public static void sortByValue() { Map<String,Integer> map = new TreeMap<String, Integer>(); map.put("a", 1); map.put("d", 2); map.put("b", 3); map.put("c",0); List<M
2020-06-28 09:35:37
498
原创 linkedhashmap 为什么有序
https://segmentfault.com/a/1190000012964859从这个文章来分析就是维护了双向链表问题这个变量为什么可以没有初始化 **
2020-06-26 01:06:34
277
原创 查找最后一个盒子装多少鸡蛋
有N个鸡蛋,要依次投放到如下盒子中(盒子数未知,直至全部放入为止),【1】,【2】,【4】,【8】,【16】。。。。【?】请问,已知n个鸡蛋,最后一个 盒子有多少个鸡蛋? public static int lastBoxEggNum(int eggNum){ if(eggNum<=0){ return 0; } for (int i = 0;;i++){ int boxCapacity = (i
2020-06-17 22:46:16
422
原创 sql查找根部节点
1、有树节点表如下(树的高度不定):CREATE TABLE `node` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(32) NOT NULL, `pid` BIGINT NULL COMMENT '父节点ID');请用sql查询出所有非叶子节点的节点名称。 select t1.name from node t1 join node t2 on t1.id = t2.pid;...
2020-06-17 22:44:48
1118
原创 计算集合里全排列
public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.size(); j++) { for (int k = 0; k < list.size(); k++) {
2020-06-16 17:25:59
149
原创 返回俩个集合的元素组合
public static void main(String[] args) { List list1 = new ArrayList(); List list2 = new ArrayList(); list1.add(1);list1.add(2);list1.add(3); list1.add(3);list1.add(4);list2.add(6); for (int i = 0; i < list1.size(); i++) { for (int j = 0; ..
2020-06-16 17:16:26
234
原创 返回数组的所有元素的俩俩组合
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); for (int i = 0; i < list.size(); i++) { for (int j = i+1; j < list.size(); j++) { System.out.println(
2020-06-16 17:12:05
594
原创 最大连续子数组和
题目连接 https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof方法一: 暴力法求解class Solution { public int maxSubArray(int[] arr) { int maxSum = Integer.MIN_VALUE; for (int i = 0; i < arr.length; i++) { for (int j = i; j < arr.
2020-06-12 14:18:07
143
原创 two sum
https://leetcode-cn.com/problems/two-sum/submissions/public int[] twoSum(int[] arr, int target){ if(arr==null){ return null; } Map<Integer,Integer> map = new HashMap(); for (int i = 0; i < arr.length; i++) { map.put(arr[i],i); }
2020-06-10 13:57:00
174
原创 翻转数组
public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for (int i = 0; i < arr.length/2; i++) { int tmp = arr[i]; arr[i] = arr[arr.length-i-1]; arr[arr.length-i-1] = tmp; } for (int i : arr) { System.out.println(i); }
2020-06-10 10:31:55
149
原创 翻转数字
翻转数字 public static void main(String[] args) { System.out.println(reverseNum(-123)); } public static int reverseNum(int num){ if(num>Integer.MAX_VALUE||num<Integer.MIN_VALUE){ return 0; } int ret
2020-06-10 00:17:15
149
原创 排序算法整理
选择排序int[] arr = {22,12,3,4,1}; for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j <arr.length; j++) { if(arr[i]>arr[j]){ int tmp = arr[i]; arr[i] = arr[j];
2020-06-10 00:11:39
102
原创 单例的几点概念。
1、构造函数必须设置为private避免被new 出来,只能通过暴露的方法获取实例2、懒汉和恶汉懒汉就是用的时候才加载double checkpublic class SingletonWithDoubleChecked { private SingletonWithDoubleChecked(){}; private static volatile SingletonWithDoubleChecked instance = null; private static fi
2020-06-09 00:26:21
127
原创 剑指offer40. 最小的k个数
题目https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/思路分析典型的topk问题方法一全部排序后输出public int[] getLeastNumbers(int[] arr, int k) { if(arr==null){ return null; } List<Integer> list = new ArrayList() ; for (int i : arr)
2020-06-03 00:18:38
156
原创 大文件上传需要注意的若干问题
为了防止大文件上传到一半失败,或者超大文件内存溢出的问题,问题有必要合并么?超大文件(T级别)下载是怎么做的?参考https://juejin.im/post/5dff8a26e51d4558105420ed
2020-05-29 15:44:58
557
原创 SaaS架构中多租户的概念
租户可以理解为部署在云端的客户,通常出现在2B的企业中,比如现在学校的一卡通管理,通常是一个公司来做的,学校本地不需要做任何部署,而这个公司又是服务了很多个学校,那么学校对于公司来说就是一个租户。SaaS多租户一共有三种1. 独立数据库这是第一种方案,即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本较高。优点:为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。缺点:增多了数据库的安装数量,随之带来维护成
2020-05-28 19:02:10
2728
原创 java 多线程求和的几种实现方式。
前情提要通过本文你可以收获通过多线程计数求和了解synchronized的应用场景,以及其他加锁方式为什么不生效框架 对象锁和类锁1、同一时刻只有一个线程执行这段代码2、最基本的互斥同步手段3、分类 一共有俩种锁:1、对象锁1、同步代码块锁2、方法锁3 类锁案例演示与分析:1、不使用锁 求和会出问题public class MutilThreadCount implements Runnable{ static int sum = 0; @Override
2020-05-27 15:08:32
3151
省市区级联菜单MySQL数据库以及源代码打包
2018-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人