Netty

阿里P8大牛的建议,工作1-5年的Java工程师如何让自己变得更值钱

不羁的心 提交于 2020-08-11 04:16:09
今天这篇文章主要想跟大家分享:工作 1-5 年的 Java 工程师们,如何变得更值钱? 如果你现在已经是一个 Java 工程师,但是经验积累的还不够,那这个阶段就是你成长极快的时候。 前提是,你认同我之前经常说那句话: 从你入行那一刻起,你就要不停地学习。 对于 Java 工程师来说,想在业务能力上更进一步、让自己更值钱,最大的捷径就是用正确的方法来学习,好的方法能让你事半功倍。 我面试过多人,之前也在大厂待过,深知一个道理: 作为一个程序员,你的知识体系,和企业的用人需求,是不一样的。 Java 工程师尤其是。 我也见过一些读者朋友,觉得自己的 Java 技术过关,但是一到面试就被 pass 了,问题就出在这,无法将 Java 技术应用到实际开发中。 这里我建议 Java 经验 1-5 年的读者,可以对标阿里 P7 的标准。 给大家分享一份《对标阿里P7Java架构师学习路线图》,刚开始参加工作及已经工作五六年的朋友都可以参考参考,梳理一下自己的技术栈,这些东西可能你们平时在工作中接触过,但是缺少的全面系统的学习,所以掌握的都不深,希望看了路线图以后大家知道从哪里开始入手学习。 这是通往架构师的必经之路,由浅入深地沉稳扎根基础。 需要完整版《对标阿里P7Java架构师学习路线图》的朋友,请转发+关注,然后私信回复 “666” 获取免费领取方式。 一、扎实基础、深入底层

java8中parallelStream提升数倍查询效率是怎样实现的,来看看这篇文章

故事扮演 提交于 2020-08-11 03:00:40
作者:我恰芙蓉王 原文: https://www.cnblogs.com/-tang/p/13283216.html 业务场景 在很多项目中,都有类似数据汇总的业务场景,查询今日注册会员数,在线会员数,订单总金额,支出总金额等。。。这些业务通常都不是存在同一张表中,我们需要依次查询出来然后封装成所需要的对象返回给前端。那么在此过程中,就可以把这个接口中“大任务”拆分成N个小任务,异步执行这些小任务,等到最后一个小任务执行完,把所有任务的执行结果封装到返回结果中,统一返回到前端展示。 同步执行 首先看看同步执行的代码 public class Test { @Data @NoArgsConstructor @AllArgsConstructor @ToString class Result { /** * 在线人数 */ Integer onlineUser; /** * 注册人数 */ Integer registered; /** * 订单总额 */ BigDecimal orderAmount; /** * 支出总额 */ BigDecimal outlayAmount; } @org.junit.Test public void collect() { System.out.println("数据汇总开始"); long startTime = System

阿里P8大牛的建议,工作1-5年的Java工程师如何让自己变得更值钱

放肆的年华 提交于 2020-08-11 02:51:17
今天这篇文章主要想跟大家分享:工作 1-5 年的 Java 工程师们,如何变得更值钱? 如果你现在已经是一个 Java 工程师,但是经验积累的还不够,那这个阶段就是你成长极快的时候。 前提是,你认同我之前经常说那句话: 从你入行那一刻起,你就要不停地学习。 对于 Java 工程师来说,想在业务能力上更进一步、让自己更值钱,最大的捷径就是用正确的方法来学习,好的方法能让你事半功倍。 我面试过多人,之前也在大厂待过,深知一个道理: 作为一个程序员,你的知识体系,和企业的用人需求,是不一样的。 Java 工程师尤其是。 我也见过一些读者朋友,觉得自己的 Java 技术过关,但是一到面试就被 pass 了,问题就出在这,无法将 Java 技术应用到实际开发中。 这里我建议 Java 经验 1-5 年的读者,可以对标阿里 P7 的标准。 给大家分享一份《对标阿里P7Java架构师学习路线图》,刚开始参加工作及已经工作五六年的朋友都可以参考参考,梳理一下自己的技术栈,这些东西可能你们平时在工作中接触过,但是缺少的全面系统的学习,所以掌握的都不深,希望看了路线图以后大家知道从哪里开始入手学习。 这是通往架构师的必经之路,由浅入深地沉稳扎根基础。 需要完整版《对标阿里P7Java架构师学习路线图》的朋友,请转发+关注,然后私信回复 “提升” 或者 “666” 获取免费领取方式。 一、扎实基础

