技术前沿网

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 技术前沿网社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

记一次php mysqli出现No such file or directory的错误排查

最近公司的一台开发机器坏了,需要把部分工作相关的系统转移到另一台机器上,在转移mantis的过程中发现mysql连不上了,而且错误居然是No such file or directory,这个错误信息很明显告诉我文件不存在,但是我是通过网络连mysql,何故会提示文件不存在?于是写了一段测试代码。 $mysqli = new mysqli('localhost', 'root', '', 'bugtracker'); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . '): '. $mysqli->connect_error); } 果然,还是报错!!!! PHP Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /root/test.php on line 2 为了确保参数没错,使用mysql客户端进行测试 mysql -uroot -hlocalhost 嗯,连上了,完全没有任何错误,那说明参数是没有问题的,可为什么相同的参数,mysql客户端连接正常,php连接不上?为了一探究竟,于是使用strace再次跑了一下这段代码,发现系统调用的connect居然不是使用tcp,而是unixdomain,文件路径是/tmp/mysql.sock,而这个文件确实不存在 connect(3, {sa_family=AF_FILE, path="/tmp/mysql.sock"}, 17) = -1 ENOENT (No such file or directory) 到这里,我已...
呵大官人 发布于 3小时前 阅读 15
梦朝思夕

你应该了解NewSQL:CockroachDB验证文档

## 方案八:CockroachDB cockroachdb是分布式、支持事务、支持SQL操作、K-V存储模式的数据库。CockroachDB的三位创始人全部来自Google,其架构受到Google的 Spanner和F1的启发,[cockroach开源地址](https://github.com/cockroachdb/cockroach/)。 ![输入图片说明](https://static.oschina.net/uploads/img/201709/27153626_oTyu.png "在这里输入图片标题") 具有: - 标准SQL接口, 使用PostgreSQL协议,支持标准SQL接口,兼容关系型数据库SQL生态; - 扩展能力强、高并发,支持类MPP并行查询框架; - 弹性扩容,持按需扩容, 自动负载均衡; - 多副本强一致,使用raft算法保证数据一致性; - 服务高可用,上去中心化,无SPOF; - 分布式事务,基于MVCC实现事务控制,支持SI和SSI两种隔离级别; [](http://wiki.baidu.com/pages/viewpage.action?pageId=279391634) ### 调研 #### 建表 ```SQL DROP TABLE IF EXISTS "tracks"; CREATE TABLE IF NOT EXISTS "tracks" ( "id" SERIAL PRIMARY KEY , "third_tracks_id" varchar(32) NOT NULL DEFAULT '' , "tracks_title" varchar(255) NOT NULL DEFAULT '' , "tracks_title_other" varchar(255) NOT NULL DEFAULT '', "tracks...
梦朝思夕 发布于 3小时前 阅读 8

疯狂Activiti6.0连载(四)——流程引擎数据源配置

4 配置文件读取与数据源配置         本书代码目录:https://gitee.com/yangenxiong/CrazyActiviti         要点              掌握Activiti的配置文件读取方式              掌握Activiti的数据源配置 4.1流程引擎配置对象         ProcessEngineConfiguration对象代表一个Activiti流程引擎的全部配置,该类提供一系列创建ProcessEngineConfiguration实例的静态方法,这些方法用于读取和解析相应的配置文件,并返回ProcessEngineConfiguration的实例。除这些静态方法外,该类为其他可配置的引擎属性提供相应的setter和getter方法。本小节主要讲解如何使用这些静态方法创建ProcessEngineConfiguration实例。 4.1.1 读取默认的配置文件         ProcessEngineConfiguration的createProcessEngineConfigurationFromResourceDefault方法,使用Activiti默认的方式创建ProcessEngineConfiguration的实例。这里所说的默认方式,是指由Activiti决定读取配置文件的位置、文件的名称和配置bean的名称这些信息。Activiti默认到ClassPath下读取名为“activiti.cfg.xml”的Activiti配置文件,启动并获取名称为“processEngine...
杨大仙的程序世界 发布于 7小时前 阅读 25

SpringCloud(第 028 篇)ConfigServer 配置管理微服务

1、在讲到配置时,不得不说 SpringCloud 提供了一套解决分布式的配置管理方案,它既包含了服务端ConfigServer也包含了客户端ConfigClient; 2、SpringCloud 将配置文件当作源代码一样存储到 git 或者 svn 服务器上,虽然说这样没有什么管理界面配置啥的,既然能用 svn 上传上去,那也能做成管理界面,只是花的工作量多少而已了,而既然都说了是配置,那就是只要会稍微学些git或者svn的提交文件方式,基本上任何都极易掌握; 3、当我们把配置文件放在 git 上的时候,我们如果要做到更新的话,我们需要借助于 git 网页上的 push 操作来触发更新操作;
HMILYYLIMH 发布于 15小时前 阅读 22 评论 1

Spring使用中中文乱码的情况

Spring SpringMVC 中文乱码的情况
黑色蝈蝈 发布于 15小时前 阅读 15 评论 1

可靠消息服务实现(分布式事物)

分布式事物往往是服务化的痛点,很多场景通过业务避免了分布式事物,但是还是存在一些场景必须依赖分布式事物,下面来讲讲如何处理分布式事物
liangbo 发布于 16小时前 阅读 37
小程程程

面试时如何做好自我介绍

好的开始,是成功的一半。        自我介绍几乎是面试的必备节目,面试官见面寒暄后很可能提出的第一个问题就是“请你简单地做一下自我介绍”。如果你的自我介绍给他留下了深刻的印象,接下来的面试会朝着你预期的好的方向发展;而如果你的自我介绍做的稀碎稀碎的,面试官的“先入为主”恐怕会让你的人生更多一次悲催。        有的求职者很困惑:简历中我的情况已经写的很清楚了,还让我做自我介绍不是多此一举吃饱了撑的吗?你可千万别脑子一热和面试官说“我叫驴得水,我的基本情况,简历里都写了”,这潜台词分明是“你瞎啊,不会自己看啊,问个毛线”,面试官对你的印象分会一下子降为负数…… 面试官想从自我介绍中看到什么? 面试官想从自我介绍中看到什么? 第一,可以考察你自我介绍的内容和递交的简历内容是否相冲突        如果简历是真实的,口述的自我介绍就不会有明显出入;但如果简历有虚假成分,自我介绍可能就会漏出马脚。钓鱼者不建议求职者造假,绝大多数人都无法把谎话说得和真的一样,何况对面坐着的都是老油条。谎言一旦被揭穿,面试就到此为止,而且,还会有避免不了的尴尬与鄙视。就算侥幸没被揭穿,想像下,n年以后,回想这段不光...
小程程程 发布于 18小时前 阅读 34 评论 1

武汉校招,我都问了什么

“人生是持续而反复的构造”,是一场马拉松。“种一棵树最好的时间是十年前,其次是现在”-《精进》
新栋BOOK 发布于 19小时前 阅读 35

可"重复"key的HashMap

