Netty

Linux Redis 安装(带视频)

扶醉桌前 提交于 2020-04-29 13:59:13
<font size=3 face="黑体" > 疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【 博客园总入口 】</font > <font size=3 face="黑体" > 架构师成长+面试必备之 高并发基础书籍 【 Netty Zookeeper Redis 高并发实战 】</font > 疯狂创客圈 高并发 环境 视频,陆续上线: Windows Redis 安装(带视频) Linux Redis 安装(带视频) Windows Zookeeper 安装(带视频) Linux Zookeeper 安装(带视频) Linux RabbitMQ 安装(带视频) 小视频以及所需工具的 百度网盘链接 ,请参见 疯狂创客圈 高并发社群 博客 第一步: 准备 Redis桌面管理工具 推荐使用的桌面管理工具:Redis Desktop Manager 下载 Redis Desktop Manager 下载地址为 https://redisdesktop.com/download 疯狂创客圈 的 小视频和工具 共享网盘,已经有下载好的版本 安装 Redis Desktop Manager 下载到本地后,一路点击安装完成即可。 比较傻瓜式。 第二步:安装tcl依赖包 Linux在源码安装过程中,会依赖到tcl工具。 tcl是一种 脚本语言,由John

Netty 与三种 I/O 模式

别说谁变了你拦得住时间么 提交于 2020-04-29 12:26:39
Netty 与三种 I/O 模式 经典的三种 I/O 模式 生活场景: 当我们去饭店吃饭时: 食堂排队打饭模式:排队在窗口,打好才走; 点单/等待被叫模式:等待被叫,好了自己去端; 包厢模式:点单后菜直接被端上桌。 Netty 对三种 I/O 模式的支持 为什么 Netty 仅支持 NIO 了? 为什么 Netty 有多种 NIO 实现? 通用的 NIO 实现(Common)在 Linux 下也是使用 epoll,为什么自己单独实现? 实现的更好! NIO 暴露了更多的可控参数,例如: JDK 的 NIO 默认实现是水平触发。 Netty 是边缘触发(默认)和水平触发可切换。 Netty 实现的垃圾回收更少、性能更好。 NIO 一定优于 BIO 吗? BIO 代码简单。 特定场景:连接数少,并发度低,BIO 性能不输 NIO。 来源: oschina 链接: https://my.oschina.net/u/4273264/blog/4258035

Centos7下安装配置elasticsearch 6.3.1

ⅰ亾dé卋堺 提交于 2020-04-28 22:10:50
1)下载 Elasticsearch 6.3.1 地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.tar.gz 2)拷贝 拷贝到服务器上,解压:tar -xvzf elasticsearch-6.3.1.tar.gz 。解压后路径:/home/elasticsearch-6.3.1 3)创建用户 创建用户,创建esdata目录,并赋予权限 [root@bogon home]# adduser esuser [root@bogon home]# cd / home [root@bogon home]# mkdir -p esdata/ data [root@bogon home]# mkdir -p esdata/ log [root@bogon home]# chown -R esuser elasticsearch- 6.3 . 1 [root@bogon home]# chown -R esuser esdata 4)配置es [root@bogon esdata]# cat /home/elasticsearch- 6.3 . 1 /config/ elasticsearch.yml # ======================== Elasticsearch

Java 线程池 8 大拒绝策略,面试必问!

不想你离开。 提交于 2020-04-28 20:56:21
来源:KL博客 www.kailing.pub/article/index/arcid/255.html 前言 谈到java的线程池最熟悉的莫过于ExecutorService接口了,jdk1.5新增的java.util.concurrent包下的这个api,大大的简化了多线程代码的开发。而不论你用FixedThreadPool还是CachedThreadPool其背后实现都是ThreadPoolExecutor。 ThreadPoolExecutor是一个典型的缓存池化设计的产物,因为池子有大小,当池子体积不够承载时,就涉及到拒绝策略。JDK中已经预设了4种线程池拒绝策略,下面结合场景详细聊聊这些策略的使用场景,以及我们还能扩展哪些拒绝策略。 池化设计思想 池话设计应该不是一个新名词。我们常见的如java线程池、jdbc连接池、redis连接池等就是这类设计的代表实现。 这种设计会初始预设资源,解决的问题就是抵消每次获取资源的消耗,如创建线程的开销,获取远程连接的开销等。就好比你去食堂打饭,打饭的大妈会先把饭盛好几份放那里,你来了就直接拿着饭盒加菜即可,不用再临时又盛饭又打菜,效率就高了。 除了初始化资源,池化设计还包括如下这些特征:池子的初始值、池子的活跃值、池子的最大值等,这些特征可以直接映射到java线程池和数据库连接池的成员属性中。推荐阅读: 教你如何监控 Java

jdk(1.8)命令行工具(二)

南笙酒味 提交于 2020-04-28 11:27:33
2.3 jinfo:java配置信息工具    jinfo(Configuration Info for Java) 的作用是实时的查看和调整虚拟机的各项参数。使用jps -v 可以查看虚拟机启动时显示指定的参数列表,但如果想知道未被显示指定的参数的系统默认值,就只能使用jinfo -flag选项进行查看(jdk1.6以上也可以使用 java -XX:+PrintFlagsFinal进行查看)    命令格式:     jinfo [option] pid              jinfo工具主要选项 选项 作用 -flags 查看jvm参数 -flag 查看或修改(部分)某个jvm参数 -sysprops 查看系统参数 -h 查看jinfo命令帮助 2.4 jmap(Java内存映像工具)   jmap(Memery Map for JAVA) 主要用于生成堆转储快照(一般称为heapdump或dump文件),还可以用来查询finalize 执行队列、java堆和永久代的详细信息,如空间使用率、当前使用的是那种收集器等   命令格式:     jmap [option] vmid          jmap工具主要选项 选项 作用 -dump 生成java堆转储快照。格式为:-dump [live,] format=b,file=<filename>

