tomcat(十)memcached共享session

NoSQL

NoSQL是对非SQL、非传统关系型数据库的统称。
NoSQL一词诞生于1998年,2009年这个词汇被再次提出指非关系型、分布式、不提供ACID的数据库设计模式。
随着互联网时代的到来,数据爆发式增长,数据库技术发展日新月异,要适应新的业务需求。
随着移动互联网、物联网的到来,大数据的技术中NoSQL也同样重要。

分类

  • Key-value Store
    • redis、memcached
  • Document Store
    • mongodb、CouchDB
  • Column Store列存数据库,Column-Oriented DB
    • HBase、Cassandra
  • Graph DB

tomcat(九)http实现tomcat负载均衡

实验:httpd 负载均衡 tomcat

使用httpd -M 可以看到proxy_balancer_module,用它来实现负载均衡。

方式依赖模块http负载均衡mod_proxy
mod_proxy_http
mod_proxy_balancerajp负载均衡mod_proxy
mod_proxy_ajp
mod_proxy_balancer

准备另一个主机:192.168.99.124,做httpd主机

  • httpd主机上
  1. 安装httpd
  1. 修改配置,注释这一行
  1. 添加配置
  1. 检查配置语法
  1. 启动httpd服务
  1. 添加域名解析
  1. 测试

配置[……]

继续阅读

tomcat(八)nginx实现tomcat负载均衡

负载均衡

动态服务器的问题,往往就是并发能力太弱,往往需要多台动态服务器一起提供服务。如何把并发的压力分摊,就需要调度,采用一定的调度策略,将请求分发给不同的服务器,这就是Load Balance负载均衡。

当单机的Tomcat,演化出多机多级部署的时候,一个问题便凸显出来,这就是Session。而这个问题的由来,都是由于HTTP协议的设计之初没有想到未来的发展。

HTTP的无状态,有连接和短连接

  • 无状态:指的是服务器端无法知道2次请求之间的联系,即使是前后2次请求来自同一个浏览器,也没有任何数据能够判断出是同一个浏览器的请求。后来可以通过cookie、session机[……]

    继续阅读

tomcat(七)nginx与tomcat的结合

9. 常见部署方式

  • standalone模式:Tomcat单独运行,直接接受用户的请求,不推荐。
  • 反向代理:单机运行,提供了一个Nginx作为反向代理,可以做到静态有nginx提供响应,动态jsp代理给Tomcat
    • LNMT:Linux + Nginx + MySQL + Tomcat
    • LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
  • 前置一台Nginx,给多台Tomcat实例做反向代理和负载均衡调度,Tomcat上部署的纯动态页面更适合
    • LNMT:Linux + Nginx + MySQL + Tomcat
  • 多级代理

tomcat(六)创建虚拟主机配置

7. 创建一个 java web 项目

  1. 首先我们在 tomcat 的 webapp 路径下创建一个标准的 web 项目目录结构
  1. 在项目路径 myapp 下创建 index.html
  1. 创建index.jsp 文件
  1. 创建web.xml
  1. 设置权限
  1. 重启服务
  1. 测试

8. 虚拟主机配置实验

尝试配置一个虚拟主机,并将myapp部署到/data/webapps目录下

  1. 我们在 /data/webapps 路径下创建一个标准的 web 项目目录结构:
  1. 在项目路径 myapp 下创建 index.htm[……]

    继续阅读

tomcat(五)配置详解

6. 配置详解

server.xml 内部有一个 server 的定义
每个 server 中可以定义多个 service,
每个 service 中可以定义多个 connector 供自己的 engine 使用,
每个 engine 中可以定义多个 host,
host 为虚拟主机, 可以指定项目在文件系统同的路径和其他配置信息。

查看配置,下面会一块一块讲解,删除注释

6.1. <Server>

8005是 tomcat 的管理端口,此条配置会让 tomcat 监听在本地的 127.0.0.1:8005 端口,使用 telnet[……]

继续阅读

tomcat(四)组件与应用部署

4. 组件分类

顶级组件
  ServerServer,代表整个Tomcat容器

服务类组件
  ServiceService,组织Engine和Connector,里面只能包含一个Engine

连接器组件
  ConnectorConnector,有HTTP、HTTPS、A JP协议的连接器

容器类
  Engine、Host、ContextEngineHostContext都是容器类组件,可以嵌入其它组件,内部配置如何运行应用程序。

内嵌类
  可以内嵌到其他组件内。如valve、logger、realm、loader、manager等。以logger举例[……]

继续阅读

tomcat(三)安装tomcat与配置说明

2.1. 安装 tomcat 官方二进制版

  1. 安装环境
  1. 下载包

链接失效就访问:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/
下载其它版本步骤相同

  1. 解压
  1. 创建软链接
  1. 创建用户,并给目录设置权限
  1. 以tomcat用户启动tomcat
  1. 查看端口(8080和8009)
  1. 浏览器访问(192.168.99.121:8080)

3. tomcat配置

目录结构

目录说明bin服务启动、停止等相关conf[……]

继续阅读

tomcat(二)安装openjdk

1. 安装openjdk

  1. 在Centos中,可以使用yum安装openjdk。
  1. 查看版本
  1. 编写 Hellworld 程序进行测试

这个类名hello要和文件名一致

  1. 编译 运行
  1. 了解下java和javac两个程序的路径

可以看到javac是/usr/bin/javac/usr/bin/java,再跟踪去看看

指向了/etc/alternatives这个目录,再去看看

其实就是前面安装那2个包的路径

1.1. yum安装 oracle jdk

  1. 需要下载这个rpm包安装

官网:ht[……]

继续阅读

Tomcat(一)web技术和JAVA

1. web技术

一个进程更像是资源的容器,真正干活的是线程。进程中可以有多个线程,cpu是分时的,cpu将时间片分配给进程下的线程,线程的时间片用完之后,cpu切换到另一个进程。只不过时间片非常短,感觉上就是同时在运行一样。

每一个运行的程序都是一个进程,每一个进程都是这么想的:我将独占整个操作系统,所有的IO都应该为我服务。同一个进程内,多个线程之间共享进程的资源。进程与进程之间通讯就没有这个方便了。

ip地址是主机之间路由,局域网是mac地址,到了主机要寻找某个进程,就需要进程绑定某个端口,通过端口来与该进程通信,如果找不到该端口,则通信失败。

客户端与服务器往往[……]

继续阅读