碰到一些需求需要放入可重复key的HashMap,比如Excel需要报错的行号。 那么如果对象实现过hashCode方法和equals 那么放入到hashMap中会出现可能互相覆盖的情形。 原来你是这样的HashMap 正如这篇文章中的测试所说,互相覆盖。 那么就是IdentityHashMap出场的时候啦~ 首先了解一下Object的hashCode方法 /** * Returns a hash code value for the object. This method is * supported for the benefit of hash tables such as those provided by * {@link java.util.HashMap}. * <p> * The general contract of {@code hashCode} is: * <ul> * <li>Whenever it is invoked on the same object more than once during * an execution of a Java application, the {@code hashCode} method * must consistently return the same integer, provided no information * used in {@code equals} comparisons on the object is modified. * This integer need not remain consistent from one execution of an * application to another execution of the same application. * <li>If two objects are equal according to the {@code equals(Obje...
Mr_Qi 发布于 2天前 阅读 300 评论 2

SpringCloud(第 026 篇)简单异构系统之 nodejs 微服务

1、因为在后面要利用 SpringCloud 集成异构系统,所以才有了本章节的 nodejs 微服务; 2、本章节使用了最简单的 http 请求截取 url 的方式,截取不同 url 的后缀做不同的响应处理,简直 so easy;
HMILYYLIMH 发布于 2天前 阅读 209 评论 2
编辑部的故事

与 Docker 紧密整合的 12 大开源工具

Docker 一直是第三方开发人员关注的重点,很多项目扩展、补充或增强了 Docker,从日志工具到数据库工具等。因此,在这篇文章中,我们将介绍一些实用且开源的第三方工具,让您的容器开发如虎添翼。以下排名不分先后。 1、Kubernetes 谈论第三方 Docker 项目自然少不了提到 Kubernetes。Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。 主页:https://kubernetes.io/ 2、CoreOS Tectonic CoreOS 为现代网络的服务器量身定做,Polvi 团队对这个服务器操作系统做了最大的精简,所有附加的功能都被剔除了,并将操作系统和应用程序做了完全的分离。CoreOS 核心思想是降低操作系统和应用程序的耦合度,使运行这些服务器的公司可以更快速、更廉价地更新自己的线上业务。 主页:http://coreos.com/ 3、ElasticSearch Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决越来越多的用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况,它能让你以一个之前从未有过的速度和规模...
编辑部的故事 发布于 2天前 阅读 3172 评论 10 点赞 7
MStarLight

springboot内置Tomcat的getServletContext().getRealPath问题

request.getServletContext().getRealPath
MStarLight 发布于 2天前 阅读 301

Elasticsearch实现类百度搜索引擎搜索功能ES5.5.0v

Elasticsearch实现百度搜索引擎搜索功能
残刃O 发布于 2天前 阅读 588 评论 2 点赞 1

SpringCloud(第 024 篇)简单文件上传微服务,并加入 zuul 微服务后用 zuul 微服务地址采取curl或者页面点击实现文件上传

1、本章节主要将文件上传微服务加入到 zuul 服务中去,然后利用 zuul 微服务的地址上传文件;
HMILYYLIMH 发布于 3天前 阅读 430

SpringCloud(第 021 篇)Zuul 的过滤器 ZuulFilter 的使用

1、我们在学 Spring 的时候,就有过滤器和拦截器的使用,而 Zuul 同样也有过滤器的使用,本章节我们指在如何简单使用 ZuulFilter。
HMILYYLIMH 发布于 3天前 阅读 222
wangkang80

spring boot / cloud (十八) 使用docker快速搭建本地环境

# spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越来越多. 然而要顺利的安装好这些中间件也是一个比较费时费力的工作. 俗话说"工欲善其事,必先利其器",这篇文章,就跟大家一起分享一下使用docker在本地环境或者测试环境快速搭建我们常用的一些中间件容器的方法, (这里没有提及生产环境,并不是说生产环境不能使用docker,只是说要在生产环境上使用,请务必根据自身的实际情况,做好充分的评估) ## **docker安装** **docker支持多种操作系统,本文的内容则是基于centos7操作系统的** docker的文档写的很清晰,大家可以在 https://docs.docker.com/engine/installation/linux/docker-ce/centos/ 站点中按照文档的步骤一步一步的安装docker , 假如一切正常 , 大家在命令行输入version , 会得到如下结果 : ``` bash $ sudo docker version # 结果输出 : Client: Version: 17.09.0-ce-rc2 API version: 1.32 Go version: go1.8.3 Git commit: 363a3e7 Built: Thu Sep 14 01:54:43 2017 OS/Arch: linux/amd64 Server: Version: 17.09.0-ce-rc2 API version...
wangkang80 发布于 3天前 阅读 372 评论 3 点赞 1

疯狂Spring Cloud连载(四)———第一个Eureka程序

                                            4 微服务发布与调用         本书代码共享地址:https://gitee.com/yangenxiong/SpringCloud         要点              认识Eureka框架              运行Eureka服务器              发布微服务              调用微服务         本章将讲述Spring Cloud中Eureka的使用,包括在Eureka服务器上发布、调用微服务,Eureka的配置以及Eureka集群等内容。                                                 4.1 Eureka介绍         Spring Cloud集成了Netflix OSS的多个项目,形成了spring-cloud-netflix项目,该项目包含了多个子模块,这些子模块对集成的Netflix旗下框架进行了封装,本小节将讲述其中一个较为重要的服务管理框架:Eureka。 4.1.1 关于Eureka         Eureka提供基于REST的服务,在集群中主要用于服务管理。Eureka提供了基于Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条...
杨大仙的程序世界 发布于 3天前 阅读 189 评论 5 点赞 1

疯狂Activiti6.0连载(三)———Activiti开发环境搭建

                                            3 Activiti开发环境搭建         本书代码目录:https://gitee.com/yangenxiong/CrazyActiviti         本书的common-lib项目,是各个案例的依赖项目,可从以下地址获得:         https://gitee.com/yangenxiong/CrazyActiviti/tree/master/codes         要点              安装JDK与MySQL              安装Eclipse以及Activiti插件              编写第一个Activiti程序                                                 3.1 安装开发环境         本小节所说的Activiti开发环境包括以下内容:               Eclipse IDE               Eclipse的Activiti插件 3.1.1 下载Eclipse         本书使用Eclipse作为开发工具,如果想使用Activiti的Eclipse设计器,官方建议使用Kepler(4.3)或者 Luna(4.4)版本,本书所使用的版本为Luna,大家可以从以下的地址得到该版本的Eclipse:         h...
杨大仙的程序世界 发布于 3天前 阅读 1657 评论 4 点赞 4

Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式

> 我们在使用Spring Cloud的Ribbon或Feign来实现服务调用的时候,如果我们的机器或网络环境等原因不是很好的话,有时候会发现这样一个问题:我们服务消费方调用服务提供方接口的时候,第一次请求经常会超时,而之后的调用就没有问题了。下面我们就来说说造成这个问题的原因,以及如何解决的方法。 ## 问题原因 造成第一次服务调用出现失败的原因主要是Ribbon进行客户端负载均衡的Client并不是在服务启动的时候就初始化好的,而是在调用的时候才会去创建相应的Client,所以第一次调用的耗时不仅仅包含发送HTTP请求的时间,还包含了创建RibbonClient的时间,这样一来如果创建时间速度较慢,同时设置的超时时间又比较短的话,很容易就会出现上面所描述的显现。 从日志中我们也能知道这一点细节,在第一次发起调用的时候我们可以从日志中看到如下信息: ``` 2017-09-25 08:29:54,201 INFO [main] com.netflix.loadbalancer.DynamicServerListLoadBalancer - DynamicServerListLoadBalancer for client hello-service initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=hello-service,current list of Servers=[192.168.99.176:9901],Load balancer stats=Zone...
程序猿DD 发布于 4天前 阅读 144 点赞 1

疯狂Activiti6.0连载(二)———下载和运行Activiti

                                                2 安装与运行Activiti     要点          安装JDK与MySQL          安装Eclipse以及Activiti插件          运行官方的Activiti例子         Activiti的第一个正式版本发布于2010年12月1日,经过多年的发展,Activiti已经成为一个较为成熟的工作流引擎,作为一个开源的工作流引擎,它在工作流领域吸引了众多开发者的目光,在当前的工作流框架角逐中,慢慢成为众多企业的首选。在2017年5月26日,Activiti迎来全新篇章:6.0版本正式发布。本书将以6.0版本为基础,讲解基于Activiti的工作流应用开发。         本章将介绍Activiti的安装与运行、Activiti开发环境的搭建等内容,本书除了最后一章的项目案例外,其他所有的案例均以本章的开发环境为基础。搭建Activiti的开发环境,需要安装JDK、Eclipse、MySQL等软件,除此之外,还会编写第一个Activiti应用,让大家对Activiti有一个初步的了解。         注:本书全部的案例均在Windows7下开发和运行。                             ...
杨大仙的程序世界 发布于 4天前 阅读 403 评论 3

Reactive Programming with Spring 5

Reactive Programming with Spring 5
hantsy 发布于 1个月前 阅读 253 点赞 2
qwfys

Java 9中的jinfo命令

``` lwk@qwfys ~ $ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 09:34 ? 00:00:01 /sbin/init splash root 2 0 0 09:34 ? 00:00:00 [kthreadd] root 3 2 0 09:34 ? 00:00:00 [ksoftirqd/0] root 4 2 0 09:34 ? 00:00:00 [kworker/0:0] root 5 2 0 09:34 ? 00:00:00 [kworker/0:0H] root 7 2 0 09:34 ? 00:00:00 [rcu_sched] root 8 2 0 09:34 ? 00:00:00 [rcu_bh] root 9 2 0 09:34 ? 00:00:00 [migration/0] root 10 2 0 09:34 ? 00:00:00 [lru-add-drain] root 11 2 0 09:34 ? 00:00:00 [watchdog/0] root 12 2 0 09:34 ? 00:00:00 [cpuhp/0] root 13 2 0 09:34 ? 00:00:00 [cpuhp/1] root 14 2 0 09:34 ? 00:00:00 [watchdog/1] root 15 2 0 09:34 ? 00:00:00 [migration/1] root 16 2 0 09:34 ? 00:00:00 [ksoftirqd/1] root 18 2 0 09:34 ? 00:00:00 [kworker/1:0H] root 19 2 0 09:34 ? 00:00:00 [cpuhp/2] root 20 2 0 09:34 ? 00:00:00 [watchdog/2] root 21 2 0 09:34 ? 00:00:00 [migration/2] root 22 2 0 09:34 ? 00:00:00 [ksoftirqd/2] root 24 2 0 09:34 ? 00:00:00 [kworker/2:0H] root 25 2 0 09:34 ? 00:00:00 [cpuhp/3] root 26 2 0 09:34 ? ...
qwfys 发布于 4小时前 阅读 39

疯狂Activiti6.0连载(四)——流程引擎数据源配置

4 配置文件读取与数据源配置         本书代码目录:https://gitee.com/yangenxiong/CrazyActiviti         要点              掌握Activiti的配置文件读取方式              掌握Activiti的数据源配置 4.1流程引擎配置对象         ProcessEngineConfiguration对象代表一个Activiti流程引擎的全部配置,该类提供一系列创建ProcessEngineConfiguration实例的静态方法,这些方法用于读取和解析相应的配置文件,并返回ProcessEngineConfiguration的实例。除这些静态方法外,该类为其他可配置的引擎属性提供相应的setter和getter方法。本小节主要讲解如何使用这些静态方法创建ProcessEngineConfiguration实例。 4.1.1 读取默认的配置文件         ProcessEngineConfiguration的createProcessEngineConfigurationFromResourceDefault方法,使用Activiti默认的方式创建ProcessEngineConfiguration的实例。这里所说的默认方式,是指由Activiti决定读取配置文件的位置、文件的名称和配置bean的名称这些信息。Activiti默认到ClassPath下读取名为“activiti.cfg.xml”的Activiti配置文件,启动并获取名称为“processEngine...
杨大仙的程序世界 发布于 7小时前 阅读 25
qwfys

Install Oracle JDK 9 in Ubuntu 16.04 LTS

# add repository ``` apt add-repository ppa:webupd8team/java ``` # update ``` apt update ``` # install ``` apt install oracle-java9* ```
qwfys 发布于 13小时前 阅读 8

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴
梦朝思夕

你应该了解NewSQL:CockroachDB验证文档

## 方案八:CockroachDB cockroachdb是分布式、支持事务、支持SQL操作、K-V存储模式的数据库。CockroachDB的三位创始人全部来自Google,其架构受到Google的 Spanner和F1的启发,[cockroach开源地址](https://github.com/cockroachdb/cockroach/)。 ![输入图片说明](https://static.oschina.net/uploads/img/201709/27153626_oTyu.png "在这里输入图片标题") 具有: - 标准SQL接口, 使用PostgreSQL协议,支持标准SQL接口,兼容关系型数据库SQL生态; - 扩展能力强、高并发,支持类MPP并行查询框架; - 弹性扩容,持按需扩容, 自动负载均衡; - 多副本强一致,使用raft算法保证数据一致性; - 服务高可用,上去中心化,无SPOF; - 分布式事务,基于MVCC实现事务控制,支持SI和SSI两种隔离级别; [](http://wiki.baidu.com/pages/viewpage.action?pageId=279391634) ### 调研 #### 建表 ```SQL DROP TABLE IF EXISTS "tracks"; CREATE TABLE IF NOT EXISTS "tracks" ( "id" SERIAL PRIMARY KEY , "third_tracks_id" varchar(32) NOT NULL DEFAULT '' , "tracks_title" varchar(255) NOT NULL DEFAULT '' , "tracks_title_other" varchar(255) NOT NULL DEFAULT '', "tracks...
梦朝思夕 发布于 3小时前 阅读 8

centos7 firewall防火墙设置

[caibo@localhost /]$ firewall-cmd --zone=public --add-port=3306/tcp --permanent success [caibo@localhost /]$ firewall-cmd --reload systemctl stop firewalld.service #停止 systemctl disable firewalld.service #禁用 mysql安装后还要允许远程连接,其他服务器才能连接到本地的数据库。     mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:     mysql -u root -p    //登录MySQL      mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库      mysql> FLUSH PRIVILEGES;    //需要输入次命令使修改生效     mysql> EXIT    //退出     也可以通过修改表来实现远程:     mysql -u root -p     mysql> use mysql;      mysql> update user set host = '%' where user = 'root';      mysql> select host, user from user; 参考:http://blog.163.com/bo_cai@yeah/blog/static/86096191201541963521154/...
豆花饭烧土豆 发布于 10小时前 阅读 7

HttpClient以及Json传递的一些坑

背景: 记录一下使用中关于HttpClient以及Json传递的坑。 HTTPS: 普通方式: public class Test { public static void main(String[] args) throws Exception { URI uri = new URIBuilder().setScheme("http").setHost("***:**") .setPath("/***/***").build(); HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(uri); httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("params", "test")); HttpResponse httpResponse = httpClient.execute(httpPost); StatusLine httpStatus = httpResponse.getStatusLine(); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println("httpStatusline: " + httpStatus); System.out.println("strEntity: " + EntityUtils.toString(httpEntity)); EntityUtils.consume(httpEntity); } } 这种适合普通的http的请...
Hosee 发布于 1周前 阅读 26
qwfys

