ActiveMQ 初探(2)——与 Spring 整合
一、环境准备
与 Spring 整合,除了原本的 activemq-all 外,还需导入 spring-context-support 和 spring-jms 包,如果 Spring 为5.0+,需要 javax.jms-api 依赖:
123456789101112131415161718192021<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.3</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.0.4.R ...
Navicat Premium 12.0.27 安装与激活
首先下载 Navicat Premium 12.0.27 安装包和破解工具:
Download For CSDN
Download For BaiduPan[14qh]
以下是重点,请务必仔细阅读!!
Step0:
运行安装包:navicat12027_premium_cs_x64.exe,常规安装即可。
Step1:
安装完成后,打开注册机:Navicat_Keygen_Patch_v3.4_By_DFoX_URET.exe:
1)Patch勾选Backup、Host和Navicat v12,然后点击Patch按钮:
找到Navicat Premium 12安装路径下的navicat.exe,选中并点击打开:
然后弹出Info对话框:
Step2:
License, Product and Language 确保 License 为Enterprise,Products 为Premium,Languages 为Simplified Chinese(简体中文,其它语言版本请自选);
Resale License 确保 Resale Version 为Site licens ...
Json Web Token 介绍与基本使用
一、Session 与 JWT
1.1 传统 Cookie + Session
Cookie+Session 的存在主要是为了解决HTTP这一无状态协议下服务器如何识别用户的问题。
其原理就是在用户登录通过验证后,服务端将数据加密后存储在服务器 Session 中,同时服务器将 Session 的标识即 SessionId 存放在客户端 Cookie 中。
用户之后发起的请求都会携带 Cookie 信息,服务器根据 SessionId 寻回对应的 Session,从而完成验证,确认这是之前登陆过的用户。其工作原理如下图所示:
1.2 JWT 技术
JWT,即 JSON Web Token,当用户使用它的认证信息登陆系统之后,会返回给用户一个 JWT,用户只需要本地保存即可。
当用户希望访问一个受保护的路由或者资源的时候,在请求头部添加该 JWT。后台获取请求头部的JWT并进行验证,如果合法,则允许用户的行为。
二、JWT 的组成
一个 JWT 实际上就是一个字符串,它由三部分组成:头部、载荷(Payload)与签名。
2.1 头部
头部用于描述关于该JWT的最基本的信息, ...
Spring MVC 解决 HTTP 406 错误
在一般Java Web项目中,406错误,是比较少见的错误,导致原因一般是以下两种:
原因一: 缺少jackJson包
导入依赖即可:
12345<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.4</version></dependency>
原因二: 请求路径为*.html
当SpringMVC的拦截请求为*.html时,不允许返回json格式数据!
12345678910111213<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> ...
Freemarker 初探
一、什么是Freemarker
1.1 介绍
FreeMarker 是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker 与Web容器无关,即在 Web 运行时,它并不知道 Servlet 或 HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成 XML,JSP 或 Java 等。
主要用 Freemarker 做静态页面或是页面展示。
1.2 入门程序
首先导入依赖:
12345<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.27-incubating</version></dependency>
在我的D盘下,存在文件夹 flt ,用于存放模板文件;存在文件夹 flt_out,用于存放输出文件。
在 flt 文件夹下新建文件 test.ftl,内容为:
1${test}
是不是有 ...
ActiveMQ 初探(1)——介绍与基本使用
一、ActiveMQ
1.1 什么是 ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4规 范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。
主要特点:
多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
完全支持 JMS1.1 和 J2EE 1.4 规范 (持久化,XA消息,事务)
对 Spring 的支持,ActiveMQ 可以很容易内嵌到使用Spring的系统里面去,而且也支持 Spring2.0 的特性
通过了常见 J2EE 服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过 JCA 1.5 resource adaptors 的配置,可以 ...
Zookeper 集群搭建
在《Dubbo + Zookeeper入门初探》这篇文章中,我们已经搭建了 Zookeeper 单机版,本篇文章将介绍如何搭建 Zookeeper 集群。
一、投票选举机制
Zookeeper 集群在工作时,只有一个节点为 leader(主节点),其余节点均为 follower(从节点)。这是通过内部的投票选举机制来实现的。
我们知道,投票至少要过半数才行,因此集群中节点数最好为单数,因此我们搭建一个最简单的 3 个节点的 Zookeeper 集群。
二、搭建集群
因为我没有弄三台Linux,所以本篇文章采用伪集群,均搭建在一台服务器上,采用端口号进行区分。首先列出相关信息,方便大家理解:
本机IP地址:192.168.30.155
Zookeeper01 :/usr/local/zookeeper-cluster/zookeeper01
名称
端口号
客户端端口
2181
节点通信端口
2881
节点选举端口
3881
Zookeeper02:/usr/local/zookeeper-cluster/zookeeper02
名称
端口号
...
Solr 初探(6)——SolrCloud
Solr 集群,即 SolrCloud 是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。SolrCloud 是基于 Solr 和 Zookeeper 的分布式搜索方案,它的主要思想是使用 Zookeeper 作为集群的配置信息中心。
当一个系统的索引数据量少的时候是不需要使用 SolrCloud 的,当索引量很大,搜索请求并发很高,这时需要使用 SolrCloud 来满足这些需求。它有几个特色功能:
集中式的配置信息
自动容错
近实时搜索
查询时自动负载均衡
一、系统架构
(1)从物理结构来看,一个 SolrCloud 可以包含多个 Solr 实例,一个 Solr 实例可以有多个 Core,这些组成了一个 SolrCloud。
(2)从逻辑结构来看,SolrCloud 是一个逻辑意义上的完整的索引结构,称为 Collection,一个 Collection 使用一份配置文件。
Collection 常常被划分为一个或多个 Shard(分片)。每个Shard被化成一个或者多个 Replication,通过选举确定哪个是 Le ...
Solr 初探(5)——Solrj
一、导入依赖
导入Solr源码包dist文件夹下的solr-solrj-6.6.2.jar以及solrj-lib文件夹下的所有包到项目中。除此之外,还要加上log4j包和junit测试包。
二、添加/更新数据
Solrj的使用十分简单,下面是一个添加数据的例子:
123456789101112131415@Testpublic void testAdd() throws Exception { // 指定url String baseURL = "http://localhost:8080/solr/core1"; // 1.创建Solr单机版客户端 HttpSolrClient solrClient = new HttpSolrClient(baseURL); // 2.创建一个Document SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "10086"); doc.addField("author" ...
Solr 初探(4)——后台数据导入及 Document 的使用
进入Solr后台页面,选择一个核,点击 Documents,进入 Document 管理标签:
一、添加 Document
在《Solr初探(2)——域管理》中我们已经说过了,id 是一个 Document 必须要包含的 field,让我们新建一个 Document,类型为 JSON:
1234{"id" : 1,"name" : "jitwxs"}
在查询页中点击 Execute Query 进行查询,就能看见我们添加的这个 Doucment 了:
二、更新 Document
修改一个 Document 十分简单,只需要指定 id,Solr 就会先删除 id 为指定 id 的 Document,然后将我们输入的 Document 保存起来,达到更新的目的(内部实现是先删后添)。
当我们输入:
12345{"id" : 1,"author":"jitwxs","content" : "哇哈哈哈&quo ...