![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
互联网的主流技术(主要是一些中间件技术)
文章平均质量分 85
柳暗花明_攻城师
与广大程序员、技术人员、专家交流,致力于专业能力有效快速提升。
展开
-
SpringBoot+RabbitMq具体使用的几种姿势
目前主流的消息中间件有activemq,rabbitmq,rocketmq,kafka,我们要根据实际的业务场景来选择一款合适的消息中间件,关注的主要指标有,消息投递的可靠性,可维护性,吞吐量以及中间件的特色等重要指标来选择,大数据领域肯定是kafka,那么传统的业务场景就是解耦,异步,削峰。那么就在剩下的3款产品中选择一款,从吞吐量,社区的活跃度,消息的可靠性出发,一般的中小型公司选择rabbitmq来说可能更为合适。那么我们就来看看如何使用它吧。环境准备本案例基于springboot集成rabb转载 2021-07-15 16:23:22 · 360 阅读 · 0 评论 -
RabbitMQ实战
1.什么是MQ消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。为什么会产生消息队列?有几个原因:不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个转载 2021-07-10 23:29:54 · 386 阅读 · 0 评论 -
docker安装Jenkins
一、前言 有人问,为什么要用Jenkins?我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已经上线了,需要把服务关,在部署到服务器上,将项目启动起来,这个时候可能某个用户正在操作某些功能上的东西,如果你隔三差五的部署一下,这样的话对用户的体验也不好,自己也是烦的很,总是打包拖到服务器上。希望小型企业工作人员学习一下,配置可能复杂,但是你配置好了之后,你只需要把代码提交到Git或者Svn上,自动构转载 2021-04-16 18:19:10 · 119 阅读 · 0 评论 -
Jenkins+docker+harbor自动构建发布
192.168.3.69 harbor+docker 已安装192.168.3.73 gialab已安装192.168.3.70 jenkins+docker已安装(作为docker客户机)架构图:前提条件:作为客户机的3.70dockefile构建镜像正常,从gitlab拉取代码正常,从harbor私有镜像仓库上传下载镜像正常准备环境1.harbor私有镜像仓库+docker2.gitlab代码仓库3.jenkins+d...转载 2021-04-16 17:20:06 · 444 阅读 · 0 评论 -
mysql提升效率
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃转载 2020-11-03 16:37:05 · 139 阅读 · 0 评论 -
Linux查看某个端口的连接数
Linux查看某个端口的连接数回到顶部一、查看哪些IP连接本机netstat -an回到顶部二、查看TCP连接数1)统计80端口连接数netstat -nat | grep -i "80" | wc -l2)统计httpd协议连接数ps -ef | grep httpd | wc -l3)统计已连接上的,状态为“establishednetstat -anp | grep ESTABLISHED | wc -l4)、查出哪个IP地址连接最多,将原创 2020-10-30 14:04:28 · 990 阅读 · 0 评论 -
Nginx查看并发连接数
通过界面查看通过界面查看通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_stub_status_module然后配置Nginx.conf,在server里面加入如下内容location /Nginxstatus { stub_status on; access_log /usr/local/nginx/logs/status.log; #日志 auth_basic "NginxStatus";转载 2020-10-30 11:31:02 · 992 阅读 · 3 评论 -
OpenResty 究竟解决了什么痛点?
比如 MySQL 卡,就算 OpenResty 极其快,对打开浏览器的用户来说,迟迟看不到从数据库获取的信息,页面一片空白,他们认为也是卡,跟没有用 OpenResty 不是一样吗?作者:耿小扭链接:https://www.zhihu.com/question/266535644/answer/705067582来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。OpenResty解决的是高并发的痛点。现在服务的后台大部分是java写的,但是用java写出稳..转载 2020-10-30 10:55:27 · 189 阅读 · 0 评论 -
nginx限流配置
nginx限流配置原文:https://www.cnblogs.com/biglittleant/p/8979915.html转载 2020-10-27 19:14:56 · 173 阅读 · 0 评论 -
NETTY教程
原文:http://www.tianshouzhi.com/api/tutorials/netty/222转载 2020-08-06 17:15:40 · 146 阅读 · 0 评论 -
FastDFS分布式文件系统
https://www.cnblogs.com/minseo/p/10210428.html转载 2020-07-30 10:31:44 · 148 阅读 · 0 评论 -
单点登录系统实现基于SpringBoot
今天的干货有点湿,里面夹杂着我的泪水。可能也只有代码才能让我暂时的平静。通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClient,整合Redis ,HttpClient简易教程。还在等什么?撸起袖子开始干吧!效果图:8081端口是sso系统,其他两个8082和8083端口模拟两个系统。登录成功后检查Redis数据库中是否有值。技术:SpringBoot,SpringMVC,Spring,SpringData,Redis.转载 2020-07-09 10:03:04 · 399 阅读 · 0 评论 -
redis实现消息队列&发布/订阅模式使用
在项目中用到了redis作为缓存,再学习了ActiveMq之后想着用redis实现简单的消息队列,下面做记录。 Redis的列表类型键可以用来实现队列,并且支持阻塞式读取,可以很容易的实现一个高性能的优先队列。同时在更高层面上,Redis还支持"发布/订阅"的消息模式,可以基于此构建一个聊天系统。一、redis的列表类型天生支持用作消息队列。(类似于MQ的队列模型--任何时候都可以消费...原创 2020-04-13 15:52:26 · 401 阅读 · 1 评论 -
Mqtt Qos 深度解读
1.QoS含义 :Quality of Service,服务质量2.作用域发布者的Qos订阅者的Qos3.等级与作用level 0:最多一次的传输level 1:至少一次的传输,(鸡肋)level 2: 只有一次的传输4.交互过程qos0对于qos1而言,对于client而言,有且仅发一次publish包,对于broker而言,有且仅发一次publish,简而...原创 2019-12-10 18:47:02 · 262 阅读 · 0 评论 -
10本Java架构师必读书籍
1、大型网站系统与JAVA中间件实践本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建Java中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的Java中间件系统的设计和实践。希望读者通过本书可以了解大型网站架构变迁过程中的较为通用...原创 2019-10-18 11:15:53 · 2440 阅读 · 0 评论 -
搭建高可用mongodb集群(四)—— 分片
搭建高可用mongodb集群(四)—— 分片Posted on 29 三月, 2014 by lanceyan | 104 Replies按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展?在系统早期,数据量还小的时候不会引起太...转载 2019-08-06 14:51:00 · 102 阅读 · 0 评论 -
netty入门
1. netty入门(一)1.1. 传统socket编程在任何时候都可能有大量的线程处于休眠状态,只是等待输入或者输出数据就绪,这可能算是一种资源浪费。 需要为每个线程的调用栈都分配内存,其默认值大小区间为 64 KB 到 1 MB,具体取决于操作系统。 即使 Java 虚拟机(JVM)在物理上可以支持非常大数量的线程,但是远在到达该极限之前,上下文切换所带来的开销就会带来麻烦1...转载 2019-08-26 16:42:54 · 92 阅读 · 0 评论 -
EMQ 安装与部署
原文地址:https://www.cnblogs.com/hongwans/p/7997627.html最近接触到了消息队列,发现了一款开源的MQTT服务器,EMQ。百万级分布式开源物联网MQTT消息服务器基于高并发的Erlang/OTP语言平台设计,支持百万级连接和分布式集群,发布订阅模式的开源MQTT消息服务器完整支持MQTT V3.1/V3.1.1协议规范,扩展支...转载 2019-05-27 15:47:18 · 2608 阅读 · 0 评论 -
zookeeper分布式锁代码实现
之前实现的分布式锁只是利用了zookeeper的临时节点,在大集群的环境下并不适用,会出现“惊群”效应:每次节点删除,所有的调用者都来获取锁,zookeeper负载太大,也造成资源不必要的浪费;这时可以为调用者定一个顺序(zookeeper的临时顺序节点),当调用者自己的编号是所有节点中最小的,那设定它取得了锁,否则监听最小的节点,这个节点删除时,重新尝试获得锁。 本例中使用了T...转载 2019-03-06 18:52:07 · 367 阅读 · 0 评论 -
java实现网络爬虫
接着上面一篇对爬虫需要的java知识,这一篇目的就是在于网络爬虫的实现,对数据的获取,以便分析。----->目录: 1、爬虫原理2、本地文件数据提取及分析3、单网页数据的读取4、运用正则表达式完成超连接的连接匹配和提取5、广度优先遍历,多网页的数据爬取6、多线程的网页爬取7、总结爬虫实现原理网络爬虫基本技术处理网络爬虫是数据采集的一种方...转载 2019-08-03 22:33:15 · 1447 阅读 · 0 评论 -
java 连接 redis集群时报错:Could not get a resource from the pool
由于弄这个的时候浪费了太多的时间,所以才记录下这个错,给大伙参考下检查了一下,配置啥的都没问题的,但在redis集群机器上就可以,错误如下:Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool...转载 2019-07-25 11:31:11 · 891 阅读 · 0 评论 -
FastDFS
一、FastDFS介绍1、简介2、FastDFS的存储策略3、FastDFS的上传过程4、FastDFS的文件同步5、FastDFS的文件下载二、安装FastDFS环境0、服务器规划1、安装所需的依赖包2、下载安装 libfastcommon3、下载安装FastDFS4、配置FastDFS跟踪器(Tracker)5、配置 FastDFS 存储 (Storage)6、文件上...转载 2019-05-20 22:45:39 · 351 阅读 · 0 评论 -
solr教程
本教程基于solr5.5前言至于为什么要用solr5.5,因为最新的6.10,没有中文的分词器支持,这里使用的是ik分词器,刚好支持到5.5ik分词器下载地址 :https://github.com/EugenePig/ik-analyzer-solr5, 下载完之后使用maven命令, mvn package 即可生成jar文件,或者下载我编译好的http://pan.b...转载 2019-05-20 20:41:06 · 151 阅读 · 0 评论 -
mysql-proxy实现读写分离
文章来自整理:http://blog.jobbole.com/94606/其中Amoeba for MySQL也是实现读写分离环境描述:操作系统:CentOS6.5 32位主服务器Master:192.168.179.146从服务器Slave:192.168.179.147调度服务器MySQL-Proxy:192.168.179.142由于电脑配置不行,安装了三台虚拟机,就卡死了...转载 2019-05-19 12:19:17 · 105 阅读 · 0 评论 -
[Java] SpringMVC工作原理之一:DispatcherServlet
一、DispatcherServlet 处理流程在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作。在看 DispatcherServlet 类之前,我们先来看一下请求处理的大致流程:Tomcat 启动,对 DispatcherServlet 进行实例化,然后调用它的 init() 方法进行初始化...转载 2019-03-07 16:44:02 · 84 阅读 · 0 评论 -
Redis分布式锁的正确实现方式
Redis分布式锁的正确实现方式前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了...转载 2019-03-06 18:35:41 · 137 阅读 · 0 评论 -
终于有人把云计算、大数据和 AI 讲明白了
作者: 刘超www.cnblogs.com/popsuper1982/p/8505203.html 原标题:不是技术也能看懂云计算,大数据,人工智能 我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据,谈人工智能的时候也会提大数据,谈人工智能的时候也...转载 2019-02-27 11:35:26 · 952 阅读 · 0 评论 -
基于Kafka的服务端用户行为日志采集
本文来自网易云社区作者:李勇背景随着互联网的不断发展,用户所产生的行为数据被越来越多的网站重视,那么什么是用户行为呢?所谓的用户行为主要由五种元素组成:时间、地点、人物、行为、行为对应的内容。为什么要做用户的行为分析?因为只有做了用户行为分析才能知道用户画像、才能知道用户在网站上的各种浏览、点击、购买背后的商业真相,从而给企业带来商业价值。网易美学是一个供用户发现...转载 2019-03-06 11:40:09 · 595 阅读 · 0 评论 -
缓存的一些问题与解决方案
作者丨我一定会有猫的https://juejin.im/post/5b604b9ef265da0f626390011. 缓存来由随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。2. 缓存问题虽然使用缓存给系统带来了一定的质的提升,但同时...转载 2019-03-05 11:16:30 · 415 阅读 · 0 评论 -
一步步完成FastDFS + Spring MVC上传下载整合示例
准备FastDFS连接jar包下载代码本文示例中,使用了两个代码库【https://github.com/happyfish100/fastdfs-client-java】 【https://github.com/onefly/fastdfs.pool/】将上述代码下载到本地,如打包和Maven安装将上述代码打包成一个jar包,如fastdfs-client-pool-...转载 2019-05-21 13:27:38 · 774 阅读 · 0 评论 -
MQTT介绍与使用
原文地址:https://www.cnblogs.com/sxkgeek/p/9140180.html目录一、MQTT简介 二、特性 三、实现方式 四、MQTT的搭建(ubuntu) 五、MQTT权限配置 六、MQTT实现(Java语言)正文 物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of...转载 2019-05-24 22:00:55 · 1314 阅读 · 0 评论 -
kafka partition(分区)与 group
原文地址:https://www.cnblogs.com/liuwei6/p/6900686.html一、1、原理图2、原理描述一个topic 可以配置几个partition,produce发送的消息分发到不同的partition中,consumer接受数据的时候是按照group来接受,kafka确保每个partition只能同一个group中的同一个consume...转载 2019-05-25 22:02:46 · 443 阅读 · 0 评论 -
openResty中的ngx.location.capture和ngx.location.capture_multi的使用
在openResty中,ngx.location.capture_multi是一个非常强大的功能。可以应用于并发多个相互之间没有依赖的请求。在现代的应用架构中经常使用微服务,提供低粒度的接口;但在客户端(例如:app、网页服务)经常需要请求多个微服务接口,才能完整显示页面内容。例如:打开一个商品详情页,需要请求:banner广告接口; 商品详情; 商品评论等。那么ngx.locati...转载 2019-05-29 09:54:31 · 15588 阅读 · 0 评论 -
EMQTT客户端代码 JAVA
原文地址:https://blog.csdn.net/wangshuminjava/article/details/80749243从网上找了一篇中文的 结合 https://github.com/fusesource/mqtt-client 这个来看转:http://ywx217.iteye.com/blog/1797463MQTT是一款针对机对机(M2M)通信的,非常轻量级的的消息...转载 2019-05-27 16:55:48 · 1099 阅读 · 0 评论 -
redis, lua springMVC 结合使用
原文地址:https://www.jianshu.com/p/366d1b4f0d13Redis Lua实战2018.02.04 13:54字数 1877阅读 3660评论 3喜欢 6Redis Lua 这个技术,我之前就在关注,今天有空,我把项目中基于Redis实现的ID生成器改成用lua脚本实现,防止并发id冲突问题Redis中使用Lua的好处减少网络开销。可...转载 2019-05-23 11:09:43 · 443 阅读 · 0 评论 -
emqttd + java 练习
原文地址 : https://blog.csdn.net/zhu_tianwei/article/details/49178167https://blog.csdn.net/zhu_tianwei/article/details/42983783 http 调用 emqemqttd 集群在上一节我们已经配置完毕。emqttd默认占用1883端口用于MQTT连接,8083端口用于HT...转载 2019-05-27 16:15:20 · 447 阅读 · 0 评论 -
Zookeeper 实现分布式节点下的配置文件统一管理和分布式锁
原文地址:https://www.jianshu.com/p/f37b14cf89f0https://archive.apache.org/dist/ //jars包集合一、ZooKeeper 简介ZooKeeper 是一个集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。ZooKeeper 的主要应用:1、节点选举;2、配置文件统一管理;3、分布式锁;4、发布...转载 2019-05-26 17:37:48 · 241 阅读 · 0 评论 -
java 使用mqtt
mqtt的搭建请看https://blog.csdn.net/qq_29350001/article/details/76680646<dependency> <groupId>org.eclipse.paho</groupId> <artifactId>mqtt-client</artifactId> ...转载 2019-05-26 14:46:24 · 1570 阅读 · 0 评论 -
MQTT入门(7)- 服务质量QoS
为了确保客户端和服务器端之间消息的送达,MQTT支持三种消息发布服务质量(QoS:Quality of Service):(1)QoS 0(At most once)“至多一次”消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。(2)QoS 1(At least once)“至少一次”确保消...转载 2019-05-26 14:26:59 · 799 阅读 · 0 评论 -
kafka 介绍、安装、实战 + spring
原文地址 :https://www.cnblogs.com/hei12138/p/7805475.html1. kafka介绍1.1. 主要功能根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能: 1:It lets you publish and subscribe to streams of records.发...转载 2019-05-25 22:45:27 · 223 阅读 · 0 评论