分布式技术入坑指南(五)

13.网页静态化之FreeMarker
14.反向代理/负载均衡服务器:Nginx

网页静态化

什么是静态化?
通过一些技术手段(Freemarker/valocity)将动态的页面(jsp,asp.net,php) 转换成静态的页面,通过浏览器直接访问静态页面。
为什么要静态化?

  1. 通过浏览器直接访问静态的页面,不需要经过程序处理,它的访问速度高。稳定性好。
  2. 更有效的防止安全漏洞问题,比如不易遭受黑客攻击。
  3. 静态的页面更容易被搜索引擎收录。

更多概念见笔记文档,快速入门及整合Spring访问项目学习仓库地址:https://github.com/yuzh233/FreeMarker

分布式技术入坑指南(四)

12.Java消息队列学习与使用

ActiveMQ

官网:http://activemq.apache.org/

安装

  • 解压
  • cd到bin目录
  • ./activemq start
  • 访问,默认端口:8161
  • 默认用户名与密码:admin

分布式技术入坑指南(三)

11.Solr索引库的搭建与使用(单机版和集群版)

下载地址:https://lucene.apache.org/solr/

单机版

搭建

* 版本:solr-4.10.3
* windows下的配置完全一样。

第一步:把solr 的压缩包上传到Linux系统
第二步:解压solr。
第三步:把solr部署到Tomcat下。

路径:`/opt/solr-4.10.3/dist/solr-4.10.3.war`

第四步:解压缩war包。可以启动Tomcat解压。

分布式技术入坑指南(二)

10.Redis集群的搭建及业务实现

Redis集群的搭建及业务实现

redis集群(Redis-cluster)架构图

Alt text

环境准备

至少3个节点,为了集群的高可用,为每一个节点增加一个备份机。(6台服务器)。
搭建伪分布式集群方案:在一台机器里面运行6个redis实例。端口需要不同(7001-7006)

1、使用ruby脚本搭建集群。需要ruby的运行环境。
安装ruby:

1
2
yum install ruby
yum install rubygems

2、从官网下载 redis-3.0.4.gem 并上传到 linux 中

地址:https://rubygems.org/gems/redis/versions

3、安装ruby运行时所使用的包

1
gem install redis-3.0.0.gem

分布式技术入坑指南(一)

知识点:
1.SOA分布式架构
2.Maven-多模块搭建
3.初识dubbo、zookepper
4.多工程之间的整合
5.学习MyBatis逆向工程
6.学习PageHelper
7.了解SEO:搜索引擎优化,以及使用伪静态化尽可能的提高推广度
8.内容管理系统 — 统一表字段抽取
9.mapper中使用“主键返回”

dubbo监控中心-dubbo-admin.war的打包和部署

dubbo监控中心-dubbo-admin.war的打包和部署

SpringAop中JoinPoint对象使用时出现的问题

介绍不写了,API也不写了,记录问题解决。

切面类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package xyz.yuzh.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

/**
* 日志切面
*
* @Author: z.yu
* @Date: 2018/06/19 20:35
*/
@Aspect
@Component
public class LogAspect {

/**
* 如果代理Handler,该Handler不能继承类。
*/
@AfterReturning(pointcut = "execution(* xyz.yuzh.service.*.*(..))")
public void log(JoinPoint point) {
Object[] args = point.getArgs();
for (Object a : args) {
System.out.println("入参数 -> " + a + ",");
}
System.out.println("方法签名:" + point.getSignature());
System.out.println("目标对象:" + point.getTarget());
System.out.println("代理对象:" + point.getThis());
System.out.println("-----------------------");
}

}

spring与aspectJ版本冲突问题

版本冲突真是让人脑阔疼。
用这个

1
2
3
4
5
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.2.7</version>
</dependency>

代替这个

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.7</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.7</version>
</dependency>

maven会自动处理spring与aspect的依赖关系。依赖了 aspectwearer.jar,没有引用 aspectjrt.jar 但是也可以用,主要是可以看到aspect的版本号,以便于手动加入想要的aspect包。

Linux下部署个人站点后的运行问题

Linux下部署个人站点后的运行问题

  昨天已经把个人站点部署在linux成功并可以发布运行,有一个问题,就是当退出远程登陆SSH之后,hexo的进程会被杀死导致无法访问,今天早上看了几篇博客之后知道怎么回事了,做一下记录。

1、进程杀死原因

1.1、进程与会话

  • 进程组: 一个或多个进程的集合,每一个进程组都有唯一一个进程组ID,即进程组
  • 会话期: 一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
  • 控制进程: 与控制终端(如ssh)连接的会话期首进程叫做控制进程。当前与终端交互的进程称为前台进程组, 其余进程组称为后台进程组。

Linux下搭建Hexo博客环境

Linux下搭建Hexo博客环境

前不久在自己电脑上搭建了基于 Github+Hexo 的个人博客,今天试着在Linux下搭建hexo环境并通过域名解析本地IP运行起来。刚好前几天在阿里云买了ECS云服务器和域名,还不是很熟练,不用白不用。😄

Steps 1 :安装Git

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×