
Java
yuu_l
这个作者很懒,什么都没留下…
展开
-
Openfeign ErrorDecoder caused java.io.IOException: stream is closed
实现错误解码器,保留 feign 服务异常信息,左侧是之前设计的。偶尔下游系统出现异常时,拿到返回结果时,居然会是stream is closed,就找了下原因。Don't use any of the above feature before get theresponse.body()就是因为使用log来输出日志,内部关闭了输入流。详细解析可以看https://stackoverflow.com/questions/61472139/openfeign-errordecoder-caus..原创 2020-12-31 23:24:52 · 2085 阅读 · 0 评论 -
Redis List充当消息队列的案例与问题分析
List类型使用说明 list类型是用来存储多个有序的字符串的(没有去重功能,Zset可去重),支持存储2^32次方-1个元素。 redis可以从链表的两端进行插入(pubsh)和弹出(pop)元素,充当队列或者栈 支持读取指定范围的元素集 读取指定下标的元素等 注意它是链表而不是数组。这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是...原创 2020-03-01 16:42:23 · 1400 阅读 · 0 评论 -
写框架思路进程(二)
开搞1、取名,考虑易读、易写、易记,也需要尽量避免和市面上其它产品的名字重复,还有就是最好不要起一个侮辱其它同类框架的名字以免引起公愤,我们只是代码的搬运工,而不是愤青。2、项目相关域名3、找地方托管代码,本地源代码仓库和远程网络的异地仓库总体设计不一定需要写什么设计文档画什么类图,因为可能一开始的时候无法形成这么具体的概念,我们可以直接从代码开始做第一步。框架的使原创 2016-12-04 12:43:37 · 320 阅读 · 0 评论 -
Tomcat7.0源码分析
Tomcat7.0源码分析。这博客写的不错,准备一一学习,自己敲打一遍复制过来,只怪当初的自己太懒了,很多东西虽然分析过,但零零散散总不如别人的杰作更深入透彻。转载 2016-07-28 14:17:07 · 437 阅读 · 0 评论 -
写框架思路进程(三)
上篇说道,将会根据RPC框架结构,构建Web MVC,那么这里先来了解RPC框架的大概结构:对于我们的Web MVC框架,举例如下:1、mvc.core项目,细分如下的包: 1.1、common:公共的一些组件,下面的各模块都会用到 1.2、config:配置模块,解决框架的配置问题 1.3、startup:启动模块,解决框架和Servlet如何进行整合的问题原创 2016-12-05 23:36:49 · 381 阅读 · 0 评论 -
写框架思路进程(四)
搭建整体骨架经过初步设计后,为框架搭建一套整体的骨架,一套抽象的层次关系,也就是用抽象类、接口或者空的类实现框架,可以通过编译,让框架跑起来,就像造房子搭建房子的钢筋混泥土结构(添砖加瓦是后面的事,我们先要有一个结构)。对于开发应用程序来说,其实并没有什么撑起来的说法,因为应用程序中很多模块都是并行的,可能并没有一个主结构、主流程,而对于框架来说,它往往是一个高度面向对象的、高度抽象的一套原创 2016-12-06 20:00:49 · 606 阅读 · 0 评论 -
写框架思路进程(五)
主线流程主线流程,我们需要走一遍,让这个框架可以以一个HelloWorld形式跑起来,这需要把几个核心类的核心方法用最简单的方式进行实现。这里拿我们的MVC框架作为举例:1、从startup开始,可能需要实现ServletContextListener来动态注册我们框架的入口Serlvet,暂且起名为DispatcherServlet,在这个类中我们需要走一些主线流程。 1原创 2016-12-06 22:38:41 · 367 阅读 · 0 评论 -
互联网java软件工程师
职位诱惑:高并发,分布式,氛围好,待遇不错职位描述:岗位职责:1、负责公司支付、推荐、云服务、应用商店、账号、开发者平台、论坛等系统的分析设计、开发实现和持续改善;2、参与产品分析和规划,完善和优化开发过程;3、研究和实践相关技术及实现原理。岗位要求:1、本科及以上学历,3年以上java开发经验;2、精通Java语言,熟练掌握Java WEB转载 2016-12-19 21:20:22 · 534 阅读 · 0 评论 -
Java架构师
职位诱惑:架构师,技术专家,团队有激情,付出有回报职位描述:岗位职责:1、负责设计、维护、调整互联网相关业务的技术架构,以适应业务的发展;2、负责组织技术研究和攻关工作,解决系统关键问题;3、对系统框架相关技术和业务进行培训,指导日常开发,制定开发规范。职位要求:1、本科及以上学历,5年以上J2EE/Web系统架构相关的互联网工作经验;2、深度理解S转载 2016-12-19 21:20:52 · 628 阅读 · 0 评论 -
TCP长连接和短连接的区别
当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次挥手,所以说每个连接的建立都是需要资源消耗和时间消耗的 示意图:原创 2017-02-12 18:22:07 · 492 阅读 · 0 评论 -
JDK 1.7 五种线程池的对比与使用
经过模仿和验证如下结果:线程例子public static void cache() { ExecutorService pool = Executors.newCachedThreadPool(); long start = System.currentTimeMillis(); pool.execute(() -> { ...原创 2019-09-09 00:13:14 · 1030 阅读 · 0 评论 -
写框架思路进程(一)
定位出于什么目的要写一个框架?框架是干什么的?有什么特性,适用于什么场景?框架的用户对象是谁,他们会怎么使用?框架由谁维护,将来怎么发展?等等。1、框架,要有个初步的定位,如缓存框架、Web MVC框架、IOC框架、ORM/数据访问框架、RPC框架或是一个用于Web开发的全栈式框架。2、是否要重复造轮子?除非是用来练手的项目,一般我们是有了解决不了问题的时候才会考虑不适用既有的成熟的框原创 2016-12-04 11:43:14 · 499 阅读 · 0 评论 -
使用Java开发高性能网站(四)
NIONIO是在JDK1.4后的版本中出现的,在Java 1.4之前,Jdk提供的都是面向流的I/O系统,例如读/写文件则是一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据, 面向流的I/O速度非常慢,并且一个数据包要么整个数据报已经收到,要么还没有。Java NIO非堵塞技术实际是采取Reactor模式,有内容进来会自动通知,不必死等、死循环,大大的提升原创 2016-12-03 11:19:22 · 315 阅读 · 0 评论 -
在珠海的一年
时间倒退到2013年作为应届生,初入职场,来到珠海,开始了我IT生涯的第一步。原创 2016-01-31 21:54:54 · 1012 阅读 · 2 评论 -
在深圳的一年
时间退回到2015年05月,此刻,我站在深南大道的路边,望着这座城市的繁华,我有点兴奋,这会不会是我人生的一个转折点?原创 2016-08-03 15:48:23 · 691 阅读 · 0 评论 -
CentOS6.5 下Java EE 的环境搭建
JDK版本,tomcat版本,对应操作的32或64位注意:对于.tar.gz格式的文件,linux对其进行安装、解压使用 tar -zxvf 命令 对于.bin格式的文件,linux对其进行安装、解压使用 ./ 命令 对于linux中的可执行文件,如果我们需要运行它,也是使用的 ./ 命令vi /etc/profileexport JAVA_HOME=/usr/lo原创 2016-12-02 14:24:46 · 476 阅读 · 0 评论 -
《次时代Java编程(一):Java里的协程》
转载自:https://blog.maxleap.cn/archives/816什么是协程(coroutine)这东西其实有很多名词,比如有的人喜欢称为纤程(Fiber),或者绿色线程(GreenThread)。其实最直观的解释可以定义为线程的线程。有点拗口,但本质上就是这样。我们先回忆一下线程的定义,操作系统产生一个进程,进程再产生若干个线程并行的处理逻辑转载 2016-12-14 17:21:37 · 2302 阅读 · 0 评论 -
《次时代Java编程(一):续 vertx-sync实践》
转载自:https://blog.maxleap.cn/archives/1013vertx-sync是什么上一篇我们已经讲了 Fiber 相关的知识,想必大家对Java实现类似Golang的coroutine已经有印象了,既然Java世界里有第三方提供了这么好的库, 那我们就看看怎么跟 vert.x 结合起来使用。vert.x官方为了解决异步代码编写的困难,使之更转载 2016-12-14 18:44:26 · 3763 阅读 · 0 评论 -
Spring的AOP
在开发中,之前是为web h5所开发的后台接口,后来需要接入app,部分接口需要更改,也不能再使用以前的sessionId方式,因此开辟了权限切面,在控制层切入代理,预先执行部分逻辑。原创 2016-12-02 15:21:06 · 473 阅读 · 0 评论 -
使用Java开发高性能网站(一)
JVMJEE容器中运行的JVM参数配置参数的正确使用直接关系到整个系统的性能和处理能力,JVM的调优主要是对内存管理方面的调优,优化的方向分为以下4点:1.HeapSize 堆的大小,也可以说Java虚拟机使用内存的策略,这点是非常关键的。2.GarbageCollector 通过配置相关的参数进行Java中的垃圾收集器的4个算法(策略)进行使用。3.St原创 2016-12-03 10:30:06 · 365 阅读 · 0 评论 -
使用Java开发高性能网站(二)
数据存取数据库服务器的优化和数据的存取,什么类型的数据放在什么地方更好是值得去思考的问题,将来的存储很可能是混用的,Cache,NOSQL,DFS,DataBase在一个系统上都会有,生活的餐具和平日里穿的衣服都需要摆放在家里,但是不会用同一类型的家具存放,貌似没有哪个人把餐具和衣服放在同一个柜子里面的,这就像是系统中不同类型的数据一样,对不同的数据需要使用核实的存储环境。文件和图片的存储,首原创 2016-12-03 10:32:19 · 408 阅读 · 0 评论 -
使用Java开发高性能网站(三)
并发/多线程在高并发环境下建议开发者使用JDK中自带的并发包(java.util.concurrent),在JDK1.5以后使用java.util.concurrent下的工具类可以简化多线程开发,在java.util.concurrent的工具中主要分为以下几个主要部分:1.线程池,线程池的接口(Executor、ExecutorService)与实现类(ThreadPoolExecut原创 2016-12-03 10:58:16 · 346 阅读 · 0 评论 -
在广州的一年
时间倒退到2014年记忆会慢慢消失,历史会在时间长河里被遗忘,因此我很难一下子描述曾经发生的一切,也许穿插些许的镜头,足矣。以Java工程师,加入萝岗区科学城的一家科技企业,开始我新的编程之路,重新涉足Java方向的技术,主要是后台方向的研究和接口api的开发,这一次,我重新摸索。我已忘记当初为什么选择了这家公司,貌似跟我当时候严重缺钱有关,考虑不了那么多,觉得急切需要一份工作来解决我原创 2016-07-28 13:26:57 · 476 阅读 · 0 评论