升级安装JDK9后Eclipse无法启动的解决办法

期待已久的Java9正式发布了,肯定有不少小伙伴迫不及待的去升级安装。当我们抱着激动的心情去安装jdk9之后,发现Eclipse无法正常启动... 根据Eclipse的启动错误提示,去查看错误日志,你会看到如下错误日志: ``` !MESSAGE Application error !STACK 1 org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct .... ``` 解决方法很简单: 找到Eclipse的目录下面的eclipse.ini配置文件,在最后加上: --add-modules=ALL-SYSTEM 保存后重新启动Eclipse,即可正常启动。 参考: + https://wiki.eclipse.org/Configure_Eclipse_for_Java_9 + https://marketplace.eclipse.org/content/java-9-support-oxygen
qwfys 发布于 13小时前 阅读 4

Logstash+FileBeat+MongoDB+Flask打造的日志系统(三)

前端我采用了Element-UI框架,打造开发环境如下: 1,安装全局Vue-cli: npm install -g vue-cli 2, 创建基于webpcak模板的项目。      vue init webpack my-project      cd my-project      npm install      npm run dev 3 安装依赖    npm install --save axios    npm install element-ui -S    npm install vuex --save 系统界面大概如下     代码就不贴了,直接打包上传 http://pan.baidu.com/s/1qYNXr4o  
通吃岛-低手哥 发布于 3小时前 阅读 4
qwfys

Spring 5 之 Spring Webflux 开发 Reactive 应用

