360linker
码龄14年
  • 1,651,337
    被访问
  • 128
    原创
  • 1,295,931
    排名
  • 613
    粉丝
  • 6
    铁粉
关注
提问 私信

个人简介:360linker技术社区的发起人,曾在多家头部互联网公司任职,致力于打造一个帮助我们实现高效技能提升的圈子,分享IT圈内技术、产品、运营、市场等信息。

  • 加入CSDN时间: 2008-10-15
博客简介:

360linker

博客描述:
IT圈技术、产品、运营、市场、职场等信息交流分享
查看详细资料
个人成就
  • 获得592次点赞
  • 内容获得147次评论
  • 获得2,225次收藏
创作历程
  • 3篇
    2021年
  • 24篇
    2020年
  • 179篇
    2019年
  • 458篇
    2018年
成就勋章
TA的专栏
  • 算法
    2篇
  • 360linker
  • 资讯
    24篇
  • 技术
    350篇
  • 职场
    86篇
  • 市场
    81篇
  • 产品设计
    16篇
  • 架构设计
    126篇
  • 微服务
    71篇
  • 区块链
    3篇
  • 人工智能
    2篇
  • 大数据
    6篇
  • 软件开发
    349篇
  • 编程语言
    25篇
  • 运维
    29篇
  • 航海日志
    8篇
  • 项目管理
    12篇
  • 团队管理
    20篇
  • 沟通协调
    13篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

RocketMQ消息顺序和消息重复的处理

消息顺序消息顺序是只可以按照消息发送的顺序进行消费。一个订单产生3条消息,订单创建、付款、订单完成。消费时只有按照顺序消费才有意义,不可能先消费付款消息再消费订单创建消息,这样就乱了。另外,多笔订单又可以并行消费。如何保证呢?一个订单产生的消息只能发送给同一个MQ服务器中的同一个分区,并且按顺序发送,这样才能在理论上保证消费者消费时是按照顺序消费的,因为一个分区就是一个逻辑队列。生产者虽然按顺序发送,但是第一条消息到达MQ的耗时比第二条多,那么第二条则会被先消费,这样就又导致消费时不是顺序的。那么如
转载
发布博客 2021.01.29 ·
342 阅读 ·
2 点赞 ·
0 评论

浅谈常见的七种加密算法及实现

前言数字签名、信息加密是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的签名加密算法来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。正文1. 数字签名数字签名,简单来说就是通过提供可鉴别的数字信息验证自身身份的一种方式。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。分别由发送者持有能够代表自己...
转载
发布博客 2021.01.26 ·
496 阅读 ·
0 点赞 ·
0 评论

跳表的实现原理

我们知道二叉搜索算法能够高效的查询数据,但是需要一块连续的内存,而且增删改效率很低。跳表,是基于链表实现的一种类似“二分”的算法。它可以快速的实现增,删,改,查操作。我们先来看一下单向链表如何实现查找当我们要在该单链表中查找某个数据的时候需要的时间复杂度为O(n).怎么提高查询效率呢?如果我们给该单链表加一级索引,将会改善查询效率。如图所示,当我们每隔一个节点就提取出来一个元素到上一层,把这一层称作索引,其中的down指针指向原始链表。当我们查找元素16的时候,单链表需要..
转载
发布博客 2021.01.26 ·
602 阅读 ·
1 点赞 ·
1 评论

Kafka为什么吞吐量大、速度快?

Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。 Kafka虽然是基于磁盘做的数据存储,但却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几万、几十上百万。 但是很多使用过Kafka的人,经常会被问到这样一个问题,Kafka为什么速度快,吞吐量大;大部分被问的人都是一下子就懵了,或者是只知道一些简单的点,本文就简单的介绍一下Kafka为什么吞吐量大,速度快。 ...
转载
发布博客 2020.12.12 ·
273 阅读 ·
0 点赞 ·
0 评论

natapp搭建外网服务器

natapp搭建外网服务器首先在natapp官网注册一个账号:https://natapp.cn/注册好后登陆网站,点击左侧菜单中的购买隧道:点击免费隧道后进入隧道配置页面,我这里已经配置好了直接展示如下:点击保存后点击我的隧道后可以看到自己刚才配置的隧道信息:在https://natapp.cn/#download根据您的本机下载对应的客户端,比如我的本机是win7 64位,则下载Windows 64位的客户端:下载之后,解压至任意目录,得到natapp..
转载
发布博客 2020.12.09 ·
259 阅读 ·
0 点赞 ·
0 评论

