- 浏览: 450061 次
- 性别:
- 来自: 北京
最新评论
-
IXHONG:
你好,现在改好了CoderDream 写道【(点击放大图像)】 ...
从0开始的微服务架构:(一)重识微服务架构 -
CoderDream:
【(点击放大图像)】图片在哪里?
从0开始的微服务架构:(一)重识微服务架构 -
IXHONG:
解释下虫洞和空间扭曲:打个比方,一张平面纸上,从A点到B点最捷 ...
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ) -
IXHONG:
mvn clean package -Dmaven.test. ...
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ) -
tracy0201:
大哥,你这个pom文件里的jar包有问题啊。mvn insta ...
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ)
文章列表
https://github.com/javahongxi
本文转载自kaitao.toutiao.im
应用生命周期事件
11.1 介绍
应用事件设施给Web应用开发人员更好地控制ServletContext、HttpSession和ServletRequest的生命周期,可以更好地代码分解,并在管理Web应用使用的资源上提高了效率。
11.2 事件监听器
应用事件监听器是实现一个或多个Servlet事件监听器接口的类。它们是在部署Web应用时,实例化并注册到Web容器中。它们由开发人员在WAR包中提供。
Servlet事件监听器支持在ServletContext、Htt ...
https://github.com/javahongxi
本文转载自kaitao.toutiao.im
4.1 ServletContext接口介绍
ServletContext(Servlet上下文)接口定义了servlet运行在的Web应用的视图。容器供应商负责提供Servlet容器的ServletContext接口的实现。Servlet可以使用ServletContext对象记录事件,获取URL引用的资源,存取当前上下文的其他Servlet可以访问的属性。
ServletContext是Web服务器中已知路径的根。例如,Servlet 上下文可以从http://www.myco ...
https://github.com/javahongxi
本文转载自kaitao.toutiao.im
Web应用
一个Web应用是由许多servlet、HTML页面、类和其他资源组成的集合,这些资源组成了一个运行在Web服务器上的完整应用程序。Web应用程序能够捆绑和运行在来自不同提供商的不同容器上。
10.1 Web服务器中的Web应用程序
在Web服务器中Web应用程序的根目录是一个特定的路径。例如,一个catalog应用,可以位于http://www.mycorp.com/catalog。以这个前缀开始的所有请求将被路由到代表catalog应用的ServletContext ...
https://github.com/javahongxi
Servlet接口是Java Servlet API的核心抽象。所有Servlet类必须直接或间接的实现该接口,或者更通常做法是通过继承一个实现了该接口的类从而复用许多共性功能。目前有GenericServlet和HttpServlet这两个类实现了Servlet接口。大多数情况下,开发者只需要继承HttpServlet去实现自己的Servlet即可。
2.1 请求处理方法
Servlet基础接口定义了用于客户端请求处理的service方法。当有请求到达时,该方法由servlet容器路由到一个servlet实例。 ...
https://github.com/javahongxi
查看servlet-api.jar就可以知道Servlet规范大概包含哪些内容,下面翻译下规范中的“会话”,即HttpSession。
第7章 会话
超文本传输协议(HTTP)被设计为一种无状态协议。为构建有效的Web应用,必须把来自特定客户端的请求相互关联起来。随时间的推移,演变出了许多会话跟踪机制,但是程序员直接使用这些机制很困难或很麻烦。
该规范定义了一个简单的HttpSession接口,允许servlet容器使用任意几种方法来跟踪用户会话,而不会使应用开发人员陷入到这些方法的细微差别中。
7.1 会话跟踪机制
...
https://github.com/javahongxi
有朋友最近问到了spring加载类的过程,尤其是基于annotation注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring 3.0的版本来说明(虽然版本有所区别,但是变化并不是特别大),另外,这里会从WEB中使用spring开始,中途会穿插自己通过newClassPathXmlApplicationContext的区别和联系。
https://github.com/javahongxi
Spring作为现在最优秀的框架之一,已被广泛的使用并有很多文章分析它。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成Spring的骨骼架构?Spring的AOP特性又是如何利用这些基础的骨骼架构来工作的?Spring中又使用了那些设计模式来完成它的这种设计的?它的这种 设计理念对对我们以后的软件设计有何启示?本文将详细解答这些问题。
Spring的骨骼架构
Spring总共有十几个组件,但是真正核心的组件只有几个, ...
一、能够引起JVM崩溃的常见原因有:
线程阻塞
CPU 使用率过高
JVM Crash
堆内存不足
类装载
Java虚拟机自身的Bug
JDK与服务器(CPU、内存、操作系统)的兼容性
内存溢出
二、日志文件
hs_err_pid.log,致命错误出现的时候,JVM生成了hs_err_pid.log这样的文件,其中包含了虚拟机崩溃原因的重要信息:
触发致命错误的操作异常或者信号;
一、检查是否已经存在ssh key
通常sshkey会默认生成在用户家目录下,所以查看家目录下是否存在.ssh 文件夹,以及是否存在相关目录就行。(~/.ssh/id_rsa)
二、生成key
在控制台输入:
ssh-keygen -t rsa
Note: -t 的意思是选择kye的type。分别有 RSA 和 DSA 两种。具体请自行百度
控制台输出如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created ...
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi 等来编写我们的shell程序。 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该脚本的程序。在这个例子 ...
1、概述
在这篇教程里,我们将要去了解下已经发布的JDK8中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。
首先,让我们先定义一个简单的实体类:
记得好久之前看到一个大牛说过:如果单体架构都搞不好,就别搞微服务架构。乍一看,这句很有道理,后来发现这句话是不太对的,因为微服务架构的目的就是为了降低系统的复杂性,所以 微服务架构应该比单体架构更简单、更好实践才对。
这篇文章,我们就分享一下如何搭建一个 简单模式 的微服务架构。
什么是微服务架构的简单模式?
相对于大型互联网平台动辄几万并发的访问量,或者每天多次的在线版本发布,绝大多数企业和项目并没有这样的需求。他们关注的是如何更好地提高开发效率,如何更快地实现新需求,如何更便利地运维,等等。
微服务架构的简单模式就是可以满足以上需求的软件架构方案。
相对于“完美”的微服务架构方 ...
导语
虽然已经红了很久,但是“微服务架构”正变得越来越重要,也将继续火下去。
各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上来就是很有借鉴意义的干货,要么就是以高端的专业术语来讲述何为微服务架构。就是没有一个做到成熟地将技术传播出来,同时完美地照顾“初入微服务领域人员”,从0开始,采用通俗易懂的语言去讲解微服务架构的系列。
所以,本文试图开启微服务架构专题“Re:从0开始的微服务架构”,为还没有入门该领域的技术人员开路,也帮助微服务架构老手温故知新。
这是专题的第一篇文章,从最基础的地方入手,让我们重识微服务架构。前言
得益于 ...
前言
构建,软件生命周期中重要的一环,在现代软件开发过程中,起着越来越重要的作用。过去在Java或类Java的世界里,Ant、Maven再熟悉不过了,Maven凭借其强大的依赖配置战胜Ant,基本上成为了Java构建的标准。而在现代,系统日益复杂,构建的灵活性要求越来越高,比如:构建过程中需要打包上传到服务器,Maven无法很好地支持这种复杂的系统构建,所以,我选择了Gradle,一个基于Groovy,更灵活更强大的构建系统,能帮助我们构建更复杂的项目。
为什么选择Gradle
从框架方向来看:
Gradle是很成熟的技术,可以处理大规模构建
你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。
RabbitMQ简介
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道 ...