Linux 搭建OpenVPN
Linux 搭建OpenVPN服务器和客户端(一)——最简配置 项目需要能够远程控制树莓派。说到远程控制,肯定想到ssh。但是呢,树莓派是用3G流量上网的,分配到的是内网IP地址。那么如何让另一个设备能够连接到处于内网的设备呢?我想到了VPN。在VPN中,所有设备都好像在一个局域网中,如果服务器适当配置一下,那么VPN客户端之间就能互相访问。 VPN有很多种,包括PPTP、IPSec、OpenVPN等等。PPTP的数据包特征太明显,在国内的网络环境中很可能直接被拦截掉了。另外,由于树莓派使用的是3G流量,其链路可能功能有限,IPSec使用的是Cisco自己设计的协议,可能会被 ...
GHO还原系统
完美解决 开机无法启动 提示0xc000000e 注:昨天装系统碰到这个问题,这个方法说的较详细,我的是WIN7系统,开机提示引导文件错误,代码为0xc000000e 无法进入系统,使用PE进入后,在运行里输入CMD,然后按下文红字开始操作完美解决 开机无法启动 提示0xc000000e 问题 摘要:本文提供0xc000000e问题的解决方法和原理解释,保证完美修复启动菜单,启动菜单不会变成英文还是中文,且所有启动项都可以正常使用。 关键词:Windows Vista SP1 Ghost 开机 0xc000000e 无法 启动 不了 问题描述: 用 Ghost 还原镜像文件到C盘,第一次开机正常,重启后却出现黑底白字,提示语为: File: \Windows\system32\winload.exe Status: 0xc000000e Info: The selected entry could not be loaded because the application is missing or corrupt. 解决方法: 注意:千万不要按提示用 Windows Vista SP ...
宝塔部署php项目
宝塔PHP网站数据迁移第一步:进入网站管理界面 第二步:查看网站绑定的域名 第三步:进入域名DNS服务商(此处为腾讯云) 在腾讯云对应域名下添加A记录(若为服务器迁移则更改对应域名记录指定的IP地址即可) 说明: A记录: 解析地址为IP地址 CNAME记录: 解析的地址为另一个域名,即: 域名 -> 域名 -> IP地址 (可多级嵌套) 第四步:进入网站根目录( /www/wwwroot ) 将对应网站目录右键压缩,下载,然后部署到新服务器网站根目录下(/www/wwwroot) 第五步:数据库迁移将数据库备份,并下载到本地 在新服务器上进入phpMyAdmin 创建对应数据库(相同数据库名) 进入刚创建的数据库下,右侧SQL,将本地下载的数据库备份文件 xxx.sql 中内容复制粘贴并 执行 第六步:添加对应站点 域名为在DNS服务商处添加的记录:xxx.域名xxx 为记录名配置数据根目录后网站迁移完毕
JVM调优案例分析(4)
1.概述前面三篇介绍了处理Java虚拟机内存问题的知识与工具,在处理实际项目的问题 时,除了知识与工具外,经验也是一个很重要的因素。因此本章将与读者分享几个比较 有代表性的实际案例。考虑到虚拟机故障处理和调优主要面向各类服务端应用,而大部 分Java程序员较少有机会直接接触生产环境的服务器,因此本章还准备了一个所有开发人员都能够进行“亲身实战”的练习,希望通过实践使读者获得故障处理和调优的经验。 2. 案例分析本章中的案例大部分来源于处理过的一些问题,还有一小部分来源于网上有特色和代表性的案例总结。出于对客户商业信息保护的目的,在不影响前后逻辑的前提 下,笔者对实际环境和用户业务做了一些屏蔽和精简。 2.1 高性能硬件上的程序部署策略一个15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU、16GB物理内存,操作系统为64位CentOS 5.4, Resin作为Web服务器。整个 服务器暂时没有部署别的应用,所有硬件资源都可以提供给访问量并不算太大的网站使 用。管理员为了尽量利用硬件资源选用了 64位的JDK 1.5,并通过-Xmx和-Xms参数 将J ...
JVM虚拟机性能监控与故障处理工具(3)
1.概述经过前面两章对于虚拟机内存分配与回收技术各方面的介绍,相信读者已经建立了 一个比较完整的理论基础。理论总是作为指导实践的工具,能把这些知识投入到实际工 作中才是我们的最终目的。接下来的两章,我们将从实践的角度去了解虚拟机内存管理 的世界。 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用 知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照 (threaddump / javacore文件)、堆转储快照(heapdump / hprof文件)等。经常使用适当 的虚拟机监控和分析的工具可以加快我们分析数据和定位解决问题的速度,但我们在学 习工具前,也应当意识到工具永远都是知识技能的一层包装,没有什么工具是“秘密武 器”,学会了就能包治百病。 2. JDK的命令行工具 Java开发人员肯定都知道JDK的bin目录中有“java.exe”和“javac.exe”这两个 命令行工具,但并非所有程序员都了解过JDK的bin目录之中其他命令行程序的作用。 每逢JDK更新版本之时,bin目录下命令行工具的数量和功能总 ...
java垃圾收集器与内存分配策略(2)
1.概述说起垃圾收集(Garbage Collection, GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史远远比Java久远,1960年诞生于MIT的Lisp是第一门 真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考 GC需要完成的三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 经过半个世纪的发展,内存的动态分配与内存回收技术已经相当成熟,一切看起来 都进入了 ‘‘自动化”时代,那为什么我们还要去了解GC和内存分配呢?答案很简单: 当需要排査各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶 颈时,我们就需要对这些’‘自动化”的技术实施必要的监控和调节。 把时间从半个世纪以前拨回到现在,回到我们熟悉的Java语言。第2章介绍了 Java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈 操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由JIT编译器进行 ...
JVM内存区域与内存溢出异常(1)
1. 运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据 区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的 启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟 机规范(第2版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区 域,如图2-1所示。 1.1 程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看 做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型, 各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变 这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、 线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现 的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行 一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都 ...
spring boot集成solr-SpringBoot(26)
1. 了解SolrSolr是一个独立的企业级搜索应用服务器,对外提供API接口。用户可以通过https请求向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过https GET操作提出查找请求, 并得到XML格式的返回结果。Solr现在支持多种返回结果。 2. 安装配置Solr2.1Solr安装 (1)访问镜像网站,下载Solr压缩包。 (2)在下载完成后解压文件,在“cmd”控制台进入”solr/bin”目录下,输入”solr start” 命令启动Solr。 如果出现以下提示,则表示成功启动。 Waiting up to 30 to see Solr running on port 8983 Started Solr server on port 8983. Happy searching! (3)访问 https://localhost:8983/solr 就可以看到已经启动了。 常用命令如下。 停止:”solr stop -p 8983” 或 “solr stop - all”。 查看运行状态:solr status 2.2 Solr ...
spring boot集成Elasticsearch-SpringBoot(25)
# 1. Elasticsearch—搜索应用服务器 1.1 什么是搜索引擎 搜索引擎(search engine )通常意义上是指:根据特定策略,运用特定的爬虫程序从互联网上搜集信息,然后对信息进行处理后,为用户提供检索服务,将检索到的相关信息展示给用户的系统。 而我们讲解的是捜索的索引和检索,不涉及爬虫程序的内容爬取。大部分公司的业务也不会有爬取工作,而只提供查询服务,而且Elasticsearch也只是提供这方面的功能。 1.2 认识 Elasticsearch Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引撃。通过它,能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),解决不新涌现出的各种需求。 Elasticsearch使用的是标准的RESTful风格的API,使用JSON提供多种语言(Java、 Python、.Net、SQL和PHP)的支持,它可以快速地存储、搜索和分析海量数据。 Elasticsearch是用Java语言开发的,并使用Lucene作为其核心来实现所有索引和搜索的功能。它的目的是 ...
spring boot集成RabbitMQ-SpringBoot(24)
1. 认识RabbitMQ1.1介绍RabbitMQRabbitMQ 是开源的高级消息队列协议(Advanced Message Queueing Protocol, AMQP) 的实现,用Erlang 语言编写,支持多种客户端。 RabbitMQ是目前应用相当广泛的消息中间件(其他同类的消息处理中间件有ActiveMQ、Kafka等)。在企业级应用、微服务应用中,RabbitMQ担当着十分重要的角色。例如,在业务服务模块中解耦、异步通信、高并发限流、超时业务、数据延迟处理等都可以使用RabbitMQ。 RabbitMQ的处理流程如图12-1所示 图 12-1 1.2 使用场景(1)推送通知 “发布/订阅”是RabbitMQ的重要功能。可以用”发布/订阅”功能来实现通知功能。消费者 (consumer) 一直监听RabbitMQ的数据。如果RabbitMQ有数据,则消费者会按照“先进先岀” 规则逐条进行消费。而生产者(producer)只需要将数据存入RabbitMQ。这样既降低了不同系统之间的耦合度,也确保了消息通知的及时性,且不影响系统的性能。 ...
用redis和jpa实现缓存文章和点击量-SpringBoot(23)
实现流程 1. 实现缓存文章1.1 实体类package com.intehel.demo.domain;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;@Data@NoArgsConstructor@AllArgsConstructorpublic class Article implements Serializable { private Integer id; private Integer num;} 1.2 数据库持久层package com.intehel.demo.mapper;import com.intehel.demo.domain.Article;import org.apache.ibatis.annotations.*;import org.springframework.stereotype.Repository;@Repository@Mapper ...
springboot整合redis-SpringBoot(22)
1. 在 Spring Boot 中集成 Redis(1)完成配置基础项。添加 Redis、MySQL、MyBatis 依赖。 (2)配置MySQL、Redis服务器可以直接在application.yml文件中逬行配置,具体配置方法见以下代码: spring: redis: host: 127.0.0.1 port: 6379 jedis: pool: max-active: 8 max-wait: -1 max-idle: 8 min-idle: 0 timeout: 5000 datasource: druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true u ...