[Spring 5 之 Spring Webflux 开发 Reactive 应用](https://coyee.com/article/12086-spring-5-reactive-web)
qwfys 发布于 1个月前 阅读 15

java获取Class对象的三种方式

java获取Class对象的三种方式
残刃O 发布于 5小时前 阅读 4

(一)SpringBoot+SpringCloud开发环境搭建

一、环境搭建 子曰:“工欲善其事必先利其器” 先确保你的开发机上有安装JDK,建议使用JDK1.8。 下载开发springboot的ide,SpringToolSuite(STS)。 STS是一个基于最新的Eclipse版本定制的IDE,用来开发Spring应用程序。它提供了一个打开即用的环境,来实现Spring应用程序开发、调试、运行和部署。包括CloudFoundry,Git,Maven,AspectJ的集成。它是免费的,并且没有时间限制,完全开放源代码,基于 Eclipse Public License。 二、配置STS 打开STS,在创建项目之前,先配置一下STS中的maven相关信息、Java相关信息等。 2.1 配置CodeStyle 我通常先配置CodeStyle,将代码缩进改为4个空格,这样sonarqube不会在报出代码有坏味道。具体配置方法如下: 打开设置窗口,Window —— Preferences; 在左上角搜索框中搜索Text Editors; 点击Text Editors进行设置,将Insert spaces for tabs勾上; 保存关闭; 2.2 配置maven 配置好CodeStyle后,在配置maven,STS默认不会找到我们本机安装的maven,需要设置一下,具体配置方法如下: 打开设置窗口,Window —— Preferences; 在左上角搜索框中搜索maven; 点击Installations进行设置,点击Add按钮,选择本机的maven路径后保存;...
杰克鹏仔 发布于 3个月前 阅读 33

使用Hutool处理RSA等非对称加密

Hutool工具是一个国产开源Java工具集,旨在简化Java开发中繁琐的过程,Hutool-crypto模块便是针对JDK加密解密做了大大简化。此文主要介绍利用Hutool-crypto简化非对称加密解密。对于非对称加密,最常用的就是RSA和DSA,在Hutool中使用`AsymmetricCrypto`对象来负责加密解密。
路小磊 发布于 1个月前 阅读 1547 评论 22 点赞 3

Java构建树对象

package com.my.tree; import java.util.List; public class Tree { private String id; // 节点ID private String parentId; // 节点父ID private List<Tree> children; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getParentId() { return parentId; } public void setParentId(String parentId) { this.parentId = parentId; } public List<Tree> getChildren() { return children; } public void setChildren(List<Tree> children) { this.children = children; } } package com.my.tree; import java.util.ArrayList; import java.util.List; public class TreeUtils { public static List<Tree> formatTree(List<Tree> list) { List<Tree> nodeList = new ArrayList<Tree>(); for (Tree node1 : list) { boolean mark = false; for (Tree node2 : list) { if (node1.getParentId() != null && node1.getParentId().equals(node2.getId())) { mark = true; if (node2.getChildren() == null) { node2.setChildren(new Array...
Tasty-宝 发布于 3小时前 阅读 3

Django1.10主题指南 — 模型

全部文档: https://github.com/jhao104/django-chinese-doc
j_hao104 发布于 2周前 阅读 9

Logstash+FileBeat+MongoDB+Flask打造的日志系统(一)

1、MongoDB安装,运行(略) 2、JDK8 安装 (略)     -- LogStash依赖Java. 3、LogStash 安装(略)    1)安装logstash-output-mongodb插件        bin/logstash-plugin install logstash-output-mongodb       (如果不行,好像下载logstash-output-mongodb插件解压到vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-master/ 貌似就有反应了。。。)    2)配置文件: input { beats { port => 4560 } } filter { # if [type] == "register" or [type] == "configserver" { grok { match=>{"message" => "%{DATESTAMP_CHS2:logtime}\s+%{LOGLEVEL:loglevel} %{GREEDYDATA:msg}"} } date { match => ["logtime", "yyyy-MM-dd HH:mm:ss.SSS" ] target => "logtime" } # } # else { # grok { # match=>{"message" => "%{DATESTAMP_CHS:logtime} \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:msg}"} # } # date { # match => ["logtime", "yyyy-MM-dd HH:mm:ss" ] # target => "logtime" # } # } } output { # stdout { # codec => rubyde...
通吃岛-低手哥 发布于 3小时前 阅读 4

Spring Cloud Netflix 微服务压力测试

摘录地址:http://blog.csdn.net/clementad/article/details/54315805
李矮矮 发布于 1个月前 阅读 32

Nodejs事件引擎libuv源码剖析之:请求(request)结构的设计剖析

前言       在libuv中,请求(request)代表一个用户向libuv发出的指令,比如uv_connect_s就表示一个tcp的连接请求、uv_work_s代表要递交给libuv线程池执行的任务请求、uv_write_s代表一个写请求。      类似于上一篇讲句柄(handle)那样,请求也由一个抽象基类和相应的子类组成,这个基类就是uv_req_s,下面来看一下它的定义: /* Abstract base class of all requests. */ struct uv_req_s { /* public */ \ void* data; \ /* read-only */ \ uv_req_type type; \ /* private */ \ void* active_queue[2]; \ void* reserved[4]; \ };      其中,data可以用来携带任何类型的用户数据;type为该请求...
黑客画家 发布于 3个月前 阅读 63

Spring AOP 实现机制

转自 http://blog.csdn.net/dreamthen/article/details/26687727
Eureka_尤里卡 发布于 3小时前 阅读 3

MySQL 可扩展性-垂直扩展 & 水平扩展

MySQL 可扩展性-垂直扩展 & 水平扩展
秋风醉了 发布于 3小时前 阅读 3

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

疯狂Activiti6.0连载(一)———Activiti介绍

                                            1 Activiti介绍         在计算机尚未普及时,许多工作流程采用手工传递纸张表单的方式,一级一级审批签字,工作效率非常低下,对于数据统计以及生成报表的功能,需要经过大量的手工操作才能实现。随着电脑的普及,这些工作的参与者只需要在电脑的系统中填入工作内容,系统就会按照定义好的流程自动执行,各级审批者可以得到工作的信息并作出相应的审批和管理操作,数据统计和报表的生成均由系统代为完成,这样大大提高了工作效率,在这种背景下,各种的工作流应用以及中间件应运而生。         工作流应用在日常工作中的应用越来越广泛,JavaEE领域出现了许多优秀的工作流引擎,例如JBoss社区的jBPM、OpenSymphony的OSWorkflow等,在2010年5月17日,以Tom Baeyens为首的工作流小组发布了一个全新的工作流引擎——Activiti,该工作流引擎的第一个版本为5.0alpha1,由于Tom Baeyens是jBPM的创始人(由于意见分歧离开JBoss),因此Activiti的团队希望该流程引擎是jBPM4的延伸,希望在jBPM中积累的经验和知识的基础上,继续进行新一代工作流解决方案的建设,因此将...
杨大仙的程序世界 发布于 5天前 阅读 2420 评论 26 点赞 8

SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理

1、API 服务网关顾名思义就是统一入口,类似 nginx、F5 等功能一样,统一代理控制请求入口,弱化各个微服务被客户端记忆功能; 2、本章节主要讲解了使用 zuul 的代理功能与反向代理功能,当然 zuul 还有很多属性设置,我就没一一列举所有的测试方法了; 3、http://localhost:8150/routes 地址可以查看该zuul微服务网关代理了多少微服务的serviceId;
HMILYYLIMH 发布于 5天前 阅读 1789 评论 7 点赞 2

疯狂Activiti6.0连载(二)———下载和运行Activiti

                                                2 安装与运行Activiti     要点          安装JDK与MySQL          安装Eclipse以及Activiti插件          运行官方的Activiti例子         Activiti的第一个正式版本发布于2010年12月1日,经过多年的发展,Activiti已经成为一个较为成熟的工作流引擎,作为一个开源的工作流引擎,它在工作流领域吸引了众多开发者的目光,在当前的工作流框架角逐中,慢慢成为众多企业的首选。在2017年5月26日,Activiti迎来全新篇章:6.0版本正式发布。本书将以6.0版本为基础,讲解基于Activiti的工作流应用开发。         本章将介绍Activiti的安装与运行、Activiti开发环境的搭建等内容,本书除了最后一章的项目案例外,其他所有的案例均以本章的开发环境为基础。搭建Activiti的开发环境,需要安装JDK、Eclipse、MySQL等软件,除此之外,还会编写第一个Activiti应用,让大家对Activiti有一个初步的了解。         注:本书全部的案例均在Windows7下开发和运行。                             ...
杨大仙的程序世界 发布于 4天前 阅读 403 评论 3

springboot 入门教程(6)--- 整合Spring data JPA实现CRUD(附源码)

前面整合ssm的时候就说要写一个整合jpa的,周末有点空就写下,时间短写得不是特别好,代码有点不规范,注释也没怎么写,将就了哈。
pxk 发布于 5天前 阅读 334 点赞 1

记录一次通过性能日志处理线上性能问题的过程

       在项目发展初期,可能由于数据量和用户访问量的原因,系统不会出现性能问题,但是随着项目发展,数据量发生具体变化,系统访问量也不断增多,此时对代码的优化就显得迫在眉睫。本文首先讲解如何使用perf4j和aop定期的完成相关日志的统计,其次讲解了如何使用ThreadLocal变量记录一个请求从开始到结束过程中所产生的调用链,并且记录相关方法的调用时间,最后将演示如何使用shell脚本对生成的日志文件进行处理,并生成性能统计报告。        perf4j是一种日志统计工具,其不仅可以进行日志的实时统计,也可以进行定时汇总统计。实时统计主要是记录项目运行过程中的一些消息日志,以便后续排查问题;而定时汇总统计则可用于对方法调用时间进行汇总,并且perf4j能够进行计算每个时间间隔内所有方法的最小调用时间,最大调用时间,平均调用时间,调用次数以及调用方差。这里主要讲解如何使用perf4j进行定时时间统计,如下是在log4j.xml中对service方法进行时间统计的配置: ```xml ```        这里name属性用于指定log的名称,其与代码中LogFactory.getLog(name)中的name对应,level表示打印info及以上级别的日志,appender-ref则配置了日志的相关...
爱宝贝丶 发布于 4天前 阅读 306 评论 1 点赞 2

疯狂Spring Cloud连载(三)———Spring Boot简介与配置

                                            3 Spring Boot简介与配置         本书代码共享地址:https://gitee.com/yangenxiong/SpringCloud         本章要点              Spring Boot简介              Spring Boot使用                                                 3.1 Spring Boot         Spring Cloud基于Spring Boot搭建,本小节将对Spring Boot作一个大致的讲解,读者知道Spring Boot作用即可。 3.1.1 Spring Boot简介         开发一个全新的项目,需要先进行开发环境的搭建,例如要确定技术框架以及版本,还要考虑各个框架之间的版本兼容问题,完成这些繁琐的工作后,还要对新项目进行配置,测试能否正常运行,最后才将搭建好的环境提交给项目组的其他成员使用。经常出现的情形是,表面上已经成功运行,但部分项目组成员仍然无法运行,项目初期浪费大量的时间做这些工作,几乎每个项目都会投入部分工作量来做这些固定的事情。         受Ruby On Rails、Node.js等技术的影响,JavaE...
杨大仙的程序世界 发布于 4天前 阅读 301 评论 3 点赞 2

疯狂Spring Cloud连载(二)———搭建开发环境

                                                2 开发环境搭建         本章要点              安装与配置Maven              安装Eclipse              本书涉及的技术版本              Spring Boot使用         工欲善其事,必先利其器。在讲述本书的技术内容前,先将开发环境搭建好,本书所涉及基础环境将在本章准备,包括Eclipse、Maven等。如果读者对Maven、Eclipse、Spring Boot等项目较为熟悉,可以直接跳过本章的相关章节。         笔者建议读者在查阅本书过程中,使用与本书相同的工具以及版本。本章使用的Java版本为1.8,图2-1为“java –version”命令的输出,Java安装与配置较为简单,本书不再赘述。 图2-1 Java版本         注:本书全部的案例均在Windows7下开发和运行。                                               2.1 安装与配置Maven 2.1.1 关于Maven         Maven是Apache下的一个开源项目,用于项目的构建。使用Maven可以对项目的依赖包...
杨大仙的程序世界 发布于 4天前 阅读 296 点赞 2

疯狂Spring Cloud连载(一)———Spring Cloud概述

                                            1 Spring Cloud概述         本章要点              传统应用的问题              微服务与Spring Cloud              本书介绍         本章将会简述Spring Cloud的功能,描述什么是Spring Cloud,它能为我们带来什么,为后面学习该框架的知识打下理论的基础。                                                 1.1 传统的应用 1.1.1 单体应用         在此之前,笔者所在公司开发Java程序,大都使用Struts、Spring、Hibernate(MyBatis)等技术框架,每一个项目都会发布一个单体应用。例如开发一个进销存系统,将会开发一个war包部署到Tomcat中,每一次需要开发新的模块或添加新功能时,都会在原来的基础上不断的添加。若干年后,这个war包不断的膨胀,程序员在进行调试时,服务器也可能需要启动半天,维护这个系统的效率极为低下。这样一个war包,涵盖了库存、销售、会员、报表等模块,如图1-1。 图1-1 单体应用         这样的单体应用隐患非...
杨大仙的程序世界 发布于 5天前 阅读 350 评论 4 点赞 3
wangkang80

spring boot / cloud (十八) 使用docker快速搭建本地环境

# spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越来越多. 然而要顺利的安装好这些中间件也是一个比较费时费力的工作. 俗话说"工欲善其事,必先利其器",这篇文章,就跟大家一起分享一下使用docker在本地环境或者测试环境快速搭建我们常用的一些中间件容器的方法, (这里没有提及生产环境,并不是说生产环境不能使用docker,只是说要在生产环境上使用,请务必根据自身的实际情况,做好充分的评估) ## **docker安装** **docker支持多种操作系统,本文的内容则是基于centos7操作系统的** docker的文档写的很清晰,大家可以在 https://docs.docker.com/engine/installation/linux/docker-ce/centos/ 站点中按照文档的步骤一步一步的安装docker , 假如一切正常 , 大家在命令行输入version , 会得到如下结果 : ``` bash $ sudo docker version # 结果输出 : Client: Version: 17.09.0-ce-rc2 API version: 1.32 Go version: go1.8.3 Git commit: 363a3e7 Built: Thu Sep 14 01:54:43 2017 OS/Arch: linux/amd64 Server: Version: 17.09.0-ce-rc2 API version...
wangkang80 发布于 3天前 阅读 372 评论 3 点赞 1
ksfzhaohui

Docker镜像与仓库

什么的是Docker镜像 Docker镜像是由文件系统叠加而成,最底层是一个引导文件系统,即bootfs;Docker镜像第二层是root文件系统rootfs,位于引导文件之上, 可以是一种或多种操作系统;Docker这样的文件系统被称为镜像,一个镜像可以放在另一个镜像的顶部,下面的镜像称为父镜像,最底层的 镜像称为基础镜像(base image);当一个镜像启动容器时,Docker会在该镜像的最顶层加载一个读写文件系统,想在Docker中运行的程序就在 这个读写层中执行。 Docker文件系统层: 可写容器 镜像加入Apache 基础镜像(Ubuntu) 引导文件系统 镜像拉取与列出 [root@bogon ~]# docker pull ubuntu pull命令将从Docker hub下载ubuntu镜像,这里没有指定标签(tag)将会自动下载latest标签,即ubuntu:latest;也可以手动指定如ubuntu:12.04 列出刚刚下载的镜像 [root@bogon ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ubuntu latest ccc7a11d65b1 3 weeks ago 120.1 MB REPOSITORY中出现的docker.io是官方提供的仓库,具体镜像,标签,仓库,Docker hub之间的关系: 镜像(image)...
ksfzhaohui 发布于 5天前 阅读 211 点赞 1

百度RPC框架 BRPC 初体验

9月14日,百度正式在GitHub上基于Apache 2.0协议开源了其RPC框架brpc。brpc是一个基于protobuf接口的RPC框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有RPC协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc的性能领跑于其他同类RPC产品。
Jacktanger 发布于 1周前 阅读 1750 评论 17 点赞 1

关于Python 列表操作 ,最常见问答Top10

列表是最常用的数据类型之一,本文整理了 StackOverflow 上关于列表操作被访问最多的10个问答,如果你在开发过程中遇到这些问题,不妨先思考一下如何解决。 1、迭代列表时如何访问列表下标索引 普通版: items = [8, 23, 45] for index in range(len(items)): print(index, "-->", items[index]) >>> 0 --> 8 1 --> 23 2 --> 45 优雅版: for index, item in enumerate(items): print(index, "-->", item) >>> 0 --> 8 1 --> 23 2 --> 45 enumerate 还可以指定元素的第一个元素从几开始,默认是0,也可以指定从1开始: for index, item in enumerate(items, start=1): print(index, "-->", item) >>> 1 --> 8 2 --> 23 3 --> 45 2、append 与 extend 方法有什么区别 append表示把某个数据当做新元素追加到列表的最后面,它的参数可以是任意对象 x = [1, 2, 3] y = [4, 5] x.append(y) print(x) >>> [1, 2, 3, [4, 5]] extend 的参数必须是一个可迭代对象,表示把该对象里面的所有元素逐个地追加到列表的后面 x = [1, 2, 3] y = [4, 5] x.extend(y) print(x) >>> [1, 2, 3, 4, 5] # 等价于: for i in y: x.append(i) 3、检查列表是否为空 普通版:...
liuzhijun 发布于 1周前 阅读 1111 评论 2 点赞 10

Spring Boot 2.x 小新功能 – Spring Data Web configuration

本文提纲 一、前言 二、运行 chapter-5-spring-boot-paging-sorting 工程 三、chapter-5-spring-boot-paging-sorting 工程配置详解 四、小结   运行环境: Mac OS 10.12.x JDK 8 + Spring Boot 2.0.0.M4  一、前言 Spring 2.x 更新了一个小小的功能即: Spring Data Web configuration Spring Boot exposes a new spring.data.web configuration namespace that allows to easily configure paging and sorting. 就是说,可以在 application.properties 中自定义分页和排序相关的默认值和参数名。   具体见地址:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M2-Release-Notes   二、运行工程 git clone 下载工程 spring-boot-core-book-demo ,项目地址见 GitHub - https://github.com/JeffLi1993/spring-boot-core-book-demo。   1. 工程结构 项目结构如下图所示: org.spring.springboot.controller - Controller 层 org.spring.springboot.domain - 实体类及数据操作层 DAO org.spring.springboot.service - 业务逻辑层 PagingSortingApplication - 应用启动类 application.properties - 应用配置文件,应用启动会自动读取配置   ...
泥沙砖瓦浆木匠 发布于 1周前 阅读 985 评论 6

从0开始的微服务架构:(一)重识微服务架构

导语 虽然已经红了很久,但是“微服务架构”正变得越来越重要,也将继续火下去。 各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上来就是很有借鉴意义的干货,要么就是以高端的专业术语来讲述何为微服务架构。就是没有一个做到成熟地将技术传播出来,同时完美地照顾“初入微服务领域人员”,从0开始,采用通俗易懂的语言去讲解微服务架构的系列。 所以,本文试图开启微服务架构专题“Re:从0开始的微服务架构”,为还没有入门该领域的技术人员开路,也帮助微服务架构老手温故知新。   这是专题的第一篇文章,从最基础的地方入手,让我们重识微服务架构。 前言 得益于2013年Docker的诞生,微服务概念及架构的推广和落地变得更加的可靠和方便。在2016年及之前,微服务架构的讨论更多的是活跃于互联网企业及社区。现如今,随着Docker和微服务架构组件与Docker等相关技术的逐步成熟,微服务架构已然步入传统企业及传统行业。 但是,程序员作为一个理性消费的群体,需要冷静地思考,避免挖个大坑把自己给埋了。所以,我们需要冷静地搞清楚:微服务(架构)是什么?它有什么优势劣势?我们为什么需要采用微服务架构?如...
京东技术 发布于 1周前 阅读 3309 评论 18 点赞 23
闲大赋

关于Thymeleaf的真相

Thymeleaf宣传的功能和它实际上能做到的功能并没有对应,所谓优雅的语法缺少审美
闲大赋 发布于 2个月前 阅读 1809 评论 108 点赞 13

SpringCloud(第 020 篇)Zuul 网关模块添加 listOfServers 属性,达到客户端负载均衡的能力

1、本章节添加另外一个属性 listOfServers 来给 zuul 赋上异样的功能色彩,提供负载均衡的能力; 2、而其实说到底 zuul 的负载能力还是在于 ribbon,因为 ribbon 才是真正做到让 zuul 达到客户端负载均衡能力的本质;
HMILYYLIMH 发布于 5天前 阅读 155

volatile关键字分析——可见性

public class Thread02 implements Runnable { /**volatile*/ boolean flg = true; @Override public void run() { System.out.println(Thread.currentThread().getName()+":start"); while(flg){ //System.out.println("do something"); } System.out.println(Thread.currentThread().getName()+":end"); } public static void main(String[] args) { Thread02 test = new Thread02(); Thread t1 = new Thread(test); t1.start(); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } test.flg=false; } } 上述代码中没有使用volatile关键字,但是在主线程中我们将flg至为false,但是结果如下:   public class Thread02 implements Runnable { volatile boolean flg = true; @Override public void run() { System.out.println(Thread.currentThread().getName()+":start"); while(flg){ //System.out.println("do something"); } System.out.println(Thread.currentThread().getName()+":end"); } public static void main(String[] args) { Thread02 test =...
蓝狐乐队 发布于 5天前 阅读 131 评论 1 点赞 1

Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式

> 我们在使用Spring Cloud的Ribbon或Feign来实现服务调用的时候,如果我们的机器或网络环境等原因不是很好的话,有时候会发现这样一个问题:我们服务消费方调用服务提供方接口的时候,第一次请求经常会超时,而之后的调用就没有问题了。下面我们就来说说造成这个问题的原因,以及如何解决的方法。 ## 问题原因 造成第一次服务调用出现失败的原因主要是Ribbon进行客户端负载均衡的Client并不是在服务启动的时候就初始化好的,而是在调用的时候才会去创建相应的Client,所以第一次调用的耗时不仅仅包含发送HTTP请求的时间,还包含了创建RibbonClient的时间,这样一来如果创建时间速度较慢,同时设置的超时时间又比较短的话,很容易就会出现上面所描述的显现。 从日志中我们也能知道这一点细节,在第一次发起调用的时候我们可以从日志中看到如下信息: ``` 2017-09-25 08:29:54,201 INFO [main] com.netflix.loadbalancer.DynamicServerListLoadBalancer - DynamicServerListLoadBalancer for client hello-service initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=hello-service,current list of Servers=[192.168.99.176:9901],Load balancer stats=Zone...
程序猿DD 发布于 4天前 阅读 144 点赞 1

疯狂Activiti6.0连载(三)———Activiti开发环境搭建

                                            3 Activiti开发环境搭建         本书代码目录:https://gitee.com/yangenxiong/CrazyActiviti         本书的common-lib项目,是各个案例的依赖项目,可从以下地址获得:         https://gitee.com/yangenxiong/CrazyActiviti/tree/master/codes         要点              安装JDK与MySQL              安装Eclipse以及Activiti插件              编写第一个Activiti程序                                                 3.1 安装开发环境         本小节所说的Activiti开发环境包括以下内容:               Eclipse IDE               Eclipse的Activiti插件 3.1.1 下载Eclipse         本书使用Eclipse作为开发工具,如果想使用Activiti的Eclipse设计器,官方建议使用Kepler(4.3)或者 Luna(4.4)版本,本书所使用的版本为Luna,大家可以从以下的地址得到该版本的Eclipse:         h...
杨大仙的程序世界 发布于 3天前 阅读 1657 评论 4 点赞 4

SpringCloud(第 001 篇)简单用户微服务

SpringCloud(第 001 篇)简单用户微服务,通过 RestAPI 接口 /simple/{id} 来简单获取 H2 数据库中的用户信息,并且数据库中的字段与实体 User 类的字段相互映射 。
HMILYYLIMH 发布于 2周前 阅读 573 评论 6 点赞 3

mysql5.7正确安装步骤

mysql5.7容易安装失败记录 服务器版本 cetons 6.9 空机器安装,机器上没有安装mysql。使用yum安装方式 第一次安装(结果失败) step1 下载mysql 安装仓库(MySQL Yum Repository) 地址:https://dev.mysql.com/downloads/repo/yum/ 使用wget下载 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm step 2 安装mysql yum repository rpm -Uvh localinstall mysql57-community-release-el7-11.noarch.rpm step 3 安装mysql community server sudo yum install mysql-community-server 此时报错,预示安装失败 失败原因是mysql的安装包的系统版本和操作系统不对应,若是 cetons 7 则可以安装成功 第二次安装(结果成功) 由于当时服务器无法连接到mysql的网站,于是我下载mysql的包,然后在上传到服务器上进行安装 下载的是mysql全量包 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-1.el6.x86_64.rpm-bundle.tar 下载完成之后解压,解压之后出现如下文件 mysql-community-client-5.7.19-1.el6.x86_64.rpm mysql-community-common-5.7.19-1.el6.x86_64.rpm mysql-community-devel-5.7.19-1.el6.x86_64.rpm mysql-comm...
linncheung 发布于 58分钟前

go 入门学习笔记之notepad++支持 (二)

提示: 可以右击图片 选择 在 新标签页中打开图片查看高清图片
痞子汤 发布于 2小时前 阅读 2

java.lang.NoSuchMethodError: org.joda.time.format.DateTimeFormatterBuilder.appendFixedDecimal

Root cause of ServletException. org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: org.joda.time.format.DateTimeFormatterBuilder.appendFixedDecimal(Lorg/joda/time/DateTimeFieldType;I)Lorg/joda/time/format/DateTimeFormatterBuilder;
郑加威 发布于 2小时前 阅读 2

Mongo Java操作:按时间Group By

Mongo的Java API对于初学者来说真心不好用,基本操作还好,对于一些复杂的点的语法,很容易让人懵圈。 官网JAVA API的使用示例: http://mongodb.github.io/mongo-java-driver/3.2/driver/reference/crud/   跟时间操作相关的函数: $dayOfYear: 返回该日期是这一年的第几天。(全年366天) $dayOfMonth: 返回该日期是这一个月的第几天。(1到31) $dayOfWeek: 返回的是这个周的星期几。(1:星期日,7:星期六) $year: 返回该日期的年份部分 $month: 返回该日期的月份部分(between 1 and 12.) $week: 返回该日期是所在年的第几个星期(between 0 and 53) $hour: 返回该日期的小时部分 $minute: 返回该日期的分钟部分 $second: 返回该日期的秒部分(以0到59之间的数字形式返回日期的第二部分,但可以是60来计算闰秒。) $millisecond:返回该日期的毫秒部分(between 0 and 999.) $dateToString: { $dateToString: { format: <formatString>, date: <dateExpression> } } 假设有如下的mongo集合: > db.newAreaDayInfo.findOne() { "_id" : ObjectId("57e9638844f50a0da4c0c128"), "id1" : "10001", "id2" : "20001", "areaI...
jeremyli90 发布于 2小时前 阅读 3

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

Logstash+FileBeat+MongoDB+Flask打造的日志系统(三)

前端我采用了Element-UI框架,打造开发环境如下: 1,安装全局Vue-cli: npm install -g vue-cli 2, 创建基于webpcak模板的项目。      vue init webpack my-project      cd my-project      npm install      npm run dev 3 安装依赖    npm install --save axios    npm install element-ui -S    npm install vuex --save 系统界面大概如下     代码就不贴了,直接打包上传 http://pan.baidu.com/s/1qYNXr4o  
通吃岛-低手哥 发布于 3小时前 阅读 4

MySQL 可扩展性-垂直扩展 & 水平扩展

MySQL 可扩展性-垂直扩展 & 水平扩展
秋风醉了 发布于 3小时前 阅读 3

Spring AOP 实现机制

转自 http://blog.csdn.net/dreamthen/article/details/26687727
Eureka_尤里卡 发布于 3小时前 阅读 3

检索内容图片批量更换图片路径

//富文本图片Begin if($data["content"]) { preg_match_all('/<img(.*)src="#"]+)"[^>]+>/isU',$data["content"],$matches); $img = ""; if(!empty($matches)) { //注意,上面的正则表达式说明src的值是放在数组的第三个中 $img = $matches[2]; }else { $img = ""; } if (!empty($img)) { //$img_url = $request->domain(); $img_url = "http://".$_SERVER['SERVER_NAME']; $patterns= array(); $replacements = array(); foreach($img as $imgItem) { if(strpos($imgItem,"http") === false) { $final_imgUrl = $img_url.$imgItem; $replacements[] = $final_imgUrl; $img_new = "/".preg_replace("/\//i","\/",$imgItem)."/"; $pat...
小2小白 发布于 3小时前 阅读 1

更多的bash shell命令——第四章

更多的bash shell命令——第四章《Linux命令行与Shell脚本编程大全》
残刃O 发布于 3小时前 阅读 1

java验证身份证号码是否有效源代码

1、描述 用java语言判断身份证号码是否有效,地区码、出身年月、校验码等验证算法   2、源代码 package test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Hashtable; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 身份证号码的格式:610821-20061222-612-X * 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码, * 第18位为校验码。检验码分别是0-10共11个数字,当检验码为“10”时,为了保证公民身份证号码18位,所以用“X”表示。虽然校验码为“X”不能更换,但若需全用数字表示,只需将18位公民身份号码转换成15位居民身份证号码,去掉第7至8位和最后1位3个数码。 * 当今的身份证号码有15位和18位之分。1985年我国实行居民身份证制度,当时签发的身份证号码是15位的,1999年签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。 ...
百世经纶一页书梵天 发布于 3小时前 阅读 1

Logstash+FileBeat+MongoDB+Flask打造的日志系统(二)

后端采用Python的Flask框架。 pip install Flask pip install Flask-PyMongo 功能比较少,就是查询MongoDB,按时间降序,开始的时候出现MongoDB排序超出32M限制的错误,后来在logtime 加上索引解决。 from flask import Flask, jsonify, Response, request, session, redirect, url_for from flask import render_template from flask_pymongo import PyMongo, DESCENDING from bson.json_util import dumps from datetime import datetime import hashlib app = Flask(__name__) app.config['MONGO_HOST'] = '192.168.1.15' app.config['MONGO_PORT'] = 27017 app.config['MONGO_DBNAME'] = 'test' app.config['SECRET_KEY']='huanghongqiaoydgy1233456rr' mongo = PyMongo(app) @app.route("/") def index(): return render_template("index.html") @app.route("/checkLogin", methods=["POST", "GET"]) def checkLogin(): if request.method == 'POST': if 'username' in session: return Response(dumps({'auth' : True}), mimetype="application/json", status=200) else: pwd = hashlib.md5(request.form['pas...
通吃岛-低手哥 发布于 3小时前 阅读 1

Logstash+FileBeat+MongoDB+Flask打造的日志系统(一)

1、MongoDB安装,运行(略) 2、JDK8 安装 (略)     -- LogStash依赖Java. 3、LogStash 安装(略)    1)安装logstash-output-mongodb插件        bin/logstash-plugin install logstash-output-mongodb       (如果不行,好像下载logstash-output-mongodb插件解压到vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-master/ 貌似就有反应了。。。)    2)配置文件: input { beats { port => 4560 } } filter { # if [type] == "register" or [type] == "configserver" { grok { match=>{"message" => "%{DATESTAMP_CHS2:logtime}\s+%{LOGLEVEL:loglevel} %{GREEDYDATA:msg}"} } date { match => ["logtime", "yyyy-MM-dd HH:mm:ss.SSS" ] target => "logtime" } # } # else { # grok { # match=>{"message" => "%{DATESTAMP_CHS:logtime} \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:msg}"} # } # date { # match => ["logtime", "yyyy-MM-dd HH:mm:ss" ] # target => "logtime" # } # } } output { # stdout { # codec => rubyde...
通吃岛-低手哥 发布于 3小时前 阅读 4
梦朝思夕

你应该了解NewSQL:CockroachDB验证文档

## 方案八:CockroachDB cockroachdb是分布式、支持事务、支持SQL操作、K-V存储模式的数据库。CockroachDB的三位创始人全部来自Google,其架构受到Google的 Spanner和F1的启发,[cockroach开源地址](https://github.com/cockroachdb/cockroach/)。 ![输入图片说明](https://static.oschina.net/uploads/img/201709/27153626_oTyu.png "在这里输入图片标题") 具有: - 标准SQL接口, 使用PostgreSQL协议,支持标准SQL接口,兼容关系型数据库SQL生态; - 扩展能力强、高并发,支持类MPP并行查询框架; - 弹性扩容,持按需扩容, 自动负载均衡; - 多副本强一致,使用raft算法保证数据一致性; - 服务高可用,上去中心化,无SPOF; - 分布式事务,基于MVCC实现事务控制,支持SI和SSI两种隔离级别; [](http://wiki.baidu.com/pages/viewpage.action?pageId=279391634) ### 调研 #### 建表 ```SQL DROP TABLE IF EXISTS "tracks"; CREATE TABLE IF NOT EXISTS "tracks" ( "id" SERIAL PRIMARY KEY , "third_tracks_id" varchar(32) NOT NULL DEFAULT '' , "tracks_title" varchar(255) NOT NULL DEFAULT '' , "tracks_title_other" varchar(255) NOT NULL DEFAULT '', "tracks...
梦朝思夕 发布于 3小时前 阅读 8

Java构建树对象

package com.my.tree; import java.util.List; public class Tree { private String id; // 节点ID private String parentId; // 节点父ID private List<Tree> children; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getParentId() { return parentId; } public void setParentId(String parentId) { this.parentId = parentId; } public List<Tree> getChildren() { return children; } public void setChildren(List<Tree> children) { this.children = children; } } package com.my.tree; import java.util.ArrayList; import java.util.List; public class TreeUtils { public static List<Tree> formatTree(List<Tree> list) { List<Tree> nodeList = new ArrayList<Tree>(); for (Tree node1 : list) { boolean mark = false; for (Tree node2 : list) { if (node1.getParentId() != null && node1.getParentId().equals(node2.getId())) { mark = true; if (node2.getChildren() == null) { node2.setChildren(new Array...
Tasty-宝 发布于 3小时前 阅读 3

json数据出现$ref: "$.list[0]"的解决办法

json数据出现$ref: "$.list[0]"的解决办法
不会起名 发布于 3小时前 阅读 2

centos erlang的安装

首先安装依赖:yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl 现在有了rpm包,比以前方便多了。
通吃岛-低手哥 发布于 4小时前 阅读 2

DRBD9.0 + RHEL 7.4

http://docs.linbit.com/docs/users-guide-9.0/#ch-pacemaker 安装说明:  - RHEL 7.4 (crhel71,crhel72)  - drbd 9.0.9-1  - 2台相同配置服务器,硬盘数量、大小相同  - 设定两节点间 ssh 免密登录  - 使用/etc/hosts 或者DNS,让两个节点能互相解析  - 设定 YUM repo, 指向到清华大学开源镜像服务器( https://mirrors.tuna.tsinghua.edu.cn/elrepo/elrepo/el7/x86_64 )  - 上述条件满足后,一条命令就完成安装      # yum -y install drbd90-utils kmod-drbd90      下面主要讲解具体设定: 1. /etc/drbd.conf文件无需该动 2. /etc/drbd.d/global_common.conf,在common配置部分的net选项中添加protocol C;,表示使用协议C的方式进行数据复制 # sed -i "55a\                protocol C;" /etc/drbd.d/global_common.conf # cat /etc/drbd.d/global_common.conf ... common {     net {protocol C;} } 3.该文件用于定义drbd镜像资源 # cat <<EOF> /etc/drbd.d/r0.res resource r0 {   protocol C;   disk /dev/sdb;   device /dev/drbd0;   meta-disk internal;   syncer {     verify-alg sha1;   }   net {     allow-tw...
zzimac 发布于 4小时前 阅读 2
qwfys

Java 9中的jinfo命令

``` lwk@qwfys ~ $ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 09:34 ? 00:00:01 /sbin/init splash root 2 0 0 09:34 ? 00:00:00 [kthreadd] root 3 2 0 09:34 ? 00:00:00 [ksoftirqd/0] root 4 2 0 09:34 ? 00:00:00 [kworker/0:0] root 5 2 0 09:34 ? 00:00:00 [kworker/0:0H] root 7 2 0 09:34 ? 00:00:00 [rcu_sched] root 8 2 0 09:34 ? 00:00:00 [rcu_bh] root 9 2 0 09:34 ? 00:00:00 [migration/0] root 10 2 0 09:34 ? 00:00:00 [lru-add-drain] root 11 2 0 09:34 ? 00:00:00 [watchdog/0] root 12 2 0 09:34 ? 00:00:00 [cpuhp/0] root 13 2 0 09:34 ? 00:00:00 [cpuhp/1] root 14 2 0 09:34 ? 00:00:00 [watchdog/1] root 15 2 0 09:34 ? 00:00:00 [migration/1] root 16 2 0 09:34 ? 00:00:00 [ksoftirqd/1] root 18 2 0 09:34 ? 00:00:00 [kworker/1:0H] root 19 2 0 09:34 ? 00:00:00 [cpuhp/2] root 20 2 0 09:34 ? 00:00:00 [watchdog/2] root 21 2 0 09:34 ? 00:00:00 [migration/2] root 22 2 0 09:34 ? 00:00:00 [ksoftirqd/2] root 24 2 0 09:34 ? 00:00:00 [kworker/2:0H] root 25 2 0 09:34 ? 00:00:00 [cpuhp/3] root 26 2 0 09:34 ? ...
qwfys 发布于 4小时前 阅读 39
qwfys

深入浅出Oracle Java 9 系列

+ [Oracle Java 9 目录结构概览](http://https://my.oschina.net/qwfys200/blog/1545159) + [Java 9中的jinfo命令](#)
qwfys 发布于 4小时前 阅读 1

java获取Class对象的三种方式

java获取Class对象的三种方式
残刃O 发布于 5小时前 阅读 4

疯狂Activiti6.0连载(三)———Activiti开发环境搭建

                                            3 Activiti开发环境搭建         本书代码目录:https://gitee.com/yangenxiong/CrazyActiviti         本书的common-lib项目,是各个案例的依赖项目,可从以下地址获得:         https://gitee.com/yangenxiong/CrazyActiviti/tree/master/codes         要点              安装JDK与MySQL              安装Eclipse以及Activiti插件              编写第一个Activiti程序                                                 3.1 安装开发环境         本小节所说的Activiti开发环境包括以下内容:               Eclipse IDE               Eclipse的Activiti插件 3.1.1 下载Eclipse         本书使用Eclipse作为开发工具,如果想使用Activiti的Eclipse设计器,官方建议使用Kepler(4.3)或者 Luna(4.4)版本,本书所使用的版本为Luna,大家可以从以下的地址得到该版本的Eclipse:         h...
杨大仙的程序世界 发布于 3天前 阅读 1657 评论 4 点赞 4

SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理

1、API 服务网关顾名思义就是统一入口,类似 nginx、F5 等功能一样,统一代理控制请求入口,弱化各个微服务被客户端记忆功能; 2、本章节主要讲解了使用 zuul 的代理功能与反向代理功能,当然 zuul 还有很多属性设置,我就没一一列举所有的测试方法了; 3、http://localhost:8150/routes 地址可以查看该zuul微服务网关代理了多少微服务的serviceId;
HMILYYLIMH 发布于 5天前 阅读 1789 评论 7 点赞 2

疯狂Activiti6.0连载(一)———Activiti介绍

                                            1 Activiti介绍         在计算机尚未普及时,许多工作流程采用手工传递纸张表单的方式,一级一级审批签字,工作效率非常低下,对于数据统计以及生成报表的功能,需要经过大量的手工操作才能实现。随着电脑的普及,这些工作的参与者只需要在电脑的系统中填入工作内容,系统就会按照定义好的流程自动执行,各级审批者可以得到工作的信息并作出相应的审批和管理操作,数据统计和报表的生成均由系统代为完成,这样大大提高了工作效率,在这种背景下,各种的工作流应用以及中间件应运而生。         工作流应用在日常工作中的应用越来越广泛,JavaEE领域出现了许多优秀的工作流引擎,例如JBoss社区的jBPM、OpenSymphony的OSWorkflow等,在2010年5月17日,以Tom Baeyens为首的工作流小组发布了一个全新的工作流引擎——Activiti,该工作流引擎的第一个版本为5.0alpha1,由于Tom Baeyens是jBPM的创始人(由于意见分歧离开JBoss),因此Activiti的团队希望该流程引擎是jBPM4的延伸,希望在jBPM中积累的经验和知识的基础上,继续进行新一代工作流解决方案的建设,因此将...
杨大仙的程序世界 发布于 5天前 阅读 2420 评论 26 点赞 8

关于Python 列表操作 ,最常见问答Top10

列表是最常用的数据类型之一,本文整理了 StackOverflow 上关于列表操作被访问最多的10个问答,如果你在开发过程中遇到这些问题,不妨先思考一下如何解决。 1、迭代列表时如何访问列表下标索引 普通版: items = [8, 23, 45] for index in range(len(items)): print(index, "-->", items[index]) >>> 0 --> 8 1 --> 23 2 --> 45 优雅版: for index, item in enumerate(items): print(index, "-->", item) >>> 0 --> 8 1 --> 23 2 --> 45 enumerate 还可以指定元素的第一个元素从几开始,默认是0,也可以指定从1开始: for index, item in enumerate(items, start=1): print(index, "-->", item) >>> 1 --> 8 2 --> 23 3 --> 45 2、append 与 extend 方法有什么区别 append表示把某个数据当做新元素追加到列表的最后面,它的参数可以是任意对象 x = [1, 2, 3] y = [4, 5] x.append(y) print(x) >>> [1, 2, 3, [4, 5]] extend 的参数必须是一个可迭代对象,表示把该对象里面的所有元素逐个地追加到列表的后面 x = [1, 2, 3] y = [4, 5] x.extend(y) print(x) >>> [1, 2, 3, 4, 5] # 等价于: for i in y: x.append(i) 3、检查列表是否为空 普通版:...
liuzhijun 发布于 1周前 阅读 1111 评论 2 点赞 10

从0开始的微服务架构:(一)重识微服务架构

导语 虽然已经红了很久,但是“微服务架构”正变得越来越重要,也将继续火下去。 各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上来就是很有借鉴意义的干货,要么就是以高端的专业术语来讲述何为微服务架构。就是没有一个做到成熟地将技术传播出来,同时完美地照顾“初入微服务领域人员”,从0开始,采用通俗易懂的语言去讲解微服务架构的系列。 所以,本文试图开启微服务架构专题“Re:从0开始的微服务架构”,为还没有入门该领域的技术人员开路,也帮助微服务架构老手温故知新。   这是专题的第一篇文章,从最基础的地方入手,让我们重识微服务架构。 前言 得益于2013年Docker的诞生,微服务概念及架构的推广和落地变得更加的可靠和方便。在2016年及之前,微服务架构的讨论更多的是活跃于互联网企业及社区。现如今,随着Docker和微服务架构组件与Docker等相关技术的逐步成熟,微服务架构已然步入传统企业及传统行业。 但是,程序员作为一个理性消费的群体,需要冷静地思考,避免挖个大坑把自己给埋了。所以,我们需要冷静地搞清楚:微服务(架构)是什么?它有什么优势劣势?我们为什么需要采用微服务架构?如...
京东技术 发布于 1周前 阅读 3309 评论 18 点赞 23

微服务后如何做一次系统梳理

微服务治理的特点,网络延迟、分布式事务、异步消息。因此我们针对微服务的梳理也是从这几个方面入手。微服务后依赖关系从代码依赖变成了通讯依赖,我们梳理微服务系统的关键点,就是找出通讯依赖,确定是强依赖,还是弱依赖。
新栋BOOK 发布于 2周前 阅读 1823 评论 7 点赞 4

LVM锁机制分析

## LVM支持的锁类型 0. 无锁(No Locking) - 不使用锁,此状态下不能并行执行命令,或者由使用者处理并行问题。 1. 本地锁(Local Locking) - 当使用本地flock锁,只能在单机环境下使用;当use_lvmlockd=1时,同时使用lvmlockd提供的锁,可用于集群环境。 2. 外部锁(External Locking) - 使用外部共享库提供的锁功能,可以在配置文件中设置库的名称,在共享库中只要按要求。 3. 集群锁(Clustered Locking) - 使用内建的集群锁,必须配合clvmd来使用,同时必须关闭lvmetad缓存功能。 4. 只读锁(Read-Only Locking) - 只读模式,禁止元数据修改。 5. 哑巴锁(Dummy Locking) - 只读模式,被不需要锁的工具使用。 配置文件: ```sh $ cat /etc/lvm/lvm.conf ... # Configuration option global/locking_type. # Type of locking to use. # # Accepted values: # 0 # Turns off locking. Warning: this risks metadata corruption if # commands run concurrently. # 1 # LVM uses local file-based locking, the standard mode. # 2 # LVM uses the external shared library locking_library. # 3 # LVM uses built-in clustered locking with clvmd. # This is inco...
LastRitter 发布于 2周前 阅读 1524 评论 1 点赞 1

Eclipse中怎么将JRE换成JDK

关于JDK 和 JRE 的介绍 JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。 如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。 以上解释来源:知乎 在Eclipse我们项目中的Libraries库默认是JRE的,一般需求都能满足,但是当需要编译java文件时就不行了,这就需要我们把它换成JDK。 步骤: 点击相应项目->右键BuildPath-> configureBuildPAth 点击Libraries 出现下面的界面 点击一下JRE System Library(选中) 然后 ->  点击右边的 Edit (不选中Edit是灰的) 出现下面的界面    (这个JDK是我已经加进来后的,你的可能没有)   如果开始你就有那直接选一下就行了。。。。QAQ 如果没有就 点击Installed JREs 出现下面界面 这个JDK(黄色箭...
为了美好的明天 发布于 3周前 阅读 2059 点赞 1

用docker搭建elasticsearch集群

## 概述 用docker进行elasticsearch的部署非常简单,如果要实现集群配置,需要进行一些特殊的处理,本文介绍如何利用docker进行elasticsearch集群的搭建。 具体的配置可以参照该 [示例](https://github.com/qihaiyan/fluentd-boot) ## 主节点配置 ### docker-compose.yml配置文件 ```yml es: image: elasticsearch volumes: - ./es:/usr/share/elasticsearch/data - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ports: - 9200:9200 - 9300:9300 ``` 其中的```./es:/usr/share/elasticsearch/data```是将elasticsearch的数据文件挂在到本机的一个目录上,这儿指定的本机目录是./es,可以修改为其它有权限的目录。 ### elasticsearch.yml配置文件 ``` yml cluster.name: elasticsearch_cluster node.name: node-master node.master: true node.data: true http.port: 9200 network.host: 0.0.0.0 network.publish_host: master-ip discovery.zen.ping.unicast.hosts: ["master-ip"] ``` ```network.publish_host: master-ip```指定了本机ip,需要将master-ip修改为真实的机器ip。```discovery.zen.ping.unicast.hosts```中的master-ip同样需要修...
QiHaiYan 发布于 3周前 阅读 1516 点赞 1

数据异构的武器-BINLOG+MQ

分库分表中有一个最为常见的场景,为了提升数据库的查询能力,我们都会对数据库做分库分表操作。比如订单库,开始的时候我们是按照订单ID维度去分库分表,那么后来的业务需求想按照商家维度去查询,比如我想查询某一个商家下的所有订单,就非常麻烦。这个时候通过数据异构就能很好的解决此问题。
新栋BOOK 发布于 3周前 阅读 1483 评论 13
ksfzhaohui

Redis实现参数的集中式管理

系列文章 Zookeeper实现参数的集中式管理 JMS实现参数的集中式管理 Redis实现参数的集中式管理 前言 上一篇文件JMS实现参数的集中式管理中使用JMS作为中间层,利用的JMS的发布订阅功能实现了对参数的集中式管理;同样分布式缓存Redis也提供了类似的发布订阅功能,并且Redis本身提供了缓存和持久化的功能,本文将介绍通过Redis实现简单的参数集中式管理。 Maven引入 Spring相关的jar引入参考上一篇文章 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.4.0</version> </dependency> 目标 1.可以同时配置监听多个节点如/app1,/app2; 2.希望只需要配置如/app1,就能够监听其子节点如/app1/modual1以及子节点的子节点如/app1/modual1/xxx/…; 3.服务器启动能获取当前指定父节点下的所有子节点数据; 4.在添加节点或者在更新节点数据的时候能够动态通知,这样代码中就能够实时获取最新的数据; 5.spring配置中可以从Zookeeper中读取参数进行初始化。 虽然在实现的方式上有点区别,但是最终达成的目标是一致的,同样列出了这5条目标 实现 RedisWatcher主要用来和Redis进行连接,然后对监听的节点进行初始化,模糊订阅需...
ksfzhaohui 发布于 1个月前 阅读 3174 点赞 2

基于Redis实现分布式应用限流

限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务。
冷冷gg 发布于 1个月前 阅读 4542 评论 9 点赞 9
wangkang80

spring boot / cloud (十五) 分布式调度中心进阶

# spring boot / cloud (十五) 分布式调度中心进阶 在[](https://my.oschina.net/wangkang80/blog/983208)这篇文章中介绍了如何在spring boot项目中集成quartz. 今天这篇文章则会进一步跟大家讨论一下设计和搭建**分布式调度中心**所需要关注的事情. 下面先看一下,总体的逻辑架构图: ## 分布式调度-逻辑架构示意 ![分布式调度-逻辑架构示意](https://static.oschina.net/uploads/img/201708/29201705_LnBY.png "分布式调度-逻辑架构示意") ## 架构设计 总体思路是,将**调度**和**执行**两个概念分离开来,形成**调度中心**和**执行节点**两个模块: ### **调度中心** 是一个公共的平台,负责所有任务的调度,以及任务的管理,不涉及任何业务逻辑,从上图可以看到,它主要包括如下模块: - **核心调度器quartz** : 调度中心的核心,按照jobDetail和trigger的设定发起作业调度,并且提供底层的管理api - **管理功能** : 可通过restful和web页面的方式动态的管理作业,触发器的CURD操作,并且实时生效,而且还可以记录调度日志,以及可以以图表,表格,等各种可视化的方式展现调度中心的各个维度的指标信息 - **RmsJob和RmsJobDisallowConcurrent** : 基于http远程调用(RMS)的作业和禁止并发执...
wangkang80 发布于 1个月前 阅读 3622 评论 9 点赞 2

Spring思维导图,让Spring不再难懂(cache篇)

>关于缓存 缓存是实际工作中非常常用的一种提高性能的方法。而在java中,所谓缓存,就是将程序或系统经常要调用的对象存在内存中,再次调用时可以快速从内存中获取对象,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。 在增删改查中,数据库查询占据了数据库操作的80%以上,而非常频繁的磁盘I/O读取操作,会导致数据库性能极度低下。而数据库的重要性就不言而喻了: * 数据库通常是企业应用系统最核心的部分 * 数据库保存的数据量通常非常庞大 * 数据库查询操作通常很频繁,有时还很复杂 在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存 ![缓存不同层级的作用.png](http://upload-images.jianshu.io/upload_images/4120002-8bb71a01b012531c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >spring cache特性与缺憾 现在市场上主流的缓存框架有ehcache、redis、memcached。spring cache可以通过简单的配置就可以搭配使用起来。其中使用注解方式是最简单的。 ![特性与缺憾.png](http://upload-images.jianshu.io/upload_images/4120002-34b7c90eaeeb1aae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >Cache注解...
java思维导图 发布于 1个月前 阅读 5852 评论 10 点赞 8

使用Hutool处理RSA等非对称加密

Hutool工具是一个国产开源Java工具集,旨在简化Java开发中繁琐的过程,Hutool-crypto模块便是针对JDK加密解密做了大大简化。此文主要介绍利用Hutool-crypto简化非对称加密解密。对于非对称加密,最常用的就是RSA和DSA,在Hutool中使用`AsymmetricCrypto`对象来负责加密解密。
路小磊 发布于 1个月前 阅读 1547 评论 22 点赞 3

Filebeat优化实践

基于kubernetes的日志系统优化实践
william3608 发布于 1个月前 阅读 1741 评论 13 点赞 4
neo-chen

解决 MySQL 与 Elasticsearch 数据不对称问题

jdbc-input-plugin 只能实现数据库的追加,对于 elasticsearch 增量写入,但经常jdbc源一端的数据库可能会做数据库删除或者更新操作。这样一来数据库与搜索引擎的数据库就出现了不对称的情况。 当然你如果有开发团队可以写程序在删除或者更新的时候同步对搜索引擎操作。如果你没有这个能力,可以尝试下面的方法。
neo-chen 发布于 1个月前 阅读 2757 评论 5 点赞 4

PHP实现定时任务(非linux-shell方式,与操作系统无关)

用PHP实现定时任务(非linux-shell方式,与操作系统平无关)。适用于定时精确时间不低于1秒。web服务重启、或者php重启。该定时任务不会自动重启。可以用来处理大部分定时任务的结局方案,商城定时自动收货,关闭评论,订单回滚;定时发送邮件,数据备份等
大弹簧 发布于 1个月前 阅读 2747 评论 30 点赞 3
闲大赋

自下向上的编写容易阅读的代码(上)

我在 [关于极简编程的思考](https://my.oschina.net/xiandafu/blog/894155) 中曾提到要编写可阅读的代码。因为代码是编写一次,阅读多次。 阅读者包括代码编写者,以及后来的维护人员。能让阅读代码更轻松,有利于增强项目或者产品的可维护性。 本博客分为上下俩部分,第一部分讲解在代码层次 编写可阅读的代码, 第二部分讲解方法,类,以及一些设计上的考虑 让代码更适合阅读。这些都是我在实际工作的一些体会以及代码审查过程中跟同事一起得出的一些经验。没有太高深的理论,适合所有人借鉴交流。 # 代码层次(上) ## if 语句保持主流程畅通 ``` if(xxx){ return false; } if(yyy){ return false; } if(zzz){ throw new Exception(); } //主逻辑代码在下面 ....... return true; ``` 使用if语句,对于不符合主逻辑的,要尽早返回,这样可以减轻代码阅读者的负担,下次再看,直接就可以从主逻辑开始。直接跳过不关心的代码块(这样代码块必然返回都是fasle) 如下是一个不好的例子 ``` if(xxx){ return false; } if(yyy){ return true; } //主逻辑代码在下面 ``` 在主逻辑前面分别返回了true 或者 false,阅读者会造成混乱,因为说明这个方法任何一处都有可能返回不同的...
闲大赋 发布于 2个月前 阅读 3342 评论 36 点赞 25

基于 CSP 的设计思想和 OOP 设计思想的异同

Go语言推崇的CSP编程模型和设计思想,并没有引起很多Go开发者包括Go标准库作者的重视。标准库的很多设计保留了很浓的OOP的味道。本篇Blog想比较下从设计的角度看,CSP和OOP到底有什么区别。 下面,我们来看一个例子,如果我们有一个项目,需要做一个TCP连接中继器( 请原谅我的用词)。我们先按照OOP来设计下: 系统的结构:需要有一个客户端和一个服务器端。分两个进程分别跑在不同机器上。 系统对象关系拆分(这里有所简化,E-R图等省略):连接中继器类--系统的主类、config类--描述配置的类、connection类--每个连接一个conn类的实例、pipe类--提供一个管道,把上游的连接和下游的连接打通,把数据从A--pipe--B、encrypt工具类,提供各种加解密工具。 理清楚系统中各种对象(类)的作用关系,设计接口的细节。这里的接口,其实就是对象之间相互发送的同步阻塞的消息。 设计错误处理,日志等。 从性能方面审视整个设计,优化。 ===== 好,我们再按CSP的思路来设计下,是这么一个过程: 我们需要一个 main 协程来处理各种命令行参数的配置,收集处理配置文件; 如果是server,那么初始化server的主协程 -- tcpRemote;如果是client,则启动client的主协程 -- tcpLocal; 分...
LinkerLin 发布于 2个月前 阅读 1981 评论 9 点赞 3
顶部