Java+Netty、Vue+Element-UI实现的即时通信应用 leo-im

偶尔善良 提交于 2020-04-28 07:35:22
之前工作接触了几个开源的IM产品,再加上曾经用Netty实现过几个服务,于是就有了用Netty实现一个IM的想法,于是用业余时间写了一个IM,和喜欢Netty的程序员们分享。 考虑到方便扩展,在服务端采用了Http+Socket结合的设计,客户端所有的请求都基于Http,如发送消息、修改个人信息等,所有的消息推送采用Socket方式即时推送到客户端,这样的设计可以在并发访问量大的情况下,将Http服务与Socket服务分开部署,减小各自的访问压力。 Http服务也基于Netty实现,在Netty之上做了扩展,参考Spring MVC注解实现了netty-rest-server( netty-rest-server ),使用该框架,可实现注解注入REST controller,实现统一异常处理控制器和拦截器(如跨域拦截器、身份验证拦截器等)。 Http服务和Scoket服务之间的解耦和通讯可使用Java内置的队列或Redis发布/订阅实现,消息处理器接收到任务后,会将该任务交由线程池处理,处理后通过GroupChannel发送广播或发给指定的Channel。 前端基于Vue+Element-UI开发,建议使用Chrome浏览器体验。 在线体验 测试用户:test1、test2、test3,口令均为:123456 源码地址 服务端 Web端 来源: oschina 链接: https:

SpringBoot2+Netty打造通俗简版RPC通信框架

萝らか妹 提交于 2020-04-28 07:35:09
2019-07-19:完成基本RPC通信! 2019-07-22:优化此框架,实现单一长连接! 2019-07-24:继续优化此框架:1、增加服务提供注解(带版本号),然后利用Spring框架的在启动时立刻保存提供服务的实现类。2、优化NettyConfig(区分消费者和提供者配置),因为一个项目可同时作为服务提供者和服务消费者,所以增加两个配置来区分是提供服务还是消费服务,而且,因为如果都是本地启动着两个项目,那么IP必定是一样的,所以需要区分服务端口和消费端口。不然会有下面事故:先启动client,再启动server,但是他们同样依赖于netty包,所以client也启动了netty服务,只配置一个相同的端口会导致client的RPC通信也是通道自己启动的Netty服务。。。 2019-07-27:优化此框架:增加注册中心,使用Zookeeper作为注册中心。 接下来:我会优化Netty方面的,例如增加心跳检测、业务处理统一使用自定义业务线程池、客户端或服务端异常断开处理等,然后会优化一下项目的结构和rpc通信返回结果等,最后可能会考虑增加Redis作为注册中心。等完成所有的这些,就会对整个项目重新写一篇文章来介绍一下自己的整体思路,当然了,如果有同学需要的,可以在下方留言,我可以提前写文章,对完成注册中心及之前的代码进行详细介绍,之后再补充其他新增的功能实现过程!~ 2019

SpringCloud-Gateway 网关路由、断言、过滤

假装没事ソ 提交于 2020-04-28 04:47:04
Gateway 简介 是什么? Spring Cloud 全家桶中有个很重要的组件:网关。在 1.x 版本中使用的是 Zuul 网关,但是到了 2.x,由于Zuul的升级不断跳票,Spring Cloud 自己研发了一套网关组件:Spring Cloud Gateway。 Spring Cloud Gateway基于 Spring Boot 2.x,Spring WebFlux 和 Project Reactor 构建,使用了 Webflux 中的 reactor-netty 响应式编程组件,底层使用了 Netty 通讯框架。 详见: 官网 能干嘛? 反向代理 鉴权 流量控制 熔断 日志监控 ...... 网关在微服务架构中的位置 Gateway 的三大概念 Route(路由) :路由是构建网关的基本模块,它由 ID、目标 URI、一系列的断言和过滤器组成,如果断言为 true 则匹配该路由 Predicate(断言) : 参考的是 Java8 中的 java.util.function.Predicate 。开发人员可以匹配 HTTP 请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由 Filter(过滤) :指的是 Spring 框架中 GatewayFilter 的实例,使用过滤器,可以在请求被路由之前或之后对请求进行修改 工作流程 Clients

一款基于Netty开发的WebSocket服务器

余生颓废 提交于 2020-04-28 02:04:31
代码地址如下:<br> http://www.demodashi.com/demo/13577.html 一款基于Netty开发的WebSocket服务器 这是一款基于Netty框架开发的服务端,通信协议为WebSocket。主要用于Java后台服务器向浏览器进行消息推送。 需求 对于一个Web项目而言,客户端一般均为各种各样的浏览器,如何从后端服务器向浏览器客户端进行消息推送,便成了一个棘手的问题,好在在HTTP1.1之后,HTTP可以支持长连接,由此,我在Netty框架的基础上开发了这个WebSocket服务端。 当然,你依旧可以下载源码进行测试,集成,二次开发等等。 环境 Intellij IDEA2018 JDK 1.8 插件:Simple WebSocket Client 0.1.3 FireFox Quantum 60.0.1 (64 位) Google Chrome 67.0.3396.99(正式版本)(64 位) 运行结果 请看下图: 实现步骤及源码 WebSocket WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。 WebSocket通信协议于2011年被IETF定为标准RFC 6455,WebSocketAPI被W3C定为标准。 在WebSocket API中,浏览器和服务器只需要要做一个握手的动作,然后