鲁班java架构师二期

孤者浪人 提交于 2020-08-11 01:25:21
〖课程介绍〗: 课程旨在帮助在职Java开发工程师晋升提高,由来自一线大型互联网公司架构师、技术总监全职授课,内容涵盖: 高并发、高可用、分布式、高性能、架构设计、源码分析。 〖课程目录〗: openjdk编译调试、java线程模型 【回放】openjdk编译调试、java线程模型(7月4日 20:00-22:00) 02 Java 当中的"锁"事 【回放】Java 当中的"锁"事(7月7日 20:00-22:00) 03 synchronized和volatile关键字 【回放】synchronized和volatile关键字(7月9日 20:00-22:00) 04 并发编程之并发容器 【回放】并发编程之并发容器(7月11日 20:00-22:00) 05 并发中锁的原理:JOL查看对象布局、各种锁之间的性能对比 【回放】并发中锁的原理(7月14日 20:00-22:00) 06 JAVA锁膨胀的过程 【回放】JAVA锁膨胀的过程(7月16日 20:00-22:00) 07 锁的膨胀过程二 【回放】锁的膨胀过程二(7月18日 20:00-22:00) 08 并发编程之线程池 【回放】并发编程之线程池(7月21日 20:00-22:00) 09 CAS和AQS的应用和原理之CyclicBarrier-semaphore 【回放】CAS和AQS的应用和原理(7月23日 20:00

Netty框架的理解和简单使用

时光怂恿深爱的人放手 提交于 2020-08-10 23:30:50
Netty是什么 Netty是一个高性能的异步的,基于事件驱动的NIO框架,它是JBOSS提供的一个开源框架,用以快速开发高性能,高可靠性的网络服务器和客户端程序。 netty的架构 Netty官网 https://netty.io/index.html 这里可以找到jar包或者maven依赖 类似框架 Apache 的 Mina java和netty Java使用netty,建议jdk版本为1.5以后的,这是netty官网摘录的 开始 我使用maven构建的项目,所以就使用maven依赖,也可以普通项目导入jar。 <dependency>   <groupId>io.netty</groupId>   <artifactId>netty</artifactId>   <version>3.10.6.Final</version>   <scope>compile</scope> </dependency> <dependency>   <groupId>io.netty</groupId>   <artifactId>netty-transport</artifactId>   <version>4.1.34.Final</version> </dependency> <dependency>   <groupId>io.netty</groupId>   

RATE-MAX——换组博客

守給你的承諾、 提交于 2020-08-10 17:43:20
RATE-MAX——换组博客 RATE-MAX小组新成员—— 啥都有 226黄于晗 开始之前——旧小组工作回顾&感想 我原本的工作:我主要的任务是负责用户端的商品以及公告部分的后端接口,具体接口请看群里最新的接口文档和项目代码里面的商品控制器部分(如果对哪个接口或者哪段代码有疑惑可以与我沟通)。但是我目前只是完成了alpha阶段所要求的内容,就算是已经完成的接口,也有可能在后续的beta阶段进行部分修改和完善,这点请团队和新成员注意,在后续的工作分配中进行调整。其次,我只能确保自己编写的代码能够经过alpha阶段的测试,若在以后的测试中出现问题,与我无关,请团队自行解决。 我给新成员的建议:1.希望新成员能够多与新团队成员交流,有问题及时提出,早日融入新团队,服从新团队下达的任务,跟上整个新团队的节奏。2.如果对整个项目结构没有什么认识的话,可以先看看项目源码,熟悉整个项目,进行进一步的学习的认识。3.尽量熟悉我曾经编写过的代码,主要是商品和公告的相关的内容,以便后续布置新任务的时候能够正常执行。 最后我希望新成员能够顺利融入团队,成功补上我离去留下的空缺。 交换之后——新小组适应计划 在新小组的适应情况:当我得知我被随机抽取到新的小组后,我首先寻找新小组的成员,让其将我拉入讨论组,以便及时接收新小组的消息。然后为了能够快速融入新团队

使用Java Netty做Concox协议解析

丶灬走出姿态 提交于 2020-08-10 16:40:55
concox协议与部标协议存在着很大的不同,特别是包头包尾的定义,部标使用的是打个byte位,然后通过转义的方式来实现,这也是目前主流的处理方式,无论是808,809还是1078与苏标都是单字节的包头包尾,而concox则使用的是双字节来定义包头包尾,中间无转义的方式,其实也有很多私有协议使用的是双字节的包头包尾。 话不多说,我们首先看一下concox的协议格式(以登录包为例): 长度 描述 起始位 2 0x78 0x78 包长 1 长度= 协议号 + 信息内容 +信息序列号 + 错误校验 协议号 1 0x01 信息内容 终端ID 8 例:如果 IMEI 是 123456789123456 ,终端 ID 为: 0x01 0x23 0x45 0x67 0x89 0x120x34 0x56 类型识别码 2 根据此识别码判断终端类型 时区语言 2 时区语言标志,详见下表 信息序列号 2 从开机后,每次发送数据序列号都自动加 1 错误校验 2 “包长度”到“信息序列号”的CRC-ITU值。接收方若收到的信息计算有CRC错误,则忽略,抛弃这个数据包(算法详见附件1) 停止位 2 固定值 : 0x0D 0x0A Example : 78 78 11 01 07 52 53 36 78 90 02 42 70 00 32 01 00 05 12 79 0D 0A 首先我们定义一个解码器

北京百度技术四面(Java中级程序员),月薪24k,已拿offer

做~自己de王妃 提交于 2020-08-10 11:57:36
在面试前三面真的有点急促,一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了三面和HR面。整个过程还是比较曲折的,技术面试还是挺考察技术深度的。现在已拿到offer。 百度一面 BeanFactory 和 ApplicationContext 有什么区别 Spring Bean 的生命周期 Spring IOC 如何实现 说说 Spring AOP Spring AOP 实现原理 动态代理(cglib 与 JDK) Spring 事务实现方式 Spring 事务底层原 百度二面 如何自定义注解实现功能 Spring MVC 运行流程 Spring MVC 启动流程 Spring 的单例实现原理 Spring 框架中用到了哪些设计模式 为什么选择 Netty 说说业务中,Netty 的使用场景 百度三面 原生的 NIO 在 JDK 1.7 版本存在 epoll bug 什么是TCP 粘包/拆包 TCP粘包/拆包的解决办法 Netty 线程模型 说说 Netty 的零拷贝 Netty 内部执行流程 HR面 如果我们录取你了,你以后的规划是什么? 为什么要来百度,你可以为我们公司带来什么? 你是怎样看待学历和能力的 你还有什么问题要问吗? 然后就是跟你说薪资和待遇了。 面试经历总结: 技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面试对技术的基础非常重视

reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response解决方案

試著忘記壹切 提交于 2020-08-10 08:35:16
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://lovnx.blog.csdn.net/article/details/107900585 一、背景 可能大家在使用Spring Cloud Gateway构建微服务网关的时候,过五关斩六将,Reactor没能难倒我们,链路追踪没能难倒我们,最后在上线之后发现许多奇妙的问题,这些奇妙的问题还无从下手,比如这个堆栈,深入使用过SCG的人一定不会陌生: reactor . netty . http . client . PrematureCloseException : Connection prematurely closed BEFORE response Suppressed : reactor . core . publisher . FluxOnAssembly$OnAssemblyException : 类似的还有: Connection prematurely closed DURING response 。。。等等 百度了一圈,鲜有人提供解决方案,有条件的Google了一把,跟着官方调整几个参数,有用没用也不得而知,最后反正就不了了之。 二、如何找答案 去SCG官方Issue中查找一番,还不少,(这里插一句,遇到问题可以先找前人的Issue

docker启动ES内存溢出

冷暖自知 提交于 2020-08-10 06:47:12
在elasticsearch的config中加jvm.options文件,修改堆栈大小,默认是2GB,直接启动es即可,保证之前已经映射了配置文件。 -Xms5g -Xmx5g 完整jvm.options文件如下: ## JVM configuration ################################################################ ## IMPORTANT: JVM heap size ################################################################ ## ## You should always set the min and max JVM heap ## size to the same value. For example, to set ## the heap to 4 GB, set: ## ## -Xms4g ## -Xmx4g ## ## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html ## for more information ## ################################################