HTTP服务和RPC服务,如何选择

一、七层网络结构模型:我们先来了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层: (从上到下)第一层:应用层。定义了用于在网络中进行通信和传输数据的接口; 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等; 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输; 第五层:网络层。定义网络设备间如何传输数据; 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;
转载
发布博客 2020.11.18 ·
169 阅读 ·
1 点赞 ·
0 评论

用了HTTPS就安全了吗?HTTPS 会被抓包吗

随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA证书等,但对于以下灵魂三拷问可能就答不上了: 为什么用了 HTTPS 就是安全的? HTTPS 的底层原理如何实现? 用了 HTTPS 就一定安全吗? 本文将层层深入,从原理上把 HTTPS 的安全性讲透。HTTPS 的实现原理大家可能都听说过 HTT...
转载
发布博客 2020.11.16 ·
387 阅读 ·
0 点赞 ·
0 评论

So easy!同时登陆两个或多个Mac版微信和QQ

现如今,微信和QQ已经不单单是简单的社交软件了,也成了工作必备软件,工作中用它传个文件,发个通知,不知道有多方便。但是很多人希望将工作圈和生活圈分开,有人想出拿两部手机的方法,倒是可以,不过来回倒腾略麻烦了点。这时候双微信的作用就来了,一个专注工作圈一个专注生活圈互不干扰,这有多好。双QQ也是一样,一部手机同时登录两个QQ号,大号聊天的同时开个小号聊工作也是挺好的。那么问题来了,如何同时登陆两个或多个Mac版微信和QQ呢?超简单,几步操作轻松登陆两个或多个Mac版微信和QQ!如何实现Mac.
转载
发布博客 2020.11.16 ·
791 阅读 ·
0 点赞 ·
0 评论

百亿级数据分表后怎么分页查询?

当业务规模达到一定规模之后,像淘宝日订单量在5000万单以上,美团3000万单以上。数据库面对海量的数据压力,分库分表就是必须进行的操作了。而分库分表之后一些常规的查询可能都会产生问题,最常见的就是比如分页查询的问题。一般我们把分表的字段称作shardingkey,比如订单表按照用户ID作为shardingkey,那么如果查询条件中不带用户ID查询怎么做分页?又比如更多的多维度的查询都没有shardingkey又怎么查询?唯一主键一般我们数据库的主键都是自增的,那么分表之后主键冲突的问题就是一个无法
转载
发布博客 2020.11.12 ·
97 阅读 ·
0 点赞 ·
0 评论

Java并发包JUC核心原理解析

JUC分类线程管理 线程池相关类 Executor、Executors、ExecutorService 常用的线程池:FixedThreadPool、CachedThreadPool、ScheduledThreadPool、SingleThreadExecutor 能获取子线程的运行结果 Callable、Future、FutureTask 并发流程管理CountDwonLatch、CyclicBarrier、Semaphore、Condition实现线程安..
转载
发布博客 2020.11.12 ·
357 阅读 ·
0 点赞 ·
0 评论

23张图,带你入门推荐系统

做广告业务1年多时间了,但是平时的工作主要和广告工程有关,核心的广告算法由 AI 部门支持,对我们而言可以说是「黑盒般」的存在,只需要对训练好的模型进行调用即可。近期,我打算系统性地学习下广告中的搜索和推荐算法,当然更多是从工程的视角去弄清楚:算法的基本原理、以及面对线上海量数据时算法是如何解决性能问题的?整个过程,我会将有价值的技术点输出成系列文章。这篇文章属于推荐系统的入门篇,本文暂不考虑线上环境的海量数据,目的是先了解清楚推荐系统的基本构成,我会通过图解推荐算法以及程序demo的形式展开,..
转载
发布博客 2020.11.12 ·
364 阅读 ·
1 点赞 ·
1 评论

十大经典排序算法(动图演示)

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 .
转载
发布博客 2020.11.12 ·
70 阅读 ·
1 点赞 ·
0 评论

一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?

老田升职了,年薪涨到了百万级别!这是大刘在加班搞技术攻坚的时候,听别的同事聊了那么一嘴。大刘心里不是滋味儿。老田和大刘其实在这家公司之前就是同事了,老田能到这家公司,说起来还是大刘推荐的。但是,在公司的这几年,老田越来越受领导赏识,到如今,晋升成功,赫然成了大刘的上司。大刘百思不得其解。大刘和老田本身在前家公司都是高级程序员,前后脚跳槽到了现在这家公司。大刘来的早,成了架构师。老田呢,技术本就不如大刘,被大刘拉来后,先是当了个高级工程师,只是为了避嫌,没跟大刘一个团队。后来,老田被那
转载
发布博客 2020.11.12 ·
103 阅读 ·
0 点赞 ·
0 评论

