<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[刘勇宏的专栏]]></title><description><![CDATA[80后依然奋斗在代码一线的程序员，java开源技术传道者]]></description><link>https://blog.youkuaiyun.com/javacodekit</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javacodekit]]></copyright><item><title><![CDATA[Elasticsearch6.8开发指南-第三章-设置Elasticsearch]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/108212642</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/108212642</guid><author>javacodekit</author><pubDate>Tue, 25 Aug 2020 07:50:22 +0800</pubDate><description><![CDATA[Elasticsearch6.8开发指南-第三章-设置Elasticsearch本章简介安装Elasticsearch使用.zip或安装Elasticsearch.tar.gz在Windows上安装Elasticsearch with.zip使用Debian软件包安装Elasticsearch使用RPM安装Elasticsearch使用Windows MSI安装程序安装Elasticsearch使用Docker安装Elasticsearch配置Elasticsearch设置JVM选项安全设置记录配置重要的E]]></description><category></category></item><item><title><![CDATA[Elasticsearch6.8开发指南-第二章-Elasticsearch入门]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/108209571</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/108209571</guid><author>javacodekit</author><pubDate>Mon, 24 Aug 2020 22:01:17 +0800</pubDate><description><![CDATA[Elasticsearch6.8开发指南-第二章-Elasticsearch入门Elasticsearch入门启动并运行Elasticsearch为一些文档建立索引开始搜索使用聚合分析结果此处的去向
Elasticsearch入门
准备好将Elasticsearch用作测试驱动器，并亲自了解如何使用REST API来存储，搜索和分析数据？
按照此入门教程进行操作：
启动并运行Elasticsearch集群
索引一些样本文件
使用Elasticsearch查询语言搜索文档
使用存储桶和指标聚合分析结果
需要更]]></description><category></category></item><item><title><![CDATA[Elasticsearch6.8开发指南-第一章-Elasticsearch简介]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/108209413</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/108209413</guid><author>javacodekit</author><pubDate>Mon, 24 Aug 2020 21:41:07 +0800</pubDate><description><![CDATA[Elasticsearch6.8开发指南-第一章-Elasticsearch简介Elasticsearch简介数据输入：文档和索引信息输出：搜索和分析可伸缩性和弹性：集群，节点和分片
Elasticsearch简介
您知道，用于搜索（和分析）
Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集，聚合和丰富您的数据并将其存储在Elasticsearch中。使用Kibana，您可以交互式地探索，可视化和共享对数据的见解，并管理和监视堆栈。El]]></description><category></category></item><item><title><![CDATA[服务端高并发分布式架构演进之路]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/103975085</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/103975085</guid><author>javacodekit</author><pubDate>Tue, 14 Jan 2020 16:13:07 +0800</pubDate><description><![CDATA[1. 概述

本文以淘宝作为例子，介绍从一百个到千万级并发情况下服务端的架构的演进过程，同时列举出每个演进阶段会遇到的相关技术，让大家对架构的演进有一个整体的认知，文章最后汇总了一些架构设计的原则。

特别说明：本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题，并非是淘宝真正的技术演进路径

2. 基本概念

在介绍架构之前，为了避免部分读者对架构设计中的一些概念不了解，下面对几个最基础的概...]]></description><category></category></item><item><title><![CDATA[优客服基于Nginx+tomcat的SSL改造]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/88093361</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/88093361</guid><author>javacodekit</author><pubDate>Sun, 17 Mar 2019 18:33:03 +0800</pubDate><description><![CDATA[目录



1.为什么要做https和wss升级

2.https的相关名称解释

3.证书格式

4.oepnssl使用安装OpenSSL

生成证书

解决subjectAlternativeName 找不到的问题

客户端

服务器端

5.xca使用

xca简介

xca安装步骤

xca使用

Step1. 打开XCA

Step2. 如果是第一次打开，请点击 File--&amp;gt...]]></description><category></category></item><item><title><![CDATA[客服技术揭秘-大规模集群改造]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81519393</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81519393</guid><author>javacodekit</author><pubDate>Thu, 09 Aug 2018 01:56:03 +0800</pubDate><description><![CDATA[优客服是一款非常优秀的开源客服系统，使用了很多先进的开源技术。缓存使用了hazelcast内存数据网格。网络方面使用了netty-socketio。无论是新手学习springboot的使用，还是老手学习websocket等技术，优客服的源码都值得一看。
但是优客服主要服务于中小客服，整体是一个单体系统。


优客服的技术架构



ImEventHandle为访客端的事件处理类，接受访客端的请求...]]></description><category></category></item><item><title><![CDATA[用TensorFlow实现文本分析模型，做个聊天机器人]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81437222</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81437222</guid><author>javacodekit</author><pubDate>Sun, 05 Aug 2018 23:45:35 +0800</pubDate><description><![CDATA[用TensorFlow实现文本分析模型，做个聊天机器人

聊天机器人的架构简图
用 TensorFlow 实现 Chatbot 的模型
如何准备 chatbot 的训练数据
Chatbot 源码解读

1. 聊天机器人的架构简图

聊天机器人是可行的

我：chatbot，你好！

chatbot：你也好！

我：聊天机器人可行吗？

chatbot：你不要怀疑这是天方夜谭，我不就在这里吗？世界上...]]></description><category></category></item><item><title><![CDATA[Zookeeper使用实例——服务节点管理]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81437140</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81437140</guid><author>javacodekit</author><pubDate>Sun, 05 Aug 2018 23:33:24 +0800</pubDate><description><![CDATA[分布式处理中，总会存在多个服务节点同时工作，并且节点数量会随着网络规模的变化而动态增减，服务节点也有可能发生宕机与恢复。面对着动态增减的服务节点，我们如何保证客户请求被服务器正确处理呢。我们可以通过zookeeper临时节点创建与自动删除来掌握服务节点的动态增减。

ignite分布式缓存支持使用zookeeper发现ignite节点的增减，这正是zookeeper管理服务节点的一个典型应用场景。...]]></description><category></category></item><item><title><![CDATA[使用四种框架分别实现百万websocket常连接的服务器]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81436979</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81436979</guid><author>javacodekit</author><pubDate>Sun, 05 Aug 2018 23:14:45 +0800</pubDate><description><![CDATA[著名的 C10K 问题提出的时候, 正是 2001 年。这篇文章可以说是高性能服务器开发的一个标志性文档，它讨论的就是单机为1万个连接提供服务这个问题，当时因为硬件和软件的**，单机1万还是
一个非常值得挑战的目标。但是时光荏苒，随着硬件和软件的飞速发展，单机1万的目标已经变成了最简单不过的事情。现在用任何一种主流语言都能提供单机
1万的并发处理的能力。所以现在目标早已提高了100倍，变成C100...]]></description><category></category></item><item><title><![CDATA[socketio集群官方文档]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81416035</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81416035</guid><author>javacodekit</author><pubDate>Sun, 05 Aug 2018 00:16:17 +0800</pubDate><description><![CDATA[粘性负载平衡

如果计划在不同进程或计算机之间分配连接负载，则必须确保与特定会话ID关联的请求连接到发起它们的进程。

这是由于某些传输，如XHR轮询或JSONP轮询依赖于在“套接字”的生命周期内触发多个请求。未能启用粘性平衡将导致可怕的：


			
WebSocket握手期间出错：意外的响应代码：400

			
		这意味着升级请求被发送到不知道给定套接字ID的节点，因此发送HTTP 400...]]></description><category></category></item><item><title><![CDATA[netty-socketio 示例代码]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81416107</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81416107</guid><author>javacodekit</author><pubDate>Sun, 05 Aug 2018 00:15:53 +0800</pubDate><description><![CDATA[socket.io是一个不错的websocket项目，github上有它的java实现：netty-socketio 及 示例项目 netty-socketio-demo，基本上看看demo示例项目就能很快上手了，但是demo中的示例代码场景为js做客户端，如果需要在java中连接websocket server，可以参考下面的示例:

一、服务端代码


package com.corundum...]]></description><category></category></item><item><title><![CDATA[基于node+socket.io+redis的多房间多进程聊天室]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81415494</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81415494</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 21:16:49 +0800</pubDate><description><![CDATA[

一、相关技术介绍：

消息实时推送，指的是将消息实时地推送到浏览器，用户不需要刷新浏览器就可以实时获取最新的消息，实时聊天室的技术原理也是如此。传统的Web站点为了实现推送技术，所用的技术都是轮询，这种传统的模式带来很明显的缺点，即浏览器需要不断的向服务器发出请求。 短轮询(Polling)
客户端需要定时往浏览器轮询发送请求，且只有当服务有数据更新后，客户端的下一次轮询请求才能拿到更新后的数...]]></description><category></category></item><item><title><![CDATA[Socket.io的集群方案]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81415422</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81415422</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 21:11:08 +0800</pubDate><description><![CDATA[摘要: 介绍了socket.io使用Nodejs自带的cluster与集群多进程方案。

介绍

Nodejs因其简单方便，在服务端应用市场也开始占有一席之地，其另外一个分支--socket.io（最后跟nodejs好像又要合并了），特别适合聊天室、白板（document collabration）、在线实时计算、计数器等应用，如果要支持大容量应用，就需要使用集群技术了，下面逐一讨论常见的sock...]]></description><category></category></item><item><title><![CDATA[大规模 WebSocket 集群项目 AnyIM 实战]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81415382</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81415382</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 21:07:37 +0800</pubDate><description><![CDATA[一、概述

WebSocket 应用场景非常广泛，例如社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、实时定位、在线教育、智能家居等，这些场景都与我们的生活息息相关。

ANY-IM 2.0 是基于 Spring Boot 2.X 框架开发的 WEB 在线即时通信应用，混合使用了 Spring MVC 及 Spring WebFLux，支持点对点通信、群通信、...]]></description><category></category></item><item><title><![CDATA[Hazelcast IMDG参考中文版手册-第十一章-分布式查询]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81413205</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81413205</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 17:25:29 +0800</pubDate><description><![CDATA[分布式查询访问存储在相同或不同成员上的多个数据源的数据。

Hazelcast对您的数据进行分区，并将其分布到成员集群中。您可以迭代映射条目并查找您感兴趣的某些条目（由谓词指定）。但是，这不是非常有效，因为您必须携带整个条目集并在本地迭代。相反，Hazelcast允许您在分布式地图上运行分布式查询。

11.1。分布式查询如何工作

请求的谓词将发送到群集中的每个成员。
	每个成员查看自己的本地条...]]></description><category></category></item><item><title><![CDATA[Hazelcast IMDG参考中文版手册-第七章-分布式数据结构]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81413016</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81413016</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 17:11:31 +0800</pubDate><description><![CDATA[如概述部分所述，Hazelcast提供Java接口的分布式实现。以下是这些实现的列表，其中包含指向本手册中相应部分的链接。

标准实用程序集合

	Map是分布式实现的java.util.Map。它可以让你从读取和写入到Hazelcast地图方法，如get和put。
		队列是分布式实现的java.util.concurrent.BlockingQueue。您可以在一个成员中添加项目，然后将其从另...]]></description><category></category></item><item><title><![CDATA[Hazelcast IMDG参考中文版手册-第五章-集群设置]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81412815</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81412815</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 16:58:55 +0800</pubDate><description><![CDATA[本章介绍Hazelcast集群以及集群成员和本机客户端用于构成Hazelcast集群的方法。

5.1。发现机制

Hazelcast集群是运行Hazelcast的集群成员网络。集群成员（也称为节点）自动连接在一起以形成集群。这种自动连接使用集群成员用于查找彼此的各种发现机制进行。

请注意，在群集形成后，群集成员之间的通信始终通过TCP / IP进行，无论使用何种发现机制。

Hazelcast...]]></description><category></category></item><item><title><![CDATA[Hazelcast IMDG参考中文版手册-第四章-配置]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81412662</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81412662</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 16:49:10 +0800</pubDate><description><![CDATA[本章介绍配置Hazelcast应用程序的选项，并说明配置时可以使用的实用程序。您可以使用以下选项之一或混合配置Hazelcast：

陈述性的方式
	程序化方式
	使用Hazelcast系统属性
	在Spring环境中
	在正在运行的集群上动态添加配置（从Hazelcast 3.9开始）
4.1。以声明方式配置

这是您使用XML配置文件的配置选项。下载并解压缩时hazelcast-&amp;lt;ver...]]></description><category></category></item><item><title><![CDATA[Hazelcast IMDG参考中文版手册-第二章-入门]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81412500</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81412500</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 16:37:31 +0800</pubDate><description><![CDATA[本章介绍如何安装Hazelcast并启动Hazelcast成员和客户端。它描述了下载包中的可执行文件，还提供了配置Hazelcast及其部署选项的基础知识。

2.1。安装

以下部分介绍了Hazelcast IMDG和Hazelcast IMDG Enterprise的安装。它还包括升级Hazelcast时要考虑的注释和更改。

2.1.1。安装Hazelcast IMDG

您可以在标准Mav...]]></description><category></category></item><item><title><![CDATA[Hazelcast IMDG参考中文版手册-第三章-概述]]></title><link>https://blog.youkuaiyun.com/javacodekit/article/details/81412463</link><guid>https://blog.youkuaiyun.com/javacodekit/article/details/81412463</guid><author>javacodekit</author><pubDate>Sat, 04 Aug 2018 16:34:35 +0800</pubDate><description><![CDATA[Hazelcast是一个开源的内存数据网格（IMDG）。它提供弹性可扩展的分布式内存计算，被广泛认为是应用程序性能最快，最具扩展性的方法。Hazelcast在开源中做到这一点。更重要的是，Hazelcast通过提供来自Java的许多开发人员友好界面的分布式实现（如Map，Queue，ExecutorService，Lock和JCache），使分布式计算变得简单。例如，Map接口提供了一个In-Me...]]></description><category></category></item></channel></rss>