SpringBoot下的策略模式,消灭了大量的ifelse

前言项目中有这样一个场景,在公园放置了用来拍摄人像的识别杆,根据用户在不同识别杆之间采集的图象来计算用户的运动距离。由于涉及到许多公园,每个公园的布局不同,识别杆之间距离不同,算法也不同。但代码中每个不同的公园的算法区别都采用ifelse来进行判断处理。这样的写法你能看得下去吗?肯定不能。所以,就用策略模式对此进行了重构。项目采用SpringBoot架构,于是对不同的策略模式写法又进行了一次升级。现在就以实战的角度带领大家来学习策略模式,以及如何将ifelse重构为基于SpringBoot的策略模式
转载
发布博客 2020.11.11 ·
206 阅读 ·
0 点赞 ·
0 评论

如何干掉java中的if...else...

前言if…else是高级编程语言的必备功能。但如果现实中项目代码中的if…else过多,可能会影响代码的可读性、可维护性,且违反了编程规范中的单一职责原则和开闭原则。问题1:if…else过多问题表现if…else 过多的代码可以抽象为下面这段代码。其中只列出5个逻辑分支,但实际工作中,能见到一个方法包含10个、20个甚至更多的逻辑分支的情况。另外,if…else 过多通常会伴随着另两个问题:逻辑表达式复杂和 if…else 嵌套过深。对于后两个问题,本文将在下面两节介绍。本节先来讨论 if
转载
发布博客 2020.11.11 ·
117 阅读 ·
0 点赞 ·
0 评论

详解Condition的await和signal等待/通知机制

1.Condition简介任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知机制,同样的, 在java Lock体系下依然会有同样的方法实现等待/通知机制。从整体上来看Object的wait和notify/notify是与对象监视器配合完成线程间的等待/通知机制,而Condit
转载
发布博客 2020.11.11 ·
61 阅读 ·
0 点赞 ·
0 评论

Java中多个线程交替循环执行

有些时候面试官经常会问,两个线程怎么交替执行呀,如果是三个线程,又怎么交替执行呀,这种问题一般人还真不一定能回答上来。多线程这块如果理解的不好,学起来是很吃力的,更别说面试了。下面我们就来剖析一下怎么实现多个线程顺序输出。两个线程循环交替打印//首先我们来看一种比较简单的方式public class ThreadCq { public static void main(String[] args) { Stack<Integer> stack = new Stac
转载
发布博客 2020.11.11 ·
152 阅读 ·
0 点赞 ·
0 评论

Redis持久化AOF和RDB对比

RDB持久化 AOF持久化 全量备份,一次保存整个数据库 增量备份,一次保存一个修改数据库的命令 保存的间隔较长 保存的间隔默认一秒 数据还原速度快 数据还原速度一般 save会阻塞,但bgsave或者自动不会阻塞 无论是平时还是AOF重写,都不会阻塞 更适合数据备份,默认开启 ...
转载
发布博客 2020.11.11 ·
74 阅读 ·
0 点赞 ·
0 评论

布隆过滤器(Bloom Filter)的原理和实现

什么情况下需要布隆过滤器?先来看几个比较常见的例子字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功能这几个例子有一个共同的特点:如何判断一个元素是否存在一个集合中?常规思路数组 链表 树、平衡二叉树、Trie Map (红黑树) 哈希表虽然上面描述的这几种数据结构配合常见的排序、二分搜索可以快速高效的处理绝大部分判断元素是否存在集合中的需求。但.
转载
发布博客 2020.11.11 ·
77 阅读 ·
0 点赞 ·
0 评论

Spring Boot系列之自定义starter

pring Boot有很多starter的依赖包,想要了解starter的原理,我们可以通过自定义starter来更好的理解。工具/原料 idea jdk8 spring boot2 方法/步骤 1 创建spring boot项目,命名为mymsgstarter-spring-boot-starter。项目结构见图。其中MsgProperties、MsgAutoConfiguration、MsgService分别为配置属性类、配置类、和服务类。 2 配置
转载
发布博客 2020.11.11 ·
66 阅读 ·
0 点赞 ·
0 